webshims-rails 0.4.6 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/mousepress.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/extras/mousepress.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/polyfiller.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/1.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/10.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/11.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/12.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/13.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/14.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/15.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/16.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/17.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/18.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/19.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/2.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/20.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/21.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/22.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/23.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/24.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/25.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/26.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/27.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/3.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/4.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/5.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/59.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/6.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/7.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/8.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/combos/9.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/dom-extend.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/es5.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-core.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-datalist.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-ui.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/form-shim-extend.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/geolocation.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/json-storage.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-core.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-jaris.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-swf.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-yt.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/track-ui.js +1 -1
- data/vendor/assets/javascripts/webshims/minified/shims/track.js +1 -1
- data/vendor/assets/javascripts/webshims/polyfiller.js +10 -7
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +51 -48
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +126 -105
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +50 -47
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +97 -86
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +49 -45
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +168 -155
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +168 -155
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +9 -24
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +121 -116
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +82 -93
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +75 -57
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +11 -24
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +77 -60
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +59 -65
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +169 -157
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +99 -87
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +170 -156
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +128 -106
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +83 -95
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +71 -69
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +71 -69
- data/vendor/assets/javascripts/webshims/shims/combos/59.js +72 -71
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +8 -22
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +8 -22
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +97 -86
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +124 -102
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +49 -45
- data/vendor/assets/javascripts/webshims/shims/es5.js +2 -3
- data/vendor/assets/javascripts/webshims/shims/form-core.js +72 -70
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +8 -22
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +11 -24
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/json-storage.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +48 -41
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +26 -15
- data/vendor/assets/javascripts/webshims/shims/mediaelement-swf.js +27 -16
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +18 -6
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/track.js +2 -1
- metadata +2 -2
@@ -50,7 +50,9 @@
|
|
50
50
|
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
|
51
51
|
options.preferFlash = true;
|
52
52
|
document.removeEventListener('error', switchOptions, true);
|
53
|
-
$('audio, video').
|
53
|
+
$('audio, video').each(function(){
|
54
|
+
webshims.mediaelement.selectSource(this);
|
55
|
+
});
|
54
56
|
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
|
55
57
|
} else if(!hasSwf){
|
56
58
|
document.removeEventListener('error', switchOptions, true);
|
@@ -454,7 +456,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
454
456
|
data = data || webshims.data(elem, 'mediaelement');
|
455
457
|
stepSources(elem, data, options.preferFlash || undefined, _srces);
|
456
458
|
};
|
457
|
-
|
459
|
+
mediaelement.selectSource = selectSource;
|
458
460
|
|
459
461
|
$(document).on('ended', function(e){
|
460
462
|
var data = webshims.data(e.target, 'mediaelement');
|
@@ -520,52 +522,57 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
520
522
|
var media = $('video, audio', context)
|
521
523
|
.add(insertedElement.filter('video, audio'))
|
522
524
|
.each(function(){
|
523
|
-
|
525
|
+
var data = webshims.data(this, 'mediaelement');
|
526
|
+
|
527
|
+
if(hasNative && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay])') && (!data || data.isActive == 'html5')){
|
528
|
+
//IE controls not visible bug
|
524
529
|
$(this).prop('preload', 'metadata').mediaLoad();
|
525
530
|
} else {
|
526
|
-
selectSource(this);
|
531
|
+
selectSource(this, data);
|
527
532
|
}
|
528
533
|
|
529
|
-
|
530
|
-
|
531
534
|
if(hasNative){
|
532
|
-
var bufferTimer;
|
533
|
-
var lastBuffered;
|
534
|
-
var elem = this;
|
535
|
-
var getBufferedString = function(){
|
536
|
-
var buffered = $.prop(elem, 'buffered');
|
537
|
-
if(!buffered){return;}
|
538
|
-
var bufferString = "";
|
539
|
-
for(var i = 0, len = buffered.length; i < len;i++){
|
540
|
-
bufferString += buffered.end(i);
|
541
|
-
}
|
542
|
-
return bufferString;
|
543
|
-
};
|
544
|
-
var testBuffer = function(){
|
545
|
-
var buffered = getBufferedString();
|
546
|
-
if(buffered != lastBuffered){
|
547
|
-
lastBuffered = buffered;
|
548
|
-
$(elem).triggerHandler('progress');
|
549
|
-
}
|
550
|
-
};
|
551
535
|
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
536
|
+
//FF progress bug
|
537
|
+
(function(){
|
538
|
+
var bufferTimer;
|
539
|
+
var lastBuffered;
|
540
|
+
var elem = this;
|
541
|
+
var getBufferedString = function(){
|
542
|
+
var buffered = $.prop(elem, 'buffered');
|
543
|
+
if(!buffered){return;}
|
544
|
+
var bufferString = "";
|
545
|
+
for(var i = 0, len = buffered.length; i < len;i++){
|
546
|
+
bufferString += buffered.end(i);
|
547
|
+
}
|
548
|
+
return bufferString;
|
549
|
+
};
|
550
|
+
var testBuffer = function(){
|
551
|
+
var buffered = getBufferedString();
|
552
|
+
if(buffered != lastBuffered){
|
553
|
+
lastBuffered = buffered;
|
554
|
+
$(elem).triggerHandler('progress');
|
566
555
|
}
|
567
|
-
}
|
568
|
-
|
556
|
+
};
|
557
|
+
|
558
|
+
$(this)
|
559
|
+
.on({
|
560
|
+
'play loadstart progress': function(e){
|
561
|
+
if(e.type == 'progress'){
|
562
|
+
lastBuffered = getBufferedString();
|
563
|
+
}
|
564
|
+
clearTimeout(bufferTimer);
|
565
|
+
bufferTimer = setTimeout(testBuffer, 999);
|
566
|
+
},
|
567
|
+
'emptied stalled mediaerror abort suspend': function(e){
|
568
|
+
if(e.type == 'emptied'){
|
569
|
+
lastBuffered = false;
|
570
|
+
}
|
571
|
+
clearTimeout(bufferTimer);
|
572
|
+
}
|
573
|
+
})
|
574
|
+
;
|
575
|
+
})();
|
569
576
|
}
|
570
577
|
|
571
578
|
})
|
@@ -1052,19 +1059,29 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
1052
1059
|
var hidevents = hideEvtArray.map(function(evt){
|
1053
1060
|
return evt +'.webshimspolyfill';
|
1054
1061
|
}).join(' ');
|
1055
|
-
|
1062
|
+
var opposite = {
|
1063
|
+
'html5': 'third',
|
1064
|
+
'third': 'html5'
|
1065
|
+
};
|
1056
1066
|
var hidePlayerEvents = function(event){
|
1057
1067
|
var data = webshims.data(event.target, 'mediaelement');
|
1058
1068
|
if(!data){return;}
|
1059
1069
|
var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
|
1060
1070
|
if( isNativeHTML5 == (data.activating == 'third') ){
|
1061
1071
|
event.stopImmediatePropagation();
|
1062
|
-
if(stopEvents[event.type]
|
1063
|
-
|
1072
|
+
if(stopEvents[event.type]){
|
1073
|
+
if(data.isActive != data.activating){
|
1074
|
+
$(event.target).pause();
|
1075
|
+
} else {
|
1076
|
+
data.isActive = opposite[data.isActive];
|
1077
|
+
$(event.target).pause();
|
1078
|
+
data.isActive = opposite[data.isActive];
|
1079
|
+
}
|
1064
1080
|
}
|
1065
1081
|
}
|
1066
1082
|
};
|
1067
1083
|
|
1084
|
+
|
1068
1085
|
addMediaToStopEvents = function(elem){
|
1069
1086
|
$(elem)
|
1070
1087
|
.off(hidevents)
|
@@ -1196,6 +1213,10 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
1196
1213
|
overflow: 'hidden'
|
1197
1214
|
})
|
1198
1215
|
;
|
1216
|
+
var setDimensions = function(){
|
1217
|
+
setElementDimension(data, $.prop(elem, 'controls'));
|
1218
|
+
};
|
1219
|
+
|
1199
1220
|
data = webshims.data(elem, 'mediaelement', webshims.objectCreate(playerStateObj, {
|
1200
1221
|
actionQueue: {
|
1201
1222
|
value: []
|
@@ -1268,9 +1289,9 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
1268
1289
|
|
1269
1290
|
options.changeSWF(vars, elem, canPlaySrc, data, 'embed');
|
1270
1291
|
|
1271
|
-
|
1272
|
-
|
1273
|
-
|
1292
|
+
|
1293
|
+
$(document).on('updateshadowdom', setDimensions);
|
1294
|
+
$(elem).on('updatemediaelementdimensions', setDimensions);
|
1274
1295
|
|
1275
1296
|
|
1276
1297
|
swfobject.embedSWF(playerSwfPath, elemId, "100%", "100%", "9.0.0", false, vars, params, attrs, function(swfData){
|
@@ -1473,9 +1494,8 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
1473
1494
|
mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
|
1474
1495
|
});
|
1475
1496
|
|
1476
|
-
if(hasFlash){
|
1497
|
+
if(hasFlash && $.cleanData){
|
1477
1498
|
var oldClean = $.cleanData;
|
1478
|
-
var gcBrowser = $.browser.msie && webshims.browserVersion < 9;
|
1479
1499
|
var flashNames = {
|
1480
1500
|
object: 1,
|
1481
1501
|
OBJECT: 1
|
@@ -1492,15 +1512,13 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
1492
1512
|
elems[i][SENDEVENT]('play', false);
|
1493
1513
|
} catch(er){}
|
1494
1514
|
}
|
1495
|
-
|
1496
|
-
|
1497
|
-
|
1498
|
-
|
1499
|
-
elems[i][prop] = null;
|
1500
|
-
}
|
1515
|
+
try {
|
1516
|
+
for (prop in elems[i]) {
|
1517
|
+
if (typeof elems[i][prop] == "function") {
|
1518
|
+
elems[i][prop] = null;
|
1501
1519
|
}
|
1502
|
-
}
|
1503
|
-
}
|
1520
|
+
}
|
1521
|
+
} catch(er){}
|
1504
1522
|
}
|
1505
1523
|
}
|
1506
1524
|
|
@@ -351,7 +351,7 @@ webshims.defineNodeNamesBooleanProperty(['input', 'textarea', 'select'], 'requir
|
|
351
351
|
set: function(value){
|
352
352
|
$(this).getShadowFocusElement().attr('aria-required', !!(value)+'');
|
353
353
|
},
|
354
|
-
initAttr: (
|
354
|
+
initAttr: (Modernizr.localstorage)//only if we have aria-support
|
355
355
|
});
|
356
356
|
|
357
357
|
webshims.reflectProperties(['input'], ['pattern']);
|
@@ -666,14 +666,13 @@ webshims.defineNodeNameProperty('form', 'noValidate', {
|
|
666
666
|
}
|
667
667
|
});
|
668
668
|
|
669
|
-
if(
|
669
|
+
if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
|
670
670
|
(function(){
|
671
671
|
|
672
672
|
var noInputTriggerEvts = {updateInput: 1, input: 1},
|
673
673
|
fixInputTypes = {
|
674
674
|
date: 1,
|
675
|
-
time: 1
|
676
|
-
"datetime-local": 1
|
675
|
+
time: 1
|
677
676
|
},
|
678
677
|
noFocusEvents = {
|
679
678
|
focusout: 1,
|
@@ -1097,8 +1096,7 @@ try {
|
|
1097
1096
|
|
1098
1097
|
(function(){
|
1099
1098
|
Modernizr.textareaPlaceholder = !!('placeholder' in $('<textarea />')[0]);
|
1100
|
-
|
1101
|
-
if(Modernizr.input.placeholder && Modernizr.textareaPlaceholder && !bustedTextarea){return;}
|
1099
|
+
if(Modernizr.input.placeholder && Modernizr.textareaPlaceholder){return;}
|
1102
1100
|
|
1103
1101
|
var isOver = (webshims.cfg.forms.placeholderType == 'over');
|
1104
1102
|
var isResponsive = (webshims.cfg.forms.responsivePlaceholder);
|
@@ -1300,8 +1298,8 @@ try {
|
|
1300
1298
|
data.text.css('padding'+ side, size);
|
1301
1299
|
});
|
1302
1300
|
|
1303
|
-
$(
|
1304
|
-
.
|
1301
|
+
$(document)
|
1302
|
+
.onTrigger('updateshadowdom', function(){
|
1305
1303
|
var height, width;
|
1306
1304
|
if((width = elem.offsetWidth) || (height = elem.offsetHeight)){
|
1307
1305
|
data.text
|
@@ -1313,7 +1311,6 @@ try {
|
|
1313
1311
|
;
|
1314
1312
|
}
|
1315
1313
|
})
|
1316
|
-
.triggerHandler('updateshadowdom')
|
1317
1314
|
;
|
1318
1315
|
|
1319
1316
|
} else {
|
@@ -1369,17 +1366,11 @@ try {
|
|
1369
1366
|
attr: {
|
1370
1367
|
set: function(val){
|
1371
1368
|
var elem = this;
|
1372
|
-
|
1373
|
-
webshims.data(elem, 'textareaPlaceholder', val);
|
1374
|
-
elem.placeholder = '';
|
1375
|
-
} else {
|
1376
|
-
webshims.contentAttr(elem, 'placeholder', val);
|
1377
|
-
}
|
1369
|
+
webshims.contentAttr(elem, 'placeholder', val);
|
1378
1370
|
pHolder.update(elem, val);
|
1379
1371
|
},
|
1380
1372
|
get: function(){
|
1381
|
-
|
1382
|
-
return ret || webshims.contentAttr(this, 'placeholder');
|
1373
|
+
return webshims.contentAttr(this, 'placeholder');
|
1383
1374
|
}
|
1384
1375
|
},
|
1385
1376
|
reflect: true,
|
@@ -1395,13 +1386,9 @@ try {
|
|
1395
1386
|
placeholderValueDesc[propType] = {
|
1396
1387
|
set: function(val){
|
1397
1388
|
var elem = this;
|
1398
|
-
var placeholder;
|
1399
|
-
|
1400
|
-
|
1401
|
-
}
|
1402
|
-
if(!placeholder){
|
1403
|
-
placeholder = webshims.contentAttr(elem, 'placeholder');
|
1404
|
-
}
|
1389
|
+
var placeholder = webshims.contentAttr(elem, 'placeholder');
|
1390
|
+
|
1391
|
+
|
1405
1392
|
$.removeData(elem, 'cachedValidity');
|
1406
1393
|
var ret = desc[propType]._supset.call(elem, val);
|
1407
1394
|
if(placeholder && 'value' in elem){
|
@@ -664,8 +664,7 @@ var prepareString = "a"[0] != "a",
|
|
664
664
|
var defineProperty = 'defineProperty';
|
665
665
|
var advancedObjectProperties = !!(Object.create && Object.defineProperties && Object.getOwnPropertyDescriptor);
|
666
666
|
//safari5 has defineProperty-interface, but it can't be used on dom-object
|
667
|
-
|
668
|
-
if (advancedObjectProperties && !$.browser.msie && Object[defineProperty] && Object.prototype.__defineGetter__) {
|
667
|
+
if (advancedObjectProperties && Object[defineProperty] && Object.prototype.__defineGetter__) {
|
669
668
|
(function(){
|
670
669
|
try {
|
671
670
|
var foo = document.createElement('foo');
|
@@ -683,7 +682,7 @@ var prepareString = "a"[0] != "a",
|
|
683
682
|
})();
|
684
683
|
}
|
685
684
|
|
686
|
-
Modernizr.objectAccessor = !!((advancedObjectProperties || (Object.prototype.__defineGetter__ && Object.prototype.__lookupSetter__))
|
685
|
+
Modernizr.objectAccessor = !!((advancedObjectProperties || (Object.prototype.__defineGetter__ && Object.prototype.__lookupSetter__)));
|
687
686
|
Modernizr.advancedObjectProperties = advancedObjectProperties;
|
688
687
|
|
689
688
|
if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !Object.getOwnPropertyDescriptor || !Object.defineProperty)){
|
@@ -853,7 +852,9 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
|
|
853
852
|
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
|
854
853
|
options.preferFlash = true;
|
855
854
|
document.removeEventListener('error', switchOptions, true);
|
856
|
-
$('audio, video').
|
855
|
+
$('audio, video').each(function(){
|
856
|
+
webshims.mediaelement.selectSource(this);
|
857
|
+
});
|
857
858
|
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
|
858
859
|
} else if(!hasSwf){
|
859
860
|
document.removeEventListener('error', switchOptions, true);
|
@@ -1257,7 +1258,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
1257
1258
|
data = data || webshims.data(elem, 'mediaelement');
|
1258
1259
|
stepSources(elem, data, options.preferFlash || undefined, _srces);
|
1259
1260
|
};
|
1260
|
-
|
1261
|
+
mediaelement.selectSource = selectSource;
|
1261
1262
|
|
1262
1263
|
$(document).on('ended', function(e){
|
1263
1264
|
var data = webshims.data(e.target, 'mediaelement');
|
@@ -1323,52 +1324,57 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
1323
1324
|
var media = $('video, audio', context)
|
1324
1325
|
.add(insertedElement.filter('video, audio'))
|
1325
1326
|
.each(function(){
|
1326
|
-
|
1327
|
+
var data = webshims.data(this, 'mediaelement');
|
1328
|
+
|
1329
|
+
if(hasNative && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay])') && (!data || data.isActive == 'html5')){
|
1330
|
+
//IE controls not visible bug
|
1327
1331
|
$(this).prop('preload', 'metadata').mediaLoad();
|
1328
1332
|
} else {
|
1329
|
-
selectSource(this);
|
1333
|
+
selectSource(this, data);
|
1330
1334
|
}
|
1331
1335
|
|
1332
|
-
|
1333
|
-
|
1334
1336
|
if(hasNative){
|
1335
|
-
var bufferTimer;
|
1336
|
-
var lastBuffered;
|
1337
|
-
var elem = this;
|
1338
|
-
var getBufferedString = function(){
|
1339
|
-
var buffered = $.prop(elem, 'buffered');
|
1340
|
-
if(!buffered){return;}
|
1341
|
-
var bufferString = "";
|
1342
|
-
for(var i = 0, len = buffered.length; i < len;i++){
|
1343
|
-
bufferString += buffered.end(i);
|
1344
|
-
}
|
1345
|
-
return bufferString;
|
1346
|
-
};
|
1347
|
-
var testBuffer = function(){
|
1348
|
-
var buffered = getBufferedString();
|
1349
|
-
if(buffered != lastBuffered){
|
1350
|
-
lastBuffered = buffered;
|
1351
|
-
$(elem).triggerHandler('progress');
|
1352
|
-
}
|
1353
|
-
};
|
1354
1337
|
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1362
|
-
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
|
1338
|
+
//FF progress bug
|
1339
|
+
(function(){
|
1340
|
+
var bufferTimer;
|
1341
|
+
var lastBuffered;
|
1342
|
+
var elem = this;
|
1343
|
+
var getBufferedString = function(){
|
1344
|
+
var buffered = $.prop(elem, 'buffered');
|
1345
|
+
if(!buffered){return;}
|
1346
|
+
var bufferString = "";
|
1347
|
+
for(var i = 0, len = buffered.length; i < len;i++){
|
1348
|
+
bufferString += buffered.end(i);
|
1349
|
+
}
|
1350
|
+
return bufferString;
|
1351
|
+
};
|
1352
|
+
var testBuffer = function(){
|
1353
|
+
var buffered = getBufferedString();
|
1354
|
+
if(buffered != lastBuffered){
|
1355
|
+
lastBuffered = buffered;
|
1356
|
+
$(elem).triggerHandler('progress');
|
1369
1357
|
}
|
1370
|
-
}
|
1371
|
-
|
1358
|
+
};
|
1359
|
+
|
1360
|
+
$(this)
|
1361
|
+
.on({
|
1362
|
+
'play loadstart progress': function(e){
|
1363
|
+
if(e.type == 'progress'){
|
1364
|
+
lastBuffered = getBufferedString();
|
1365
|
+
}
|
1366
|
+
clearTimeout(bufferTimer);
|
1367
|
+
bufferTimer = setTimeout(testBuffer, 999);
|
1368
|
+
},
|
1369
|
+
'emptied stalled mediaerror abort suspend': function(e){
|
1370
|
+
if(e.type == 'emptied'){
|
1371
|
+
lastBuffered = false;
|
1372
|
+
}
|
1373
|
+
clearTimeout(bufferTimer);
|
1374
|
+
}
|
1375
|
+
})
|
1376
|
+
;
|
1377
|
+
})();
|
1372
1378
|
}
|
1373
1379
|
|
1374
1380
|
})
|
@@ -1855,19 +1861,29 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
1855
1861
|
var hidevents = hideEvtArray.map(function(evt){
|
1856
1862
|
return evt +'.webshimspolyfill';
|
1857
1863
|
}).join(' ');
|
1858
|
-
|
1864
|
+
var opposite = {
|
1865
|
+
'html5': 'third',
|
1866
|
+
'third': 'html5'
|
1867
|
+
};
|
1859
1868
|
var hidePlayerEvents = function(event){
|
1860
1869
|
var data = webshims.data(event.target, 'mediaelement');
|
1861
1870
|
if(!data){return;}
|
1862
1871
|
var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
|
1863
1872
|
if( isNativeHTML5 == (data.activating == 'third') ){
|
1864
1873
|
event.stopImmediatePropagation();
|
1865
|
-
if(stopEvents[event.type]
|
1866
|
-
|
1874
|
+
if(stopEvents[event.type]){
|
1875
|
+
if(data.isActive != data.activating){
|
1876
|
+
$(event.target).pause();
|
1877
|
+
} else {
|
1878
|
+
data.isActive = opposite[data.isActive];
|
1879
|
+
$(event.target).pause();
|
1880
|
+
data.isActive = opposite[data.isActive];
|
1881
|
+
}
|
1867
1882
|
}
|
1868
1883
|
}
|
1869
1884
|
};
|
1870
1885
|
|
1886
|
+
|
1871
1887
|
addMediaToStopEvents = function(elem){
|
1872
1888
|
$(elem)
|
1873
1889
|
.off(hidevents)
|
@@ -1999,6 +2015,10 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
1999
2015
|
overflow: 'hidden'
|
2000
2016
|
})
|
2001
2017
|
;
|
2018
|
+
var setDimensions = function(){
|
2019
|
+
setElementDimension(data, $.prop(elem, 'controls'));
|
2020
|
+
};
|
2021
|
+
|
2002
2022
|
data = webshims.data(elem, 'mediaelement', webshims.objectCreate(playerStateObj, {
|
2003
2023
|
actionQueue: {
|
2004
2024
|
value: []
|
@@ -2071,9 +2091,9 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
2071
2091
|
|
2072
2092
|
options.changeSWF(vars, elem, canPlaySrc, data, 'embed');
|
2073
2093
|
|
2074
|
-
|
2075
|
-
|
2076
|
-
|
2094
|
+
|
2095
|
+
$(document).on('updateshadowdom', setDimensions);
|
2096
|
+
$(elem).on('updatemediaelementdimensions', setDimensions);
|
2077
2097
|
|
2078
2098
|
|
2079
2099
|
swfobject.embedSWF(playerSwfPath, elemId, "100%", "100%", "9.0.0", false, vars, params, attrs, function(swfData){
|
@@ -2276,9 +2296,8 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
2276
2296
|
mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
|
2277
2297
|
});
|
2278
2298
|
|
2279
|
-
if(hasFlash){
|
2299
|
+
if(hasFlash && $.cleanData){
|
2280
2300
|
var oldClean = $.cleanData;
|
2281
|
-
var gcBrowser = $.browser.msie && webshims.browserVersion < 9;
|
2282
2301
|
var flashNames = {
|
2283
2302
|
object: 1,
|
2284
2303
|
OBJECT: 1
|
@@ -2295,15 +2314,13 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
2295
2314
|
elems[i][SENDEVENT]('play', false);
|
2296
2315
|
} catch(er){}
|
2297
2316
|
}
|
2298
|
-
|
2299
|
-
|
2300
|
-
|
2301
|
-
|
2302
|
-
elems[i][prop] = null;
|
2303
|
-
}
|
2317
|
+
try {
|
2318
|
+
for (prop in elems[i]) {
|
2319
|
+
if (typeof elems[i][prop] == "function") {
|
2320
|
+
elems[i][prop] = null;
|
2304
2321
|
}
|
2305
|
-
}
|
2306
|
-
}
|
2322
|
+
}
|
2323
|
+
} catch(er){}
|
2307
2324
|
}
|
2308
2325
|
}
|
2309
2326
|
|