webshims-rails 1.14.3 → 1.14.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +4 -0
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +141 -139
  5. data/vendor/assets/javascripts/webshims/shims/color-picker.js +1 -3
  6. data/vendor/assets/javascripts/webshims/shims/combos/1.js +22 -33
  7. data/vendor/assets/javascripts/webshims/shims/combos/10.js +76 -73
  8. data/vendor/assets/javascripts/webshims/shims/combos/11.js +73 -61
  9. data/vendor/assets/javascripts/webshims/shims/combos/12.js +37 -41
  10. data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -40
  11. data/vendor/assets/javascripts/webshims/shims/combos/14.js +7 -7
  12. data/vendor/assets/javascripts/webshims/shims/combos/15.js +23 -32
  13. data/vendor/assets/javascripts/webshims/shims/combos/16.js +36 -57
  14. data/vendor/assets/javascripts/webshims/shims/combos/17.js +73 -61
  15. data/vendor/assets/javascripts/webshims/shims/combos/18.js +611 -4604
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +27 -47
  17. data/vendor/assets/javascripts/webshims/shims/combos/21.js +61 -31
  18. data/vendor/assets/javascripts/webshims/shims/combos/22.js +24 -16
  19. data/vendor/assets/javascripts/webshims/shims/combos/23.js +13 -25
  20. data/vendor/assets/javascripts/webshims/shims/combos/25.js +40 -27
  21. data/vendor/assets/javascripts/webshims/shims/combos/27.js +167 -166
  22. data/vendor/assets/javascripts/webshims/shims/combos/28.js +11 -12
  23. data/vendor/assets/javascripts/webshims/shims/combos/29.js +5 -5
  24. data/vendor/assets/javascripts/webshims/shims/combos/3.js +14 -22
  25. data/vendor/assets/javascripts/webshims/shims/combos/30.js +16 -24
  26. data/vendor/assets/javascripts/webshims/shims/combos/31.js +14 -22
  27. data/vendor/assets/javascripts/webshims/shims/combos/33.js +2 -2
  28. data/vendor/assets/javascripts/webshims/shims/combos/34.js +27 -28
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +5 -14
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +78 -66
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +80 -68
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +29 -49
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +27 -47
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +78 -75
  35. data/vendor/assets/javascripts/webshims/shims/combos/97.js +42 -29
  36. data/vendor/assets/javascripts/webshims/shims/combos/98.js +116 -40
  37. data/vendor/assets/javascripts/webshims/shims/combos/99.js +112 -38
  38. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +3 -12
  39. data/vendor/assets/javascripts/webshims/shims/es5.js +4 -4
  40. data/vendor/assets/javascripts/webshims/shims/es6.js +1887 -0
  41. data/vendor/assets/javascripts/webshims/shims/form-core.js +9 -8
  42. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +2 -2
  43. data/vendor/assets/javascripts/webshims/shims/form-inputmode.js +52 -0
  44. data/vendor/assets/javascripts/webshims/shims/form-message.js +2 -2
  45. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +4 -5
  46. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +73 -61
  47. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +7 -8
  48. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +164 -163
  49. data/vendor/assets/javascripts/webshims/shims/form-validation.js +121 -144
  50. data/vendor/assets/javascripts/webshims/shims/jme/_icons.scss +3 -0
  51. data/vendor/assets/javascripts/webshims/shims/jme/alternate-media.js +184 -0
  52. data/vendor/assets/javascripts/webshims/shims/jme/{b.js → base.js} +38 -27
  53. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +129 -39
  54. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +145 -44
  55. data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
  56. data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +0 -0
  57. data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
  58. data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
  59. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +448 -90
  60. data/vendor/assets/javascripts/webshims/shims/jme/{c.js → mediacontrols.js} +74 -11
  61. data/vendor/assets/javascripts/webshims/shims/jme/{p.js → playlist.js} +4 -2
  62. data/vendor/assets/javascripts/webshims/shims/matchMedia.js +122 -0
  63. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +12 -24
  64. data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +1 -1
  65. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +37 -15
  66. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +3 -3
  67. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +4 -5
  68. data/vendor/assets/javascripts/webshims/shims/picture.js +13 -54
  69. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +13 -20
  70. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +24 -18
  71. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +32 -10
  72. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +43 -47
  73. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +30 -18
  74. data/vendor/assets/javascripts/webshims/shims/styles/transparent.png +0 -0
  75. data/vendor/assets/javascripts/webshims/shims/styles/widget.eot +0 -0
  76. data/vendor/assets/javascripts/webshims/shims/styles/widget.svg +0 -0
  77. data/vendor/assets/javascripts/webshims/shims/styles/widget.ttf +0 -0
  78. data/vendor/assets/javascripts/webshims/shims/styles/widget.woff +0 -0
  79. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  80. data/vendor/assets/javascripts/webshims/shims/swfmini.js +1 -1
  81. data/vendor/assets/javascripts/webshims/shims/track-ui.js +4 -5
  82. data/vendor/assets/javascripts/webshims/shims/track.js +24 -16
  83. metadata +9 -8
  84. data/vendor/assets/javascripts/webshims/shims/combos/19.js +0 -4745
  85. data/vendor/assets/javascripts/webshims/shims/combos/20.js +0 -4522
  86. data/vendor/assets/javascripts/webshims/shims/combos/32.js +0 -2443
  87. data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +0 -1
@@ -62,7 +62,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
62
62
  var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
63
63
  var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
64
64
  var has = Object.prototype.hasOwnProperty;
65
- webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
65
+ webshims.assumeARIA = true;
66
66
 
67
67
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
68
68
  webshims.error("IE browser modes are busted in IE10+. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -81,15 +81,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
81
81
  }
82
82
  window.jQuery = webshims.$;
83
83
  }
84
- if(webshims.M != Modernizr){
85
- webshims.error("Modernizr was included more than once. Make sure to include it only once! Webshims and other scripts might not work properly.");
86
- for(var i in Modernizr){
87
- if(!(i in webshims.M)){
88
- webshims.M[i] = Modernizr[i];
89
- }
90
- }
91
- Modernizr = webshims.M;
92
- }
93
84
  };
94
85
  switch$();
95
86
  setTimeout(switch$, 90);
@@ -418,7 +409,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
418
409
  var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
419
410
 
420
411
  //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
421
- var isExtendNativeSave = Modernizr.advancedObjectProperties && Modernizr.objectAccessor;
412
+ var isExtendNativeSave = webshims.support.advancedObjectProperties && webshims.support.objectAccessor;
422
413
  return function(nodeName, prop, desc){
423
414
  var elem , elemProto;
424
415
  if( isExtendNativeSave && (elem = document.createElement(nodeName)) && (elemProto = webshims.getPrototypeOf(elem)) && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){
@@ -729,7 +720,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
729
720
  });
730
721
  }
731
722
  webshims.ready('WINDOWLOAD', this.test);
732
- $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
723
+ $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel playerdimensionchange', this.handler);
733
724
  $(window).on('resize', this.handler);
734
725
  }
735
726
  }
@@ -1239,13 +1230,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1239
1230
  e._isPolyfilled = true;
1240
1231
  }
1241
1232
  };
1242
-
1243
- if(Modernizr.formvalidation && !webshims.bugs.bustedValidity){
1244
- //create delegatable events
1245
- webshims.capturingEvents(['invalid'], true);
1246
- }
1233
+
1247
1234
 
1248
1235
  var modules = webshims.modules;
1236
+ var support = webshims.support;
1249
1237
  var isValid = function(elem){
1250
1238
  return ($.prop(elem, 'validity') || {valid: 1}).valid;
1251
1239
  };
@@ -1299,7 +1287,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1299
1287
  return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required'));
1300
1288
  },
1301
1289
  "user-error": function(elem){
1302
- return ($.prop(elem, 'willValidate') && $(elem).hasClass('user-error'));
1290
+ return ($.prop(elem, 'willValidate') && $(elem).getShadowElement().hasClass((options.iVal.errorClass || 'user-error')));
1303
1291
  },
1304
1292
  "optional-element": function(elem){
1305
1293
  return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required') === false);
@@ -1311,7 +1299,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1311
1299
  });
1312
1300
 
1313
1301
  // sizzle/jQuery has a bug with :disabled/:enabled selectors
1314
- if(Modernizr.fieldsetdisabled && !$('<fieldset disabled=""><input /><input /></fieldset>').find(':disabled').filter(':disabled').is(':disabled')){
1302
+ if(support.fieldsetdisabled && !$('<fieldset disabled=""><input /><input /></fieldset>').find(':disabled').filter(':disabled').is(':disabled')){
1315
1303
  matches = $.find.matches;
1316
1304
  matchesOverride = {':disabled': 1, ':enabled': 1};
1317
1305
  $.find.matches = function(expr, elements){
@@ -1365,6 +1353,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1365
1353
  addModule('form-validators', $.extend({}, formExtras));
1366
1354
 
1367
1355
 
1356
+ if(support.formvalidation && !webshims.bugs.bustedValidity){
1357
+ //create delegatable events
1358
+ webshims.capturingEvents(['invalid'], true);
1359
+ }
1368
1360
 
1369
1361
  if($.expr.filters){
1370
1362
  extendSels();
@@ -1510,7 +1502,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1510
1502
 
1511
1503
  webshims.ready('WINDOWLOAD', lazyLoad);
1512
1504
 
1513
- if(modules['form-number-date-ui'].loaded && !options.customMessages && (modules['form-number-date-api'].test() || (Modernizr.inputtypes.range && Modernizr.inputtypes.color))){
1505
+ if(modules['form-number-date-ui'].loaded && !options.customMessages && (modules['form-number-date-api'].test() || (support.inputtypes.range && support.inputtypes.color))){
1514
1506
  webshims.isReady('form-number-date-ui', true);
1515
1507
  }
1516
1508
 
@@ -1789,7 +1781,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1789
1781
  };
1790
1782
 
1791
1783
 
1792
- if(!Modernizr.formvalidation || webshims.bugs.bustedValidity){
1784
+ if(!webshims.support.formvalidation || webshims.bugs.bustedValidity){
1793
1785
  implementProperties.push('validationMessage');
1794
1786
  }
1795
1787
 
@@ -1825,7 +1817,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1825
1817
  if(message){return message;}
1826
1818
 
1827
1819
  if(validity.customError && elem.nodeName){
1828
- message = (Modernizr.formvalidation && !webshims.bugs.bustedValidity && desc.prop._supget) ? desc.prop._supget.call(elem) : webshims.data(elem, 'customvalidationMessage');
1820
+ message = (webshims.support.formvalidation && !webshims.bugs.bustedValidity && desc.prop._supget) ? desc.prop._supget.call(elem) : webshims.data(elem, 'customvalidationMessage');
1829
1821
  if(message){return message;}
1830
1822
  }
1831
1823
  $.each(validity, function(name, prop){
@@ -1904,8 +1896,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1904
1896
  */
1905
1897
 
1906
1898
  (function(){
1907
- var formsCFG = $.webshims.cfg.forms;
1908
- var listSupport = Modernizr.input.list;
1899
+ var formsCFG = webshims.cfg.forms;
1900
+ var listSupport = webshims.support.datalist;
1909
1901
  if(listSupport && !formsCFG.customDatalist){return;}
1910
1902
 
1911
1903
  var initializeDatalist = function(){
@@ -62,7 +62,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
62
62
  var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
63
63
  var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
64
64
  var has = Object.prototype.hasOwnProperty;
65
- webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
65
+ webshims.assumeARIA = true;
66
66
 
67
67
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
68
68
  webshims.error("IE browser modes are busted in IE10+. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -81,15 +81,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
81
81
  }
82
82
  window.jQuery = webshims.$;
83
83
  }
84
- if(webshims.M != Modernizr){
85
- webshims.error("Modernizr was included more than once. Make sure to include it only once! Webshims and other scripts might not work properly.");
86
- for(var i in Modernizr){
87
- if(!(i in webshims.M)){
88
- webshims.M[i] = Modernizr[i];
89
- }
90
- }
91
- Modernizr = webshims.M;
92
- }
93
84
  };
94
85
  switch$();
95
86
  setTimeout(switch$, 90);
@@ -418,7 +409,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
418
409
  var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
419
410
 
420
411
  //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
421
- var isExtendNativeSave = Modernizr.advancedObjectProperties && Modernizr.objectAccessor;
412
+ var isExtendNativeSave = webshims.support.advancedObjectProperties && webshims.support.objectAccessor;
422
413
  return function(nodeName, prop, desc){
423
414
  var elem , elemProto;
424
415
  if( isExtendNativeSave && (elem = document.createElement(nodeName)) && (elemProto = webshims.getPrototypeOf(elem)) && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){
@@ -729,7 +720,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
729
720
  });
730
721
  }
731
722
  webshims.ready('WINDOWLOAD', this.test);
732
- $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
723
+ $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel playerdimensionchange', this.handler);
733
724
  $(window).on('resize', this.handler);
734
725
  }
735
726
  }
@@ -1239,13 +1230,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1239
1230
  e._isPolyfilled = true;
1240
1231
  }
1241
1232
  };
1242
-
1243
- if(Modernizr.formvalidation && !webshims.bugs.bustedValidity){
1244
- //create delegatable events
1245
- webshims.capturingEvents(['invalid'], true);
1246
- }
1233
+
1247
1234
 
1248
1235
  var modules = webshims.modules;
1236
+ var support = webshims.support;
1249
1237
  var isValid = function(elem){
1250
1238
  return ($.prop(elem, 'validity') || {valid: 1}).valid;
1251
1239
  };
@@ -1299,7 +1287,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1299
1287
  return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required'));
1300
1288
  },
1301
1289
  "user-error": function(elem){
1302
- return ($.prop(elem, 'willValidate') && $(elem).hasClass('user-error'));
1290
+ return ($.prop(elem, 'willValidate') && $(elem).getShadowElement().hasClass((options.iVal.errorClass || 'user-error')));
1303
1291
  },
1304
1292
  "optional-element": function(elem){
1305
1293
  return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required') === false);
@@ -1311,7 +1299,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1311
1299
  });
1312
1300
 
1313
1301
  // sizzle/jQuery has a bug with :disabled/:enabled selectors
1314
- if(Modernizr.fieldsetdisabled && !$('<fieldset disabled=""><input /><input /></fieldset>').find(':disabled').filter(':disabled').is(':disabled')){
1302
+ if(support.fieldsetdisabled && !$('<fieldset disabled=""><input /><input /></fieldset>').find(':disabled').filter(':disabled').is(':disabled')){
1315
1303
  matches = $.find.matches;
1316
1304
  matchesOverride = {':disabled': 1, ':enabled': 1};
1317
1305
  $.find.matches = function(expr, elements){
@@ -1365,6 +1353,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1365
1353
  addModule('form-validators', $.extend({}, formExtras));
1366
1354
 
1367
1355
 
1356
+ if(support.formvalidation && !webshims.bugs.bustedValidity){
1357
+ //create delegatable events
1358
+ webshims.capturingEvents(['invalid'], true);
1359
+ }
1368
1360
 
1369
1361
  if($.expr.filters){
1370
1362
  extendSels();
@@ -1510,7 +1502,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1510
1502
 
1511
1503
  webshims.ready('WINDOWLOAD', lazyLoad);
1512
1504
 
1513
- if(modules['form-number-date-ui'].loaded && !options.customMessages && (modules['form-number-date-api'].test() || (Modernizr.inputtypes.range && Modernizr.inputtypes.color))){
1505
+ if(modules['form-number-date-ui'].loaded && !options.customMessages && (modules['form-number-date-api'].test() || (support.inputtypes.range && support.inputtypes.color))){
1514
1506
  webshims.isReady('form-number-date-ui', true);
1515
1507
  }
1516
1508
 
@@ -1592,8 +1584,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1592
1584
  */
1593
1585
 
1594
1586
  (function(){
1595
- var formsCFG = $.webshims.cfg.forms;
1596
- var listSupport = Modernizr.input.list;
1587
+ var formsCFG = webshims.cfg.forms;
1588
+ var listSupport = webshims.support.datalist;
1597
1589
  if(listSupport && !formsCFG.customDatalist){return;}
1598
1590
 
1599
1591
  var initializeDatalist = function(){
@@ -673,8 +673,8 @@ webshims.register('form-number-date-api', function($, webshims, window, document
673
673
  */
674
674
 
675
675
  (function(){
676
- var formsCFG = $.webshims.cfg.forms;
677
- var listSupport = Modernizr.input.list;
676
+ var formsCFG = webshims.cfg.forms;
677
+ var listSupport = webshims.support.datalist;
678
678
  if(listSupport && !formsCFG.customDatalist){return;}
679
679
 
680
680
  var initializeDatalist = function(){
@@ -62,7 +62,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
62
62
  var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
63
63
  var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
64
64
  var has = Object.prototype.hasOwnProperty;
65
- webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
65
+ webshims.assumeARIA = true;
66
66
 
67
67
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
68
68
  webshims.error("IE browser modes are busted in IE10+. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -81,15 +81,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
81
81
  }
82
82
  window.jQuery = webshims.$;
83
83
  }
84
- if(webshims.M != Modernizr){
85
- webshims.error("Modernizr was included more than once. Make sure to include it only once! Webshims and other scripts might not work properly.");
86
- for(var i in Modernizr){
87
- if(!(i in webshims.M)){
88
- webshims.M[i] = Modernizr[i];
89
- }
90
- }
91
- Modernizr = webshims.M;
92
- }
93
84
  };
94
85
  switch$();
95
86
  setTimeout(switch$, 90);
@@ -418,7 +409,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
418
409
  var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
419
410
 
420
411
  //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
421
- var isExtendNativeSave = Modernizr.advancedObjectProperties && Modernizr.objectAccessor;
412
+ var isExtendNativeSave = webshims.support.advancedObjectProperties && webshims.support.objectAccessor;
422
413
  return function(nodeName, prop, desc){
423
414
  var elem , elemProto;
424
415
  if( isExtendNativeSave && (elem = document.createElement(nodeName)) && (elemProto = webshims.getPrototypeOf(elem)) && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){
@@ -729,7 +720,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
729
720
  });
730
721
  }
731
722
  webshims.ready('WINDOWLOAD', this.test);
732
- $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
723
+ $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel playerdimensionchange', this.handler);
733
724
  $(window).on('resize', this.handler);
734
725
  }
735
726
  }
@@ -1226,7 +1217,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1226
1217
  //descriptions are not really shown, but they are inserted into the dom
1227
1218
  var showTracks = {subtitles: 1, captions: 1, descriptions: 1};
1228
1219
  var dummyTrack = $('<track />');
1229
- var supportTrackMod = Modernizr.ES5 && Modernizr.objectAccessor;
1220
+ var support = webshims.support;
1221
+ var supportTrackMod = support.ES5 && support.objectAccessor;
1230
1222
  var createEventTarget = function(obj){
1231
1223
  var eventList = {};
1232
1224
  obj.addEventListener = function(name, fn){
@@ -1535,19 +1527,23 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1535
1527
  ttml = $.parseXML(ttml) || [];
1536
1528
  return $(ttml).find('[begin][end]').map(mapTtmlToVtt).get().join('\n\n') || '';
1537
1529
  };
1538
-
1530
+ var loadingTracks = 0;
1531
+
1539
1532
  mediaelement.loadTextTrack = function(mediaelem, track, trackData, _default){
1540
- var loadEvents = 'play playing';
1533
+ var loadEvents = 'play playing loadedmetadata loadstart';
1541
1534
  var obj = trackData.track;
1542
1535
  var load = function(){
1543
1536
  var error, ajax, createAjax;
1544
- var src = obj.mode != 'disabled' && ($.attr(track, 'src') && $.prop(track, 'src'));
1537
+ var isDisabled = obj.mode == 'disabled';
1538
+ var videoState = !!($.prop(mediaelem, 'readyState') > 0 || $.prop(mediaelem, 'networkState') == 2 || !$.prop(mediaelem, 'paused'));
1539
+ var src = (!isDisabled || videoState) && ($.attr(track, 'src') && $.prop(track, 'src'));
1545
1540
 
1546
1541
  if(src){
1547
1542
  $(mediaelem).off(loadEvents, load).off('updatetrackdisplay', load);
1548
1543
 
1549
1544
  if(!trackData.readyState){
1550
1545
  error = function(){
1546
+ loadingTracks--;
1551
1547
  trackData.readyState = 3;
1552
1548
  obj.cues = null;
1553
1549
  obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = null;
@@ -1557,12 +1553,14 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1557
1553
  try {
1558
1554
  obj.cues = mediaelement.createCueList();
1559
1555
  obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = mediaelement.createCueList();
1556
+ loadingTracks++;
1560
1557
  createAjax = function(){
1561
1558
  ajax = $.ajax({
1562
1559
  dataType: 'text',
1563
1560
  url: src,
1564
1561
  success: function(text){
1565
- var contentType = ajax.getResponseHeader('content-type');
1562
+ loadingTracks--;
1563
+ var contentType = ajax.getResponseHeader('content-type') || '';
1566
1564
 
1567
1565
  if(!contentType.indexOf('application/xml')){
1568
1566
  text = ttmlTextToVTT(text);
@@ -1578,13 +1576,16 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1578
1576
  error();
1579
1577
  }
1580
1578
  });
1581
-
1582
1579
  },
1583
1580
  error: error
1584
1581
  });
1585
1582
  };
1586
1583
  if($.ajax && $.ajaxSettings.xhr){
1587
- createAjax();
1584
+ if(isDisabled){
1585
+ setTimeout(createAjax, loadingTracks * 2);
1586
+ } else {
1587
+ createAjax();
1588
+ }
1588
1589
  } else {
1589
1590
  webshims.ready('jajax', createAjax);
1590
1591
  webshims.loader.loadList(['jajax']);
@@ -1603,13 +1604,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1603
1604
  obj.cues = null;
1604
1605
 
1605
1606
  $(mediaelem).on(loadEvents, load);
1607
+
1606
1608
  if(_default){
1607
1609
  obj.mode = showTracks[obj.kind] ? 'showing' : 'hidden';
1608
- webshims.ready('WINDOWLOAD', load);
1610
+ load();
1609
1611
  } else {
1610
- webshims.ready('WINDOWLOAD', function(){
1611
- $(mediaelem).on('updatetrackdisplay', load);
1612
- });
1612
+ $(mediaelem).on('updatetrackdisplay', load);
1613
1613
  }
1614
1614
  };
1615
1615
 
@@ -1881,7 +1881,7 @@ modified for webshims
1881
1881
  return baseData.textTracks;
1882
1882
  };
1883
1883
 
1884
- if(!Modernizr.track){
1884
+ if(!support.track){
1885
1885
  webshims.defineNodeNamesBooleanProperty(['track'], 'default');
1886
1886
  webshims.reflectProperties(['track'], ['srclang', 'label']);
1887
1887
 
@@ -1896,7 +1896,7 @@ modified for webshims
1896
1896
 
1897
1897
  webshims.defineNodeNameProperties('track', {
1898
1898
  kind: {
1899
- attr: Modernizr.track ? {
1899
+ attr: support.track ? {
1900
1900
  set: function(value){
1901
1901
  var trackData = webshims.data(this, 'trackData');
1902
1902
  this.setAttribute('data-kind', value);
@@ -1951,7 +1951,6 @@ modified for webshims
1951
1951
  });
1952
1952
 
1953
1953
  //
1954
-
1955
1954
  webshims.defineNodeNamesProperties(['track'], {
1956
1955
  ERROR: {
1957
1956
  value: 3
@@ -2061,7 +2060,7 @@ modified for webshims
2061
2060
  })
2062
2061
  .on('emptied updatetracklist wsmediareload', thUpdateList)
2063
2062
  .each(function(){
2064
- if(Modernizr.track){
2063
+ if(support.track){
2065
2064
  var shimedTextTracks = $.prop(this, 'textTracks');
2066
2065
  var origTextTracks = this.textTracks;
2067
2066
 
@@ -2086,7 +2085,7 @@ modified for webshims
2086
2085
  });
2087
2086
  });
2088
2087
 
2089
- if(Modernizr.texttrackapi){
2088
+ if(support.texttrackapi){
2090
2089
  $('video, audio').trigger('trackapichange');
2091
2090
  }
2092
2091
  });
@@ -62,7 +62,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
62
62
  var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
63
63
  var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
64
64
  var has = Object.prototype.hasOwnProperty;
65
- webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
65
+ webshims.assumeARIA = true;
66
66
 
67
67
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
68
68
  webshims.error("IE browser modes are busted in IE10+. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -81,15 +81,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
81
81
  }
82
82
  window.jQuery = webshims.$;
83
83
  }
84
- if(webshims.M != Modernizr){
85
- webshims.error("Modernizr was included more than once. Make sure to include it only once! Webshims and other scripts might not work properly.");
86
- for(var i in Modernizr){
87
- if(!(i in webshims.M)){
88
- webshims.M[i] = Modernizr[i];
89
- }
90
- }
91
- Modernizr = webshims.M;
92
- }
93
84
  };
94
85
  switch$();
95
86
  setTimeout(switch$, 90);
@@ -418,7 +409,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
418
409
  var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar'));
419
410
 
420
411
  //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
421
- var isExtendNativeSave = Modernizr.advancedObjectProperties && Modernizr.objectAccessor;
412
+ var isExtendNativeSave = webshims.support.advancedObjectProperties && webshims.support.objectAccessor;
422
413
  return function(nodeName, prop, desc){
423
414
  var elem , elemProto;
424
415
  if( isExtendNativeSave && (elem = document.createElement(nodeName)) && (elemProto = webshims.getPrototypeOf(elem)) && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){
@@ -729,7 +720,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
729
720
  });
730
721
  }
731
722
  webshims.ready('WINDOWLOAD', this.test);
732
- $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
723
+ $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel playerdimensionchange', this.handler);
733
724
  $(window).on('resize', this.handler);
734
725
  }
735
726
  }
@@ -1474,7 +1465,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1474
1465
  };
1475
1466
 
1476
1467
 
1477
- if(!Modernizr.formvalidation || webshims.bugs.bustedValidity){
1468
+ if(!webshims.support.formvalidation || webshims.bugs.bustedValidity){
1478
1469
  implementProperties.push('validationMessage');
1479
1470
  }
1480
1471
 
@@ -1510,7 +1501,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1510
1501
  if(message){return message;}
1511
1502
 
1512
1503
  if(validity.customError && elem.nodeName){
1513
- message = (Modernizr.formvalidation && !webshims.bugs.bustedValidity && desc.prop._supget) ? desc.prop._supget.call(elem) : webshims.data(elem, 'customvalidationMessage');
1504
+ message = (webshims.support.formvalidation && !webshims.bugs.bustedValidity && desc.prop._supget) ? desc.prop._supget.call(elem) : webshims.data(elem, 'customvalidationMessage');
1514
1505
  if(message){return message;}
1515
1506
  }
1516
1507
  $.each(validity, function(name, prop){