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
@@ -284,7 +284,7 @@ if (!('sessionStorage' in window)) {window.sessionStorage = new Storage('session
|
|
284
284
|
if(runStart || (('localStorage' in window) && document.getElementById('swflocalstorageshim')) ){return;}
|
285
285
|
runStart = true;
|
286
286
|
if(window.swfobject && swfobject.hasFlashPlayerVersion('8.0.0')){
|
287
|
-
$('body')
|
287
|
+
$('body').append('<div id="swflocalstorageshim-wrapper"><div id="swflocalstorageshim" /></div>');
|
288
288
|
swfobject.embedSWF($.webshims.cfg.basePath +'swf/localStorage.swf' +($.webshims.cfg.addCacheBuster || ''), 'swflocalstorageshim', '295', '198', '8.0.0', '', {allowscriptaccess: 'always'}, {name: 'swflocalstorageshim'}, function(e){
|
289
289
|
if(!e.success && !window.localStorage){
|
290
290
|
localStorageSwfCallback();
|
@@ -316,7 +316,7 @@ if (!('sessionStorage' in window)) {window.sessionStorage = new Storage('session
|
|
316
316
|
},
|
317
317
|
id = 0
|
318
318
|
;
|
319
|
-
var geoOpts = $.webshims.cfg.geolocation
|
319
|
+
var geoOpts = $.webshims.cfg.geolocation || {};
|
320
320
|
navigator.geolocation = (function(){
|
321
321
|
var pos;
|
322
322
|
var api = {
|
@@ -16,6 +16,11 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
16
16
|
var singleVal = function(elem, name, val, pass, _argless){
|
17
17
|
return (_argless) ? oldVal.call($(elem)) : oldVal.call($(elem), val);
|
18
18
|
};
|
19
|
+
|
20
|
+
$.fn.onTrigger = function(evt, fn){
|
21
|
+
return this.on(evt, fn).each(fn);
|
22
|
+
};
|
23
|
+
|
19
24
|
$.fn.val = function(val){
|
20
25
|
var elem = this[0];
|
21
26
|
if(arguments.length && val == null){
|
@@ -210,14 +215,14 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
210
215
|
});
|
211
216
|
|
212
217
|
//see also: https://github.com/lojjic/PIE/issues/40 | https://prototype.lighthouseapp.com/projects/8886/tickets/1107-ie8-fatal-crash-when-prototypejs-is-loaded-with-rounded-cornershtc
|
213
|
-
var isExtendNativeSave =
|
218
|
+
var isExtendNativeSave = Modernizr.ES5;
|
214
219
|
var extendNativeValue = (function(){
|
215
220
|
var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
|
216
221
|
var has = Object.prototype.hasOwnProperty;
|
217
222
|
return function(nodeName, prop, desc){
|
218
|
-
var elem
|
219
|
-
var elemProto
|
220
|
-
if( isExtendNativeSave && elemProto && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){
|
223
|
+
var elem;
|
224
|
+
var elemProto;
|
225
|
+
if( isExtendNativeSave && (elem = document.createElement(nodeName)) && (elemProto = webshims.getPrototypeOf(elem)) && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){
|
221
226
|
var sup = elem[prop];
|
222
227
|
desc._supvalue = function(){
|
223
228
|
if(sup && sup.apply){
|
@@ -417,7 +422,7 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
417
422
|
docObserve.width = docObserve.getWidth();
|
418
423
|
|
419
424
|
}
|
420
|
-
|
425
|
+
$(document).triggerHandler('updateshadowdom');
|
421
426
|
}, (e.type == 'resize') ? 50 : 9);
|
422
427
|
},
|
423
428
|
_create: function(){
|
@@ -461,7 +466,6 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
461
466
|
};
|
462
467
|
|
463
468
|
|
464
|
-
$.event.customEvent.updateshadowdom = true;
|
465
469
|
webshims.docObserve = function(){
|
466
470
|
webshims.ready('DOM', function(){
|
467
471
|
docObserve.start();
|
@@ -905,52 +909,53 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
905
909
|
});
|
906
910
|
//html5a11y
|
907
911
|
(function($, document){
|
908
|
-
|
909
|
-
if(
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
|
918
|
-
|
919
|
-
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
}
|
931
|
-
});
|
932
|
-
if (context === document) {
|
933
|
-
var header = document.getElementsByTagName('header')[0];
|
934
|
-
var footers = document.getElementsByTagName('footer');
|
935
|
-
var footerLen = footers.length;
|
936
|
-
if (header && !$(header).closest('section, article')[0]) {
|
937
|
-
addRole(header, 'banner');
|
938
|
-
}
|
939
|
-
if (!footerLen) {
|
940
|
-
return;
|
941
|
-
}
|
942
|
-
var footer = footers[footerLen - 1];
|
943
|
-
if (!$(footer).closest('section, article')[0]) {
|
944
|
-
addRole(footer, 'contentinfo');
|
945
|
-
}
|
912
|
+
//if we support basic styleing or do not support ARIA (assumed) abort
|
913
|
+
if(!Modernizr.localstorage || ('hidden' in document.createElement('a'))){return;}
|
914
|
+
|
915
|
+
var elemMappings = {
|
916
|
+
article: "article",
|
917
|
+
aside: "complementary",
|
918
|
+
section: "region",
|
919
|
+
nav: "navigation",
|
920
|
+
address: "contentinfo"
|
921
|
+
};
|
922
|
+
var addRole = function(elem, role){
|
923
|
+
var hasRole = elem.getAttribute('role');
|
924
|
+
if (!hasRole) {
|
925
|
+
elem.setAttribute('role', role);
|
926
|
+
}
|
927
|
+
};
|
928
|
+
|
929
|
+
$.webshims.addReady(function(context, contextElem){
|
930
|
+
$.each(elemMappings, function(name, role){
|
931
|
+
var elems = $(name, context).add(contextElem.filter(name));
|
932
|
+
for (var i = 0, len = elems.length; i < len; i++) {
|
933
|
+
addRole(elems[i], role);
|
946
934
|
}
|
947
935
|
});
|
948
|
-
|
936
|
+
if (context === document) {
|
937
|
+
var header = document.getElementsByTagName('header')[0];
|
938
|
+
var footers = document.getElementsByTagName('footer');
|
939
|
+
var footerLen = footers.length;
|
940
|
+
if (header && !$(header).closest('section, article')[0]) {
|
941
|
+
addRole(header, 'banner');
|
942
|
+
}
|
943
|
+
if (!footerLen) {
|
944
|
+
return;
|
945
|
+
}
|
946
|
+
var footer = footers[footerLen - 1];
|
947
|
+
if (!$(footer).closest('section, article')[0]) {
|
948
|
+
addRole(footer, 'contentinfo');
|
949
|
+
}
|
950
|
+
}
|
951
|
+
});
|
952
|
+
|
949
953
|
})(jQuery, document);
|
950
954
|
|
951
955
|
//additional tests for partial implementation of forms features
|
952
956
|
(function($){
|
953
957
|
"use strict";
|
958
|
+
var isWebkit = /webkit/i.test(navigator.userAgent);
|
954
959
|
var Modernizr = window.Modernizr;
|
955
960
|
var webshims = $.webshims;
|
956
961
|
var bugs = webshims.bugs;
|
@@ -993,80 +998,80 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
993
998
|
|
994
999
|
if(!Modernizr.formvalidation || bugs.bustedValidity){
|
995
1000
|
testRequiredFind();
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
webshims.capturingEvents(['input']);
|
1001
|
-
webshims.capturingEvents(['invalid'], true);
|
1002
|
-
|
1003
|
-
if(window.opera || window.testGoodWithFix){
|
1004
|
-
|
1005
|
-
form.appendTo('head');
|
1006
|
-
|
1007
|
-
testRequiredFind();
|
1008
|
-
bugs.validationMessage = !(inputElem.prop('validationMessage'));
|
1009
|
-
|
1010
|
-
webshims.reTest(['form-native-extend', 'form-message']);
|
1001
|
+
} else {
|
1002
|
+
//create delegatable events
|
1003
|
+
webshims.capturingEvents(['input']);
|
1004
|
+
webshims.capturingEvents(['invalid'], true);
|
1011
1005
|
|
1012
|
-
|
1006
|
+
if(window.opera || window.testGoodWithFix){
|
1013
1007
|
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1008
|
+
form.appendTo('head');
|
1009
|
+
|
1010
|
+
testRequiredFind();
|
1011
|
+
bugs.validationMessage = !(inputElem.prop('validationMessage'));
|
1012
|
+
|
1013
|
+
webshims.reTest(['form-native-extend', 'form-message']);
|
1014
|
+
|
1015
|
+
form.remove();
|
1022
1016
|
|
1023
|
-
|
1024
|
-
|
1025
|
-
|
1026
|
-
|
1027
|
-
|
1028
|
-
|
1029
|
-
|
1030
|
-
|
1031
|
-
|
1032
|
-
|
1033
|
-
|
1034
|
-
|
1017
|
+
$(function(){
|
1018
|
+
onDomextend(function(){
|
1019
|
+
|
1020
|
+
//Opera shows native validation bubbles in case of input.checkValidity()
|
1021
|
+
// Opera 11.6/12 hasn't fixed this issue right, it's buggy
|
1022
|
+
var preventDefault = function(e){
|
1023
|
+
e.preventDefault();
|
1024
|
+
};
|
1025
|
+
|
1026
|
+
['form', 'input', 'textarea', 'select'].forEach(function(name){
|
1027
|
+
var desc = webshims.defineNodeNameProperty(name, 'checkValidity', {
|
1028
|
+
prop: {
|
1029
|
+
value: function(){
|
1030
|
+
if (!webshims.fromSubmit) {
|
1031
|
+
$(this).on('invalid.checkvalidity', preventDefault);
|
1032
|
+
}
|
1033
|
+
|
1034
|
+
webshims.fromCheckValidity = true;
|
1035
|
+
var ret = desc.prop._supvalue.apply(this, arguments);
|
1036
|
+
if (!webshims.fromSubmit) {
|
1037
|
+
$(this).unbind('invalid.checkvalidity', preventDefault);
|
1038
|
+
}
|
1039
|
+
webshims.fromCheckValidity = false;
|
1040
|
+
return ret;
|
1035
1041
|
}
|
1036
|
-
webshims.fromCheckValidity = false;
|
1037
|
-
return ret;
|
1038
1042
|
}
|
1039
|
-
}
|
1043
|
+
});
|
1040
1044
|
});
|
1045
|
+
|
1041
1046
|
});
|
1042
|
-
|
1043
1047
|
});
|
1044
|
-
}
|
1048
|
+
}
|
1049
|
+
|
1050
|
+
if(isWebkit && !webshims.bugs.bustedValidity){
|
1051
|
+
(function(){
|
1052
|
+
var elems = /^(?:textarea|input)$/i;
|
1053
|
+
var form = false;
|
1054
|
+
|
1055
|
+
document.addEventListener('contextmenu', function(e){
|
1056
|
+
if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
|
1057
|
+
setTimeout(function(){
|
1058
|
+
form = false;
|
1059
|
+
}, 1);
|
1060
|
+
}
|
1061
|
+
}, false);
|
1062
|
+
|
1063
|
+
$(window).on('invalid', function(e){
|
1064
|
+
if(e.originalEvent && form && form == e.target.form){
|
1065
|
+
e.wrongWebkitInvalid = true;
|
1066
|
+
e.stopImmediatePropagation();
|
1067
|
+
}
|
1068
|
+
});
|
1069
|
+
|
1070
|
+
})();
|
1071
|
+
}
|
1045
1072
|
}
|
1046
1073
|
|
1047
|
-
|
1048
|
-
(function(){
|
1049
|
-
var elems = /^(?:textarea|input)$/i;
|
1050
|
-
var form = false;
|
1051
|
-
|
1052
|
-
document.addEventListener('contextmenu', function(e){
|
1053
|
-
if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
|
1054
|
-
setTimeout(function(){
|
1055
|
-
form = false;
|
1056
|
-
}, 1);
|
1057
|
-
}
|
1058
|
-
}, false);
|
1059
|
-
|
1060
|
-
$(window).on('invalid', function(e){
|
1061
|
-
if(e.originalEvent && form && form == e.target.form){
|
1062
|
-
e.wrongWebkitInvalid = true;
|
1063
|
-
e.stopImmediatePropagation();
|
1064
|
-
}
|
1065
|
-
});
|
1066
|
-
|
1067
|
-
})();
|
1068
|
-
}
|
1069
|
-
})(jQuery);
|
1074
|
+
|
1070
1075
|
|
1071
1076
|
jQuery.webshims.register('form-core', function($, webshims, window, document, undefined, options){
|
1072
1077
|
"use strict";
|
@@ -1181,7 +1186,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1181
1186
|
return false;
|
1182
1187
|
};
|
1183
1188
|
|
1184
|
-
if(Modernizr.formvalidation &&
|
1189
|
+
if(Modernizr.formvalidation && isWebkit && !webshims.bugs.bustedValidity){
|
1185
1190
|
(function(){
|
1186
1191
|
var retriggerRadioValidity = function(){
|
1187
1192
|
var validity;
|
@@ -1360,7 +1365,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1360
1365
|
|
1361
1366
|
|
1362
1367
|
var setRoot = function(){
|
1363
|
-
webshims.scrollRoot = (
|
1368
|
+
webshims.scrollRoot = (isWebkit || document.compatMode == 'BackCompat') ?
|
1364
1369
|
$(document.body) :
|
1365
1370
|
$(document.documentElement)
|
1366
1371
|
;
|
@@ -1382,7 +1387,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1382
1387
|
|
1383
1388
|
/* some extra validation UI */
|
1384
1389
|
webshims.validityAlert = (function(){
|
1385
|
-
var alertElem =
|
1390
|
+
var alertElem = 'span';
|
1386
1391
|
var errorBubble;
|
1387
1392
|
var hideTimer = false;
|
1388
1393
|
var focusTimer = false;
|
@@ -1497,7 +1502,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1497
1502
|
errorBubble = api.errorBubble = $('<'+alertElem+' class="validity-alert-wrapper" role="alert"><span class="validity-alert"><span class="va-arrow"><span class="va-arrow-box"></span></span><span class="va-box"></span></span></'+alertElem+'>').css({position: 'absolute', display: 'none'});
|
1498
1503
|
webshims.ready('DOM', function(){
|
1499
1504
|
errorBubble.appendTo('body');
|
1500
|
-
if($.fn.bgIframe
|
1505
|
+
if($.fn.bgIframe){
|
1501
1506
|
errorBubble.bgIframe();
|
1502
1507
|
}
|
1503
1508
|
});
|
@@ -1577,8 +1582,9 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1577
1582
|
});
|
1578
1583
|
});
|
1579
1584
|
}
|
1580
|
-
|
1581
1585
|
});
|
1586
|
+
|
1587
|
+
})(jQuery);
|
1582
1588
|
(function($, Modernizr, webshims){
|
1583
1589
|
"use strict";
|
1584
1590
|
var hasNative = Modernizr.audio && Modernizr.video;
|
@@ -1631,7 +1637,9 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
1631
1637
|
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
|
1632
1638
|
options.preferFlash = true;
|
1633
1639
|
document.removeEventListener('error', switchOptions, true);
|
1634
|
-
$('audio, video').
|
1640
|
+
$('audio, video').each(function(){
|
1641
|
+
webshims.mediaelement.selectSource(this);
|
1642
|
+
});
|
1635
1643
|
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
|
1636
1644
|
} else if(!hasSwf){
|
1637
1645
|
document.removeEventListener('error', switchOptions, true);
|
@@ -2035,7 +2043,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2035
2043
|
data = data || webshims.data(elem, 'mediaelement');
|
2036
2044
|
stepSources(elem, data, options.preferFlash || undefined, _srces);
|
2037
2045
|
};
|
2038
|
-
|
2046
|
+
mediaelement.selectSource = selectSource;
|
2039
2047
|
|
2040
2048
|
$(document).on('ended', function(e){
|
2041
2049
|
var data = webshims.data(e.target, 'mediaelement');
|
@@ -2101,52 +2109,57 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2101
2109
|
var media = $('video, audio', context)
|
2102
2110
|
.add(insertedElement.filter('video, audio'))
|
2103
2111
|
.each(function(){
|
2104
|
-
|
2112
|
+
var data = webshims.data(this, 'mediaelement');
|
2113
|
+
|
2114
|
+
if(hasNative && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay])') && (!data || data.isActive == 'html5')){
|
2115
|
+
//IE controls not visible bug
|
2105
2116
|
$(this).prop('preload', 'metadata').mediaLoad();
|
2106
2117
|
} else {
|
2107
|
-
selectSource(this);
|
2118
|
+
selectSource(this, data);
|
2108
2119
|
}
|
2109
2120
|
|
2110
|
-
|
2111
|
-
|
2112
2121
|
if(hasNative){
|
2113
|
-
var bufferTimer;
|
2114
|
-
var lastBuffered;
|
2115
|
-
var elem = this;
|
2116
|
-
var getBufferedString = function(){
|
2117
|
-
var buffered = $.prop(elem, 'buffered');
|
2118
|
-
if(!buffered){return;}
|
2119
|
-
var bufferString = "";
|
2120
|
-
for(var i = 0, len = buffered.length; i < len;i++){
|
2121
|
-
bufferString += buffered.end(i);
|
2122
|
-
}
|
2123
|
-
return bufferString;
|
2124
|
-
};
|
2125
|
-
var testBuffer = function(){
|
2126
|
-
var buffered = getBufferedString();
|
2127
|
-
if(buffered != lastBuffered){
|
2128
|
-
lastBuffered = buffered;
|
2129
|
-
$(elem).triggerHandler('progress');
|
2130
|
-
}
|
2131
|
-
};
|
2132
2122
|
|
2133
|
-
|
2134
|
-
|
2135
|
-
|
2136
|
-
|
2137
|
-
|
2138
|
-
|
2139
|
-
|
2140
|
-
|
2141
|
-
|
2142
|
-
|
2143
|
-
|
2144
|
-
lastBuffered = false;
|
2145
|
-
}
|
2146
|
-
clearTimeout(bufferTimer);
|
2123
|
+
//FF progress bug
|
2124
|
+
(function(){
|
2125
|
+
var bufferTimer;
|
2126
|
+
var lastBuffered;
|
2127
|
+
var elem = this;
|
2128
|
+
var getBufferedString = function(){
|
2129
|
+
var buffered = $.prop(elem, 'buffered');
|
2130
|
+
if(!buffered){return;}
|
2131
|
+
var bufferString = "";
|
2132
|
+
for(var i = 0, len = buffered.length; i < len;i++){
|
2133
|
+
bufferString += buffered.end(i);
|
2147
2134
|
}
|
2148
|
-
|
2149
|
-
|
2135
|
+
return bufferString;
|
2136
|
+
};
|
2137
|
+
var testBuffer = function(){
|
2138
|
+
var buffered = getBufferedString();
|
2139
|
+
if(buffered != lastBuffered){
|
2140
|
+
lastBuffered = buffered;
|
2141
|
+
$(elem).triggerHandler('progress');
|
2142
|
+
}
|
2143
|
+
};
|
2144
|
+
|
2145
|
+
$(this)
|
2146
|
+
.on({
|
2147
|
+
'play loadstart progress': function(e){
|
2148
|
+
if(e.type == 'progress'){
|
2149
|
+
lastBuffered = getBufferedString();
|
2150
|
+
}
|
2151
|
+
clearTimeout(bufferTimer);
|
2152
|
+
bufferTimer = setTimeout(testBuffer, 999);
|
2153
|
+
},
|
2154
|
+
'emptied stalled mediaerror abort suspend': function(e){
|
2155
|
+
if(e.type == 'emptied'){
|
2156
|
+
lastBuffered = false;
|
2157
|
+
}
|
2158
|
+
clearTimeout(bufferTimer);
|
2159
|
+
}
|
2160
|
+
})
|
2161
|
+
;
|
2162
|
+
})();
|
2150
2163
|
}
|
2151
2164
|
|
2152
2165
|
})
|