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
@@ -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)){
|
@@ -819,6 +818,11 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
819
818
|
var singleVal = function(elem, name, val, pass, _argless){
|
820
819
|
return (_argless) ? oldVal.call($(elem)) : oldVal.call($(elem), val);
|
821
820
|
};
|
821
|
+
|
822
|
+
$.fn.onTrigger = function(evt, fn){
|
823
|
+
return this.on(evt, fn).each(fn);
|
824
|
+
};
|
825
|
+
|
822
826
|
$.fn.val = function(val){
|
823
827
|
var elem = this[0];
|
824
828
|
if(arguments.length && val == null){
|
@@ -1013,14 +1017,14 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
1013
1017
|
});
|
1014
1018
|
|
1015
1019
|
//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
|
1016
|
-
var isExtendNativeSave =
|
1020
|
+
var isExtendNativeSave = Modernizr.ES5;
|
1017
1021
|
var extendNativeValue = (function(){
|
1018
1022
|
var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
|
1019
1023
|
var has = Object.prototype.hasOwnProperty;
|
1020
1024
|
return function(nodeName, prop, desc){
|
1021
|
-
var elem
|
1022
|
-
var elemProto
|
1023
|
-
if( isExtendNativeSave && elemProto && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){
|
1025
|
+
var elem;
|
1026
|
+
var elemProto;
|
1027
|
+
if( isExtendNativeSave && (elem = document.createElement(nodeName)) && (elemProto = webshims.getPrototypeOf(elem)) && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){
|
1024
1028
|
var sup = elem[prop];
|
1025
1029
|
desc._supvalue = function(){
|
1026
1030
|
if(sup && sup.apply){
|
@@ -1220,7 +1224,7 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
1220
1224
|
docObserve.width = docObserve.getWidth();
|
1221
1225
|
|
1222
1226
|
}
|
1223
|
-
|
1227
|
+
$(document).triggerHandler('updateshadowdom');
|
1224
1228
|
}, (e.type == 'resize') ? 50 : 9);
|
1225
1229
|
},
|
1226
1230
|
_create: function(){
|
@@ -1264,7 +1268,6 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
1264
1268
|
};
|
1265
1269
|
|
1266
1270
|
|
1267
|
-
$.event.customEvent.updateshadowdom = true;
|
1268
1271
|
webshims.docObserve = function(){
|
1269
1272
|
webshims.ready('DOM', function(){
|
1270
1273
|
docObserve.start();
|
@@ -1708,47 +1711,47 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
1708
1711
|
});
|
1709
1712
|
//html5a11y
|
1710
1713
|
(function($, document){
|
1711
|
-
|
1712
|
-
if(
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1718
|
-
|
1719
|
-
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
1729
|
-
|
1730
|
-
|
1731
|
-
|
1732
|
-
|
1733
|
-
}
|
1734
|
-
});
|
1735
|
-
if (context === document) {
|
1736
|
-
var header = document.getElementsByTagName('header')[0];
|
1737
|
-
var footers = document.getElementsByTagName('footer');
|
1738
|
-
var footerLen = footers.length;
|
1739
|
-
if (header && !$(header).closest('section, article')[0]) {
|
1740
|
-
addRole(header, 'banner');
|
1741
|
-
}
|
1742
|
-
if (!footerLen) {
|
1743
|
-
return;
|
1744
|
-
}
|
1745
|
-
var footer = footers[footerLen - 1];
|
1746
|
-
if (!$(footer).closest('section, article')[0]) {
|
1747
|
-
addRole(footer, 'contentinfo');
|
1748
|
-
}
|
1714
|
+
//if we support basic styleing or do not support ARIA (assumed) abort
|
1715
|
+
if(!Modernizr.localstorage || ('hidden' in document.createElement('a'))){return;}
|
1716
|
+
|
1717
|
+
var elemMappings = {
|
1718
|
+
article: "article",
|
1719
|
+
aside: "complementary",
|
1720
|
+
section: "region",
|
1721
|
+
nav: "navigation",
|
1722
|
+
address: "contentinfo"
|
1723
|
+
};
|
1724
|
+
var addRole = function(elem, role){
|
1725
|
+
var hasRole = elem.getAttribute('role');
|
1726
|
+
if (!hasRole) {
|
1727
|
+
elem.setAttribute('role', role);
|
1728
|
+
}
|
1729
|
+
};
|
1730
|
+
|
1731
|
+
$.webshims.addReady(function(context, contextElem){
|
1732
|
+
$.each(elemMappings, function(name, role){
|
1733
|
+
var elems = $(name, context).add(contextElem.filter(name));
|
1734
|
+
for (var i = 0, len = elems.length; i < len; i++) {
|
1735
|
+
addRole(elems[i], role);
|
1749
1736
|
}
|
1750
1737
|
});
|
1751
|
-
|
1738
|
+
if (context === document) {
|
1739
|
+
var header = document.getElementsByTagName('header')[0];
|
1740
|
+
var footers = document.getElementsByTagName('footer');
|
1741
|
+
var footerLen = footers.length;
|
1742
|
+
if (header && !$(header).closest('section, article')[0]) {
|
1743
|
+
addRole(header, 'banner');
|
1744
|
+
}
|
1745
|
+
if (!footerLen) {
|
1746
|
+
return;
|
1747
|
+
}
|
1748
|
+
var footer = footers[footerLen - 1];
|
1749
|
+
if (!$(footer).closest('section, article')[0]) {
|
1750
|
+
addRole(footer, 'contentinfo');
|
1751
|
+
}
|
1752
|
+
}
|
1753
|
+
});
|
1754
|
+
|
1752
1755
|
})(jQuery, document);
|
1753
1756
|
|
1754
1757
|
(function($, Modernizr, webshims){
|
@@ -1803,7 +1806,9 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
|
|
1803
1806
|
if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
|
1804
1807
|
options.preferFlash = true;
|
1805
1808
|
document.removeEventListener('error', switchOptions, true);
|
1806
|
-
$('audio, video').
|
1809
|
+
$('audio, video').each(function(){
|
1810
|
+
webshims.mediaelement.selectSource(this);
|
1811
|
+
});
|
1807
1812
|
webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
|
1808
1813
|
} else if(!hasSwf){
|
1809
1814
|
document.removeEventListener('error', switchOptions, true);
|
@@ -2207,7 +2212,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2207
2212
|
data = data || webshims.data(elem, 'mediaelement');
|
2208
2213
|
stepSources(elem, data, options.preferFlash || undefined, _srces);
|
2209
2214
|
};
|
2210
|
-
|
2215
|
+
mediaelement.selectSource = selectSource;
|
2211
2216
|
|
2212
2217
|
$(document).on('ended', function(e){
|
2213
2218
|
var data = webshims.data(e.target, 'mediaelement');
|
@@ -2273,52 +2278,57 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2273
2278
|
var media = $('video, audio', context)
|
2274
2279
|
.add(insertedElement.filter('video, audio'))
|
2275
2280
|
.each(function(){
|
2276
|
-
|
2281
|
+
var data = webshims.data(this, 'mediaelement');
|
2282
|
+
|
2283
|
+
if(hasNative && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay])') && (!data || data.isActive == 'html5')){
|
2284
|
+
//IE controls not visible bug
|
2277
2285
|
$(this).prop('preload', 'metadata').mediaLoad();
|
2278
2286
|
} else {
|
2279
|
-
selectSource(this);
|
2287
|
+
selectSource(this, data);
|
2280
2288
|
}
|
2281
2289
|
|
2282
|
-
|
2283
|
-
|
2284
2290
|
if(hasNative){
|
2285
|
-
var bufferTimer;
|
2286
|
-
var lastBuffered;
|
2287
|
-
var elem = this;
|
2288
|
-
var getBufferedString = function(){
|
2289
|
-
var buffered = $.prop(elem, 'buffered');
|
2290
|
-
if(!buffered){return;}
|
2291
|
-
var bufferString = "";
|
2292
|
-
for(var i = 0, len = buffered.length; i < len;i++){
|
2293
|
-
bufferString += buffered.end(i);
|
2294
|
-
}
|
2295
|
-
return bufferString;
|
2296
|
-
};
|
2297
|
-
var testBuffer = function(){
|
2298
|
-
var buffered = getBufferedString();
|
2299
|
-
if(buffered != lastBuffered){
|
2300
|
-
lastBuffered = buffered;
|
2301
|
-
$(elem).triggerHandler('progress');
|
2302
|
-
}
|
2303
|
-
};
|
2304
2291
|
|
2305
|
-
|
2306
|
-
|
2307
|
-
|
2308
|
-
|
2309
|
-
|
2310
|
-
|
2311
|
-
|
2312
|
-
|
2313
|
-
|
2314
|
-
|
2315
|
-
|
2316
|
-
lastBuffered = false;
|
2317
|
-
}
|
2318
|
-
clearTimeout(bufferTimer);
|
2292
|
+
//FF progress bug
|
2293
|
+
(function(){
|
2294
|
+
var bufferTimer;
|
2295
|
+
var lastBuffered;
|
2296
|
+
var elem = this;
|
2297
|
+
var getBufferedString = function(){
|
2298
|
+
var buffered = $.prop(elem, 'buffered');
|
2299
|
+
if(!buffered){return;}
|
2300
|
+
var bufferString = "";
|
2301
|
+
for(var i = 0, len = buffered.length; i < len;i++){
|
2302
|
+
bufferString += buffered.end(i);
|
2319
2303
|
}
|
2320
|
-
|
2321
|
-
|
2304
|
+
return bufferString;
|
2305
|
+
};
|
2306
|
+
var testBuffer = function(){
|
2307
|
+
var buffered = getBufferedString();
|
2308
|
+
if(buffered != lastBuffered){
|
2309
|
+
lastBuffered = buffered;
|
2310
|
+
$(elem).triggerHandler('progress');
|
2311
|
+
}
|
2312
|
+
};
|
2313
|
+
|
2314
|
+
$(this)
|
2315
|
+
.on({
|
2316
|
+
'play loadstart progress': function(e){
|
2317
|
+
if(e.type == 'progress'){
|
2318
|
+
lastBuffered = getBufferedString();
|
2319
|
+
}
|
2320
|
+
clearTimeout(bufferTimer);
|
2321
|
+
bufferTimer = setTimeout(testBuffer, 999);
|
2322
|
+
},
|
2323
|
+
'emptied stalled mediaerror abort suspend': function(e){
|
2324
|
+
if(e.type == 'emptied'){
|
2325
|
+
lastBuffered = false;
|
2326
|
+
}
|
2327
|
+
clearTimeout(bufferTimer);
|
2328
|
+
}
|
2329
|
+
})
|
2330
|
+
;
|
2331
|
+
})();
|
2322
2332
|
}
|
2323
2333
|
|
2324
2334
|
})
|
@@ -2805,19 +2815,29 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
2805
2815
|
var hidevents = hideEvtArray.map(function(evt){
|
2806
2816
|
return evt +'.webshimspolyfill';
|
2807
2817
|
}).join(' ');
|
2808
|
-
|
2818
|
+
var opposite = {
|
2819
|
+
'html5': 'third',
|
2820
|
+
'third': 'html5'
|
2821
|
+
};
|
2809
2822
|
var hidePlayerEvents = function(event){
|
2810
2823
|
var data = webshims.data(event.target, 'mediaelement');
|
2811
2824
|
if(!data){return;}
|
2812
2825
|
var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
|
2813
2826
|
if( isNativeHTML5 == (data.activating == 'third') ){
|
2814
2827
|
event.stopImmediatePropagation();
|
2815
|
-
if(stopEvents[event.type]
|
2816
|
-
|
2828
|
+
if(stopEvents[event.type]){
|
2829
|
+
if(data.isActive != data.activating){
|
2830
|
+
$(event.target).pause();
|
2831
|
+
} else {
|
2832
|
+
data.isActive = opposite[data.isActive];
|
2833
|
+
$(event.target).pause();
|
2834
|
+
data.isActive = opposite[data.isActive];
|
2835
|
+
}
|
2817
2836
|
}
|
2818
2837
|
}
|
2819
2838
|
};
|
2820
2839
|
|
2840
|
+
|
2821
2841
|
addMediaToStopEvents = function(elem){
|
2822
2842
|
$(elem)
|
2823
2843
|
.off(hidevents)
|
@@ -2949,6 +2969,10 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
2949
2969
|
overflow: 'hidden'
|
2950
2970
|
})
|
2951
2971
|
;
|
2972
|
+
var setDimensions = function(){
|
2973
|
+
setElementDimension(data, $.prop(elem, 'controls'));
|
2974
|
+
};
|
2975
|
+
|
2952
2976
|
data = webshims.data(elem, 'mediaelement', webshims.objectCreate(playerStateObj, {
|
2953
2977
|
actionQueue: {
|
2954
2978
|
value: []
|
@@ -3021,9 +3045,9 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
3021
3045
|
|
3022
3046
|
options.changeSWF(vars, elem, canPlaySrc, data, 'embed');
|
3023
3047
|
|
3024
|
-
|
3025
|
-
|
3026
|
-
|
3048
|
+
|
3049
|
+
$(document).on('updateshadowdom', setDimensions);
|
3050
|
+
$(elem).on('updatemediaelementdimensions', setDimensions);
|
3027
3051
|
|
3028
3052
|
|
3029
3053
|
swfobject.embedSWF(playerSwfPath, elemId, "100%", "100%", "9.0.0", false, vars, params, attrs, function(swfData){
|
@@ -3226,9 +3250,8 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
3226
3250
|
mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
|
3227
3251
|
});
|
3228
3252
|
|
3229
|
-
if(hasFlash){
|
3253
|
+
if(hasFlash && $.cleanData){
|
3230
3254
|
var oldClean = $.cleanData;
|
3231
|
-
var gcBrowser = $.browser.msie && webshims.browserVersion < 9;
|
3232
3255
|
var flashNames = {
|
3233
3256
|
object: 1,
|
3234
3257
|
OBJECT: 1
|
@@ -3245,15 +3268,13 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
|
|
3245
3268
|
elems[i][SENDEVENT]('play', false);
|
3246
3269
|
} catch(er){}
|
3247
3270
|
}
|
3248
|
-
|
3249
|
-
|
3250
|
-
|
3251
|
-
|
3252
|
-
elems[i][prop] = null;
|
3253
|
-
}
|
3271
|
+
try {
|
3272
|
+
for (prop in elems[i]) {
|
3273
|
+
if (typeof elems[i][prop] == "function") {
|
3274
|
+
elems[i][prop] = null;
|
3254
3275
|
}
|
3255
|
-
}
|
3256
|
-
}
|
3276
|
+
}
|
3277
|
+
} catch(er){}
|
3257
3278
|
}
|
3258
3279
|
}
|
3259
3280
|
|
@@ -3313,6 +3334,7 @@ jQuery.webshims.register('track', function($, webshims, window, document, undefi
|
|
3313
3334
|
"use strict";
|
3314
3335
|
var mediaelement = webshims.mediaelement;
|
3315
3336
|
var id = new Date().getTime();
|
3337
|
+
var ADDBACK = $.fn.addBack ? 'addBack' : 'andSelf';
|
3316
3338
|
//descriptions are not really shown, but they are inserted into the dom
|
3317
3339
|
var showTracks = {subtitles: 1, captions: 1, descriptions: 1};
|
3318
3340
|
var notImplemented = function(){
|
@@ -3700,7 +3722,7 @@ jQuery.webshims.register('track', function($, webshims, window, document, undefi
|
|
3700
3722
|
}
|
3701
3723
|
|
3702
3724
|
trackData = webshims.data(track, 'trackData', {track: obj});
|
3703
|
-
mediaelement.loadTextTrack(mediaelem, track, trackData, ($.prop(track, 'default') && $(track).siblings('track[default]')
|
3725
|
+
mediaelement.loadTextTrack(mediaelem, track, trackData, ($.prop(track, 'default') && $(track).siblings('track[default]')[ADDBACK]()[0] == track));
|
3704
3726
|
} else {
|
3705
3727
|
if(supportTrackMod){
|
3706
3728
|
copyProps.forEach(function(copyProp){
|
@@ -1,6 +1,7 @@
|
|
1
1
|
//additional tests for partial implementation of forms features
|
2
2
|
(function($){
|
3
3
|
"use strict";
|
4
|
+
var isWebkit = /webkit/i.test(navigator.userAgent);
|
4
5
|
var Modernizr = window.Modernizr;
|
5
6
|
var webshims = $.webshims;
|
6
7
|
var bugs = webshims.bugs;
|
@@ -43,80 +44,80 @@
|
|
43
44
|
|
44
45
|
if(!Modernizr.formvalidation || bugs.bustedValidity){
|
45
46
|
testRequiredFind();
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
webshims.capturingEvents(['input']);
|
51
|
-
webshims.capturingEvents(['invalid'], true);
|
52
|
-
|
53
|
-
if(window.opera || window.testGoodWithFix){
|
54
|
-
|
55
|
-
form.appendTo('head');
|
56
|
-
|
57
|
-
testRequiredFind();
|
58
|
-
bugs.validationMessage = !(inputElem.prop('validationMessage'));
|
59
|
-
|
60
|
-
webshims.reTest(['form-native-extend', 'form-message']);
|
47
|
+
} else {
|
48
|
+
//create delegatable events
|
49
|
+
webshims.capturingEvents(['input']);
|
50
|
+
webshims.capturingEvents(['invalid'], true);
|
61
51
|
|
62
|
-
|
52
|
+
if(window.opera || window.testGoodWithFix){
|
63
53
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
54
|
+
form.appendTo('head');
|
55
|
+
|
56
|
+
testRequiredFind();
|
57
|
+
bugs.validationMessage = !(inputElem.prop('validationMessage'));
|
58
|
+
|
59
|
+
webshims.reTest(['form-native-extend', 'form-message']);
|
60
|
+
|
61
|
+
form.remove();
|
72
62
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
63
|
+
$(function(){
|
64
|
+
onDomextend(function(){
|
65
|
+
|
66
|
+
//Opera shows native validation bubbles in case of input.checkValidity()
|
67
|
+
// Opera 11.6/12 hasn't fixed this issue right, it's buggy
|
68
|
+
var preventDefault = function(e){
|
69
|
+
e.preventDefault();
|
70
|
+
};
|
71
|
+
|
72
|
+
['form', 'input', 'textarea', 'select'].forEach(function(name){
|
73
|
+
var desc = webshims.defineNodeNameProperty(name, 'checkValidity', {
|
74
|
+
prop: {
|
75
|
+
value: function(){
|
76
|
+
if (!webshims.fromSubmit) {
|
77
|
+
$(this).on('invalid.checkvalidity', preventDefault);
|
78
|
+
}
|
79
|
+
|
80
|
+
webshims.fromCheckValidity = true;
|
81
|
+
var ret = desc.prop._supvalue.apply(this, arguments);
|
82
|
+
if (!webshims.fromSubmit) {
|
83
|
+
$(this).unbind('invalid.checkvalidity', preventDefault);
|
84
|
+
}
|
85
|
+
webshims.fromCheckValidity = false;
|
86
|
+
return ret;
|
85
87
|
}
|
86
|
-
webshims.fromCheckValidity = false;
|
87
|
-
return ret;
|
88
88
|
}
|
89
|
-
}
|
89
|
+
});
|
90
90
|
});
|
91
|
+
|
91
92
|
});
|
92
|
-
|
93
93
|
});
|
94
|
-
}
|
94
|
+
}
|
95
|
+
|
96
|
+
if(isWebkit && !webshims.bugs.bustedValidity){
|
97
|
+
(function(){
|
98
|
+
var elems = /^(?:textarea|input)$/i;
|
99
|
+
var form = false;
|
100
|
+
|
101
|
+
document.addEventListener('contextmenu', function(e){
|
102
|
+
if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
|
103
|
+
setTimeout(function(){
|
104
|
+
form = false;
|
105
|
+
}, 1);
|
106
|
+
}
|
107
|
+
}, false);
|
108
|
+
|
109
|
+
$(window).on('invalid', function(e){
|
110
|
+
if(e.originalEvent && form && form == e.target.form){
|
111
|
+
e.wrongWebkitInvalid = true;
|
112
|
+
e.stopImmediatePropagation();
|
113
|
+
}
|
114
|
+
});
|
115
|
+
|
116
|
+
})();
|
117
|
+
}
|
95
118
|
}
|
96
119
|
|
97
|
-
|
98
|
-
(function(){
|
99
|
-
var elems = /^(?:textarea|input)$/i;
|
100
|
-
var form = false;
|
101
|
-
|
102
|
-
document.addEventListener('contextmenu', function(e){
|
103
|
-
if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
|
104
|
-
setTimeout(function(){
|
105
|
-
form = false;
|
106
|
-
}, 1);
|
107
|
-
}
|
108
|
-
}, false);
|
109
|
-
|
110
|
-
$(window).on('invalid', function(e){
|
111
|
-
if(e.originalEvent && form && form == e.target.form){
|
112
|
-
e.wrongWebkitInvalid = true;
|
113
|
-
e.stopImmediatePropagation();
|
114
|
-
}
|
115
|
-
});
|
116
|
-
|
117
|
-
})();
|
118
|
-
}
|
119
|
-
})(jQuery);
|
120
|
+
|
120
121
|
|
121
122
|
jQuery.webshims.register('form-core', function($, webshims, window, document, undefined, options){
|
122
123
|
"use strict";
|
@@ -231,7 +232,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
231
232
|
return false;
|
232
233
|
};
|
233
234
|
|
234
|
-
if(Modernizr.formvalidation &&
|
235
|
+
if(Modernizr.formvalidation && isWebkit && !webshims.bugs.bustedValidity){
|
235
236
|
(function(){
|
236
237
|
var retriggerRadioValidity = function(){
|
237
238
|
var validity;
|
@@ -410,7 +411,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
410
411
|
|
411
412
|
|
412
413
|
var setRoot = function(){
|
413
|
-
webshims.scrollRoot = (
|
414
|
+
webshims.scrollRoot = (isWebkit || document.compatMode == 'BackCompat') ?
|
414
415
|
$(document.body) :
|
415
416
|
$(document.documentElement)
|
416
417
|
;
|
@@ -432,7 +433,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
432
433
|
|
433
434
|
/* some extra validation UI */
|
434
435
|
webshims.validityAlert = (function(){
|
435
|
-
var alertElem =
|
436
|
+
var alertElem = 'span';
|
436
437
|
var errorBubble;
|
437
438
|
var hideTimer = false;
|
438
439
|
var focusTimer = false;
|
@@ -547,7 +548,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
547
548
|
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'});
|
548
549
|
webshims.ready('DOM', function(){
|
549
550
|
errorBubble.appendTo('body');
|
550
|
-
if($.fn.bgIframe
|
551
|
+
if($.fn.bgIframe){
|
551
552
|
errorBubble.bgIframe();
|
552
553
|
}
|
553
554
|
});
|
@@ -627,8 +628,9 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
|
|
627
628
|
});
|
628
629
|
});
|
629
630
|
}
|
630
|
-
|
631
631
|
});
|
632
|
+
|
633
|
+
})(jQuery);
|
632
634
|
if(!Modernizr.formvalidation || jQuery.webshims.bugs.bustedValidity){
|
633
635
|
jQuery.webshims.register('form-shim-extend', function($, webshims, window, document){
|
634
636
|
"use strict";
|
@@ -982,7 +984,7 @@ webshims.defineNodeNamesBooleanProperty(['input', 'textarea', 'select'], 'requir
|
|
982
984
|
set: function(value){
|
983
985
|
$(this).getShadowFocusElement().attr('aria-required', !!(value)+'');
|
984
986
|
},
|
985
|
-
initAttr: (
|
987
|
+
initAttr: (Modernizr.localstorage)//only if we have aria-support
|
986
988
|
});
|
987
989
|
|
988
990
|
webshims.reflectProperties(['input'], ['pattern']);
|
@@ -1297,14 +1299,13 @@ webshims.defineNodeNameProperty('form', 'noValidate', {
|
|
1297
1299
|
}
|
1298
1300
|
});
|
1299
1301
|
|
1300
|
-
if(
|
1302
|
+
if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
|
1301
1303
|
(function(){
|
1302
1304
|
|
1303
1305
|
var noInputTriggerEvts = {updateInput: 1, input: 1},
|
1304
1306
|
fixInputTypes = {
|
1305
1307
|
date: 1,
|
1306
|
-
time: 1
|
1307
|
-
"datetime-local": 1
|
1308
|
+
time: 1
|
1308
1309
|
},
|
1309
1310
|
noFocusEvents = {
|
1310
1311
|
focusout: 1,
|
@@ -1728,8 +1729,7 @@ try {
|
|
1728
1729
|
|
1729
1730
|
(function(){
|
1730
1731
|
Modernizr.textareaPlaceholder = !!('placeholder' in $('<textarea />')[0]);
|
1731
|
-
|
1732
|
-
if(Modernizr.input.placeholder && Modernizr.textareaPlaceholder && !bustedTextarea){return;}
|
1732
|
+
if(Modernizr.input.placeholder && Modernizr.textareaPlaceholder){return;}
|
1733
1733
|
|
1734
1734
|
var isOver = (webshims.cfg.forms.placeholderType == 'over');
|
1735
1735
|
var isResponsive = (webshims.cfg.forms.responsivePlaceholder);
|
@@ -1931,8 +1931,8 @@ try {
|
|
1931
1931
|
data.text.css('padding'+ side, size);
|
1932
1932
|
});
|
1933
1933
|
|
1934
|
-
$(
|
1935
|
-
.
|
1934
|
+
$(document)
|
1935
|
+
.onTrigger('updateshadowdom', function(){
|
1936
1936
|
var height, width;
|
1937
1937
|
if((width = elem.offsetWidth) || (height = elem.offsetHeight)){
|
1938
1938
|
data.text
|
@@ -1944,7 +1944,6 @@ try {
|
|
1944
1944
|
;
|
1945
1945
|
}
|
1946
1946
|
})
|
1947
|
-
.triggerHandler('updateshadowdom')
|
1948
1947
|
;
|
1949
1948
|
|
1950
1949
|
} else {
|
@@ -2000,17 +1999,11 @@ try {
|
|
2000
1999
|
attr: {
|
2001
2000
|
set: function(val){
|
2002
2001
|
var elem = this;
|
2003
|
-
|
2004
|
-
webshims.data(elem, 'textareaPlaceholder', val);
|
2005
|
-
elem.placeholder = '';
|
2006
|
-
} else {
|
2007
|
-
webshims.contentAttr(elem, 'placeholder', val);
|
2008
|
-
}
|
2002
|
+
webshims.contentAttr(elem, 'placeholder', val);
|
2009
2003
|
pHolder.update(elem, val);
|
2010
2004
|
},
|
2011
2005
|
get: function(){
|
2012
|
-
|
2013
|
-
return ret || webshims.contentAttr(this, 'placeholder');
|
2006
|
+
return webshims.contentAttr(this, 'placeholder');
|
2014
2007
|
}
|
2015
2008
|
},
|
2016
2009
|
reflect: true,
|
@@ -2026,13 +2019,9 @@ try {
|
|
2026
2019
|
placeholderValueDesc[propType] = {
|
2027
2020
|
set: function(val){
|
2028
2021
|
var elem = this;
|
2029
|
-
var placeholder;
|
2030
|
-
|
2031
|
-
|
2032
|
-
}
|
2033
|
-
if(!placeholder){
|
2034
|
-
placeholder = webshims.contentAttr(elem, 'placeholder');
|
2035
|
-
}
|
2022
|
+
var placeholder = webshims.contentAttr(elem, 'placeholder');
|
2023
|
+
|
2024
|
+
|
2036
2025
|
$.removeData(elem, 'cachedValidity');
|
2037
2026
|
var ret = desc[propType]._supset.call(elem, val);
|
2038
2027
|
if(placeholder && 'value' in elem){
|
@@ -2593,7 +2582,6 @@ jQuery.webshims.register('form-datalist', function($, webshims, window, document
|
|
2593
2582
|
range: 1,
|
2594
2583
|
date: 1
|
2595
2584
|
};
|
2596
|
-
var lteie6 = ($.browser.msie && parseInt($.browser.version, 10) < 7);
|
2597
2585
|
var globStoredOptions = {};
|
2598
2586
|
var getStoredOptions = function(name){
|
2599
2587
|
if(!name){return [];}
|
@@ -2877,7 +2865,7 @@ jQuery.webshims.register('form-datalist', function($, webshims, window, document
|
|
2877
2865
|
this.arrayOptions = allOptions;
|
2878
2866
|
this.shadowList.html('<div class="datalist-outer-box"><div class="datalist-box"><ul role="list">'+ list.join("\n") +'</ul></div></div>');
|
2879
2867
|
|
2880
|
-
if($.fn.bgIframe
|
2868
|
+
if($.fn.bgIframe){
|
2881
2869
|
this.shadowList.bgIframe();
|
2882
2870
|
}
|
2883
2871
|
|