webshims-rails 1.14.6 → 1.15.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/polyfiller.js +145 -139
  4. data/vendor/assets/javascripts/webshims/shims/canvas-blob.js +97 -0
  5. data/vendor/assets/javascripts/webshims/shims/combos/1.js +13 -15
  6. data/vendor/assets/javascripts/webshims/shims/combos/10.js +29 -28
  7. data/vendor/assets/javascripts/webshims/shims/combos/11.js +2 -1
  8. data/vendor/assets/javascripts/webshims/shims/combos/12.js +22 -10
  9. data/vendor/assets/javascripts/webshims/shims/combos/13.js +22 -10
  10. data/vendor/assets/javascripts/webshims/shims/combos/15.js +28 -43
  11. data/vendor/assets/javascripts/webshims/shims/combos/16.js +41 -44
  12. data/vendor/assets/javascripts/webshims/shims/combos/17.js +2 -1
  13. data/vendor/assets/javascripts/webshims/shims/combos/2.js +40 -42
  14. data/vendor/assets/javascripts/webshims/shims/combos/21.js +98 -71
  15. data/vendor/assets/javascripts/webshims/shims/combos/22.js +9 -9
  16. data/vendor/assets/javascripts/webshims/shims/combos/23.js +13 -1
  17. data/vendor/assets/javascripts/webshims/shims/combos/25.js +141 -51
  18. data/vendor/assets/javascripts/webshims/shims/combos/27.js +66 -12
  19. data/vendor/assets/javascripts/webshims/shims/combos/28.js +1 -2
  20. data/vendor/assets/javascripts/webshims/shims/combos/3.js +27 -41
  21. data/vendor/assets/javascripts/webshims/shims/combos/30.js +27 -41
  22. data/vendor/assets/javascripts/webshims/shims/combos/31.js +27 -41
  23. data/vendor/assets/javascripts/webshims/shims/combos/34.js +36 -36
  24. data/vendor/assets/javascripts/webshims/shims/combos/4.js +27 -27
  25. data/vendor/assets/javascripts/webshims/shims/combos/5.js +2 -1
  26. data/vendor/assets/javascripts/webshims/shims/combos/6.js +2 -1
  27. data/vendor/assets/javascripts/webshims/shims/combos/7.js +40 -42
  28. data/vendor/assets/javascripts/webshims/shims/combos/8.js +40 -42
  29. data/vendor/assets/javascripts/webshims/shims/combos/9.js +29 -28
  30. data/vendor/assets/javascripts/webshims/shims/combos/98.js +4 -2
  31. data/vendor/assets/javascripts/webshims/shims/combos/99.js +4 -2
  32. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +27 -27
  33. data/vendor/assets/javascripts/webshims/shims/es6.js +23 -29
  34. data/vendor/assets/javascripts/webshims/shims/{filereader.js → filereader-xhr.js} +66 -12
  35. data/vendor/assets/javascripts/webshims/shims/form-core.js +0 -14
  36. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +2 -1
  37. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +1 -2
  38. data/vendor/assets/javascripts/webshims/shims/form-validation.js +18 -5
  39. data/vendor/assets/javascripts/webshims/shims/form-validators.js +15 -14
  40. data/vendor/assets/javascripts/webshims/shims/geolocation.js +41 -50
  41. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +4 -4
  42. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +2 -1
  43. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols.js +4 -2
  44. data/vendor/assets/javascripts/webshims/shims/mediacapture-picker.js +42 -0
  45. data/vendor/assets/javascripts/webshims/shims/mediacapture.js +159 -0
  46. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +13 -1
  47. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +48 -12
  48. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +20 -8
  49. data/vendor/assets/javascripts/webshims/shims/{combos/26.js → moxie/js/moxie-html4.js} +2121 -1257
  50. data/vendor/assets/javascripts/webshims/shims/moxie/js/{moxie.js → moxie-swf.js} +1125 -1741
  51. data/vendor/assets/javascripts/webshims/shims/sticky.js +585 -0
  52. data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +20 -0
  53. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +23 -0
  54. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +74 -34
  55. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +78 -31
  56. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +78 -31
  57. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  58. data/vendor/assets/javascripts/webshims/shims/track-ui.js +214 -111
  59. data/vendor/assets/javascripts/webshims/shims/track.js +9 -9
  60. data/vendor/assets/javascripts/webshims/shims/usermedia-core.js +27 -0
  61. data/vendor/assets/javascripts/webshims/shims/usermedia-shim.js +34 -37
  62. metadata +9 -8
  63. data/vendor/assets/javascripts/webshims/shims/jajax.js +0 -1262
  64. data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.cdn.xap +0 -0
  65. data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.min.xap +0 -0
@@ -0,0 +1,97 @@
1
+ /*
2
+ * JavaScript Canvas to Blob 2.0.5
3
+ * https://github.com/blueimp/JavaScript-Canvas-to-Blob
4
+ *
5
+ * Copyright 2012, Sebastian Tschan
6
+ * https://blueimp.net
7
+ *
8
+ * Licensed under the MIT license:
9
+ * http://www.opensource.org/licenses/MIT
10
+ *
11
+ * Based on stackoverflow user Stoive's code snippet:
12
+ * http://stackoverflow.com/q/4998908
13
+ */
14
+
15
+ /*jslint nomen: true, regexp: true */
16
+ /*global window, atob, Blob, ArrayBuffer, Uint8Array, define */
17
+
18
+ (function (window) {
19
+ 'use strict';
20
+ var CanvasPrototype = window.HTMLCanvasElement &&
21
+ window.HTMLCanvasElement.prototype,
22
+ hasBlobConstructor = window.Blob && (function () {
23
+ try {
24
+ return Boolean(new Blob());
25
+ } catch (e) {
26
+ return false;
27
+ }
28
+ }()),
29
+ hasArrayBufferViewSupport = hasBlobConstructor && window.Uint8Array &&
30
+ (function () {
31
+ try {
32
+ return new Blob([new Uint8Array(100)]).size === 100;
33
+ } catch (e) {
34
+ return false;
35
+ }
36
+ }()),
37
+ BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||
38
+ window.MozBlobBuilder || window.MSBlobBuilder,
39
+ dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob &&
40
+ window.ArrayBuffer && window.Uint8Array && function (dataURI) {
41
+ var byteString,
42
+ arrayBuffer,
43
+ intArray,
44
+ i,
45
+ mimeString,
46
+ bb;
47
+ if (dataURI.split(',')[0].indexOf('base64') >= 0) {
48
+ // Convert base64 to raw binary data held in a string:
49
+ byteString = atob(dataURI.split(',')[1]);
50
+ } else {
51
+ // Convert base64/URLEncoded data component to raw binary data:
52
+ byteString = decodeURIComponent(dataURI.split(',')[1]);
53
+ }
54
+ // Write the bytes of the string to an ArrayBuffer:
55
+ arrayBuffer = new ArrayBuffer(byteString.length);
56
+ intArray = new Uint8Array(arrayBuffer);
57
+ for (i = 0; i < byteString.length; i += 1) {
58
+ intArray[i] = byteString.charCodeAt(i);
59
+ }
60
+ // Separate out the mime component:
61
+ mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
62
+ // Write the ArrayBuffer (or ArrayBufferView) to a blob:
63
+ if (hasBlobConstructor) {
64
+ return new Blob(
65
+ [hasArrayBufferViewSupport ? intArray : arrayBuffer],
66
+ {type: mimeString}
67
+ );
68
+ }
69
+ bb = new BlobBuilder();
70
+ bb.append(arrayBuffer);
71
+ return bb.getBlob(mimeString);
72
+ };
73
+ if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {
74
+ if (CanvasPrototype.mozGetAsFile) {
75
+ CanvasPrototype.toBlob = function (callback, type, quality) {
76
+ if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {
77
+ callback(dataURLtoBlob(this.toDataURL(type, quality)));
78
+ } else {
79
+ callback(this.mozGetAsFile('blob', type));
80
+ }
81
+ };
82
+ } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {
83
+ CanvasPrototype.toBlob = function (callback, type, quality) {
84
+ callback(dataURLtoBlob(this.toDataURL(type, quality)));
85
+ };
86
+ }
87
+ }
88
+ if (typeof define === 'function' && define.amd) {
89
+ define(function () {
90
+ return dataURLtoBlob;
91
+ });
92
+ } else {
93
+ window.dataURLtoBlob = dataURLtoBlob;
94
+ }
95
+ }(this));
96
+
97
+ webshim.isReady('canvas-blob', true);
@@ -524,20 +524,6 @@ webshims.isReady('swfmini', true);
524
524
  }
525
525
  });
526
526
 
527
- $(function(){
528
- var fileReaderReady = ('FileReader' in window && 'FormData' in window);
529
- if(!fileReaderReady){
530
- webshims.addReady(function(context){
531
- if(!fileReaderReady && !modules.filereader.loaded && !modules.moxie.loaded){
532
- if(context.querySelector('input.ws-filereader')){
533
- webshims.reTest(['filereader', 'moxie']);
534
- fileReaderReady = true;
535
- }
536
- }
537
- });
538
- }
539
- });
540
-
541
527
  if(options.addValidators && options.fastValidators){
542
528
  webshims.reTest(['form-validators', 'form-validation']);
543
529
  }
@@ -606,9 +592,16 @@ webshims.isReady('swfmini', true);
606
592
  })();
607
593
  }
608
594
 
595
+ if(window.CanvasRenderingContext2D && CanvasRenderingContext2D.prototype){
596
+ CanvasRenderingContext2D.prototype.wsImageComplete = function(cb){
597
+ cb.call(this, this);
598
+ };
599
+ }
600
+
609
601
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
610
602
  var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
611
603
  var mediaelement = webshims.mediaelement;
604
+ var allowYtLoading = false;
612
605
 
613
606
  mediaelement.parseRtmp = function(data){
614
607
  var src = data.src.split('://');
@@ -704,7 +697,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
704
697
  return function(){
705
698
  if(loaded || !hasYt){return;}
706
699
  loaded = true;
707
- webshims.loader.loadScript("https://www.youtube.com/player_api");
700
+ if(allowYtLoading){
701
+ webshims.loader.loadScript("https://www.youtube.com/player_api");
702
+ }
708
703
  $(function(){
709
704
  webshims._polyfill(["mediaelement-yt"]);
710
705
  });
@@ -890,6 +885,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
890
885
  }
891
886
  });
892
887
  if(!requested && hasYt && !mediaelement.createSWF){
888
+ allowYtLoading = true;
893
889
  loadYt();
894
890
  }
895
891
  };
@@ -1054,6 +1050,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1054
1050
  .add(insertedElement.filter('video, audio'))
1055
1051
  .each(function(){
1056
1052
  if(!mediaelement.canNativePlaySrces(this)){
1053
+ allowYtLoading = true;
1057
1054
  loadThird();
1058
1055
  handleMedia = true;
1059
1056
  return false;
@@ -1076,6 +1073,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1076
1073
  mediaelement.loadDebugger();
1077
1074
  });
1078
1075
  }
1076
+
1079
1077
  //set native implementation ready, before swf api is retested
1080
1078
  if(hasNative){
1081
1079
  webshims.isReady('mediaelement-core', true);
@@ -64,11 +64,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
64
64
  webshims.assumeARIA = true;
65
65
 
66
66
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
67
- 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");
68
- }
69
-
70
- if('debug' in webshims){
71
- webshims.error('Use webshims.setOptions("debug", true||false||"noCombo"); to debug flag');
67
+ webshims.error("IE browser modes are busted in IE10+. Make sure to run IE in edge mode (X-UA-Compatible). Please test your HTML/CSS/JS with a real IE version or at least IETester or similar tools. ");
72
68
  }
73
69
 
74
70
  if (!webshims.cfg.no$Switch) {
@@ -681,33 +677,37 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
681
677
  }
682
678
  },
683
679
  handler: (function(){
680
+ var evt;
684
681
  var trigger = function(){
685
- $(document).triggerHandler('updateshadowdom');
682
+ $(document).triggerHandler('updateshadowdom', [evt]);
686
683
  };
687
- return function(e){
688
- clearTimeout(resizeTimer);
689
- resizeTimer = setTimeout(function(){
690
- if(e.type == 'resize'){
691
- var width = $window.width();
692
- var height = $window.width();
684
+ var timed = function(){
685
+ if(evt && evt.type == 'resize'){
686
+ var width = $window.width();
687
+ var height = $window.width();
693
688
 
694
- if(height == lastHeight && width == lastWidth){
695
- return;
696
- }
697
- lastHeight = height;
698
- lastWidth = width;
699
-
700
- docObserve.height = docObserve.getHeight();
701
- docObserve.width = docObserve.getWidth();
689
+ if(height == lastHeight && width == lastWidth){
690
+ return;
702
691
  }
692
+ lastHeight = height;
693
+ lastWidth = width;
694
+ }
703
695
 
704
- if(window.requestAnimationFrame){
705
- requestAnimationFrame(trigger);
706
- } else {
707
- setTimeout(trigger, 0);
708
- }
709
-
710
- }, (e.type == 'resize' && !window.requestAnimationFrame) ? 50 : 9);
696
+ if(evt && evt.type != 'docresize'){
697
+ docObserve.height = docObserve.getHeight();
698
+ docObserve.width = docObserve.getWidth();
699
+ }
700
+
701
+ if(window.requestAnimationFrame){
702
+ requestAnimationFrame(trigger);
703
+ } else {
704
+ setTimeout(trigger, 0);
705
+ }
706
+ };
707
+ return function(e){
708
+ clearTimeout(resizeTimer);
709
+ evt = e;
710
+ resizeTimer = setTimeout(timed, (e.type == 'resize' && !window.requestAnimationFrame) ? 50 : 9);
711
711
  };
712
712
  })(),
713
713
  _create: function(){
@@ -3045,7 +3045,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3045
3045
 
3046
3046
  (function(){
3047
3047
  var picker = {};
3048
- var assumeVirtualKeyBoard = (window.Modernizr && (Modernizr.touchevents || Modernizr.touch)) || (/android|iphone|ipad|ipod|blackberry|iemobile/i.test(navigator.userAgent.toLowerCase()));
3048
+ var modern = window.Modernizr;
3049
+ var assumeVirtualKeyBoard = (modern && (modern.touchevents || modern.touch)) || (/android|iphone|ipad|ipod|blackberry|iemobile/i.test(navigator.userAgent.toLowerCase()));
3049
3050
  webshims.inlinePopover = {
3050
3051
  _create: function(){
3051
3052
  this.element = $('<div class="ws-inline-picker"><div class="ws-po-box" /></div>').data('wspopover', this);
@@ -1814,7 +1814,8 @@
1814
1814
 
1815
1815
  (function(){
1816
1816
  var picker = {};
1817
- var assumeVirtualKeyBoard = (window.Modernizr && (Modernizr.touchevents || Modernizr.touch)) || (/android|iphone|ipad|ipod|blackberry|iemobile/i.test(navigator.userAgent.toLowerCase()));
1817
+ var modern = window.Modernizr;
1818
+ var assumeVirtualKeyBoard = (modern && (modern.touchevents || modern.touch)) || (/android|iphone|ipad|ipod|blackberry|iemobile/i.test(navigator.userAgent.toLowerCase()));
1818
1819
  webshims.inlinePopover = {
1819
1820
  _create: function(){
1820
1821
  this.element = $('<div class="ws-inline-picker"><div class="ws-po-box" /></div>').data('wspopover', this);
@@ -281,9 +281,16 @@ webshims.isReady('swfmini', true);
281
281
  })();
282
282
  }
283
283
 
284
+ if(window.CanvasRenderingContext2D && CanvasRenderingContext2D.prototype){
285
+ CanvasRenderingContext2D.prototype.wsImageComplete = function(cb){
286
+ cb.call(this, this);
287
+ };
288
+ }
289
+
284
290
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
285
291
  var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
286
292
  var mediaelement = webshims.mediaelement;
293
+ var allowYtLoading = false;
287
294
 
288
295
  mediaelement.parseRtmp = function(data){
289
296
  var src = data.src.split('://');
@@ -379,7 +386,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
379
386
  return function(){
380
387
  if(loaded || !hasYt){return;}
381
388
  loaded = true;
382
- webshims.loader.loadScript("https://www.youtube.com/player_api");
389
+ if(allowYtLoading){
390
+ webshims.loader.loadScript("https://www.youtube.com/player_api");
391
+ }
383
392
  $(function(){
384
393
  webshims._polyfill(["mediaelement-yt"]);
385
394
  });
@@ -565,6 +574,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
565
574
  }
566
575
  });
567
576
  if(!requested && hasYt && !mediaelement.createSWF){
577
+ allowYtLoading = true;
568
578
  loadYt();
569
579
  }
570
580
  };
@@ -729,6 +739,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
729
739
  .add(insertedElement.filter('video, audio'))
730
740
  .each(function(){
731
741
  if(!mediaelement.canNativePlaySrces(this)){
742
+ allowYtLoading = true;
732
743
  loadThird();
733
744
  handleMedia = true;
734
745
  return false;
@@ -751,6 +762,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
751
762
  mediaelement.loadDebugger();
752
763
  });
753
764
  }
765
+
754
766
  //set native implementation ready, before swf api is retested
755
767
  if(hasNative){
756
768
  webshims.isReady('mediaelement-core', true);
@@ -835,8 +847,12 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
835
847
  var lastCue = this.cues[this.cues.length-1];
836
848
  if(lastCue && lastCue.startTime > cue.startTime){
837
849
  webshims.error("cue startTime higher than previous cue's startTime");
850
+ return;
838
851
  }
839
852
  }
853
+ if(cue.startTime >= cue.endTime ){
854
+ webshim.error('startTime >= endTime of cue: '+ cue.text);
855
+ }
840
856
  if(cue.track && cue.track.removeCue){
841
857
  cue.track.removeCue(cue);
842
858
  }
@@ -928,6 +944,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
928
944
  for(i = 0, len = added.length; i < len; i++){
929
945
  $([trackList]).triggerHandler($.Event({type: 'addtrack', track: added[i]}));
930
946
  }
947
+ //todo: remove
931
948
  if(baseData.scriptedTextTracks || removed.length){
932
949
  $(this).triggerHandler('updatetrackdisplay');
933
950
  }
@@ -944,7 +961,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
944
961
  setTimeout(function(){
945
962
  $(track).closest('audio, video').triggerHandler('updatetrackdisplay');
946
963
  trackData.isTriggering = false;
947
- }, 1);
964
+ }, 9);
948
965
  }
949
966
  };
950
967
  var isDefaultTrack = (function(){
@@ -1137,15 +1154,10 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1137
1154
  error: error
1138
1155
  });
1139
1156
  };
1140
- if($.ajax && $.ajaxSettings.xhr){
1141
- if(isDisabled){
1142
- setTimeout(createAjax, loadingTracks * 2);
1143
- } else {
1144
- createAjax();
1145
- }
1157
+ if(isDisabled){
1158
+ setTimeout(createAjax, loadingTracks * 2);
1146
1159
  } else {
1147
- webshims.ready('jajax', createAjax);
1148
- webshims.loader.loadList(['jajax']);
1160
+ createAjax();
1149
1161
  }
1150
1162
  } catch(er){
1151
1163
  error();
@@ -58,9 +58,16 @@
58
58
  })();
59
59
  }
60
60
 
61
+ if(window.CanvasRenderingContext2D && CanvasRenderingContext2D.prototype){
62
+ CanvasRenderingContext2D.prototype.wsImageComplete = function(cb){
63
+ cb.call(this, this);
64
+ };
65
+ }
66
+
61
67
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
62
68
  var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
63
69
  var mediaelement = webshims.mediaelement;
70
+ var allowYtLoading = false;
64
71
 
65
72
  mediaelement.parseRtmp = function(data){
66
73
  var src = data.src.split('://');
@@ -156,7 +163,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
156
163
  return function(){
157
164
  if(loaded || !hasYt){return;}
158
165
  loaded = true;
159
- webshims.loader.loadScript("https://www.youtube.com/player_api");
166
+ if(allowYtLoading){
167
+ webshims.loader.loadScript("https://www.youtube.com/player_api");
168
+ }
160
169
  $(function(){
161
170
  webshims._polyfill(["mediaelement-yt"]);
162
171
  });
@@ -342,6 +351,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
342
351
  }
343
352
  });
344
353
  if(!requested && hasYt && !mediaelement.createSWF){
354
+ allowYtLoading = true;
345
355
  loadYt();
346
356
  }
347
357
  };
@@ -506,6 +516,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
506
516
  .add(insertedElement.filter('video, audio'))
507
517
  .each(function(){
508
518
  if(!mediaelement.canNativePlaySrces(this)){
519
+ allowYtLoading = true;
509
520
  loadThird();
510
521
  handleMedia = true;
511
522
  return false;
@@ -528,6 +539,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
528
539
  mediaelement.loadDebugger();
529
540
  });
530
541
  }
542
+
531
543
  //set native implementation ready, before swf api is retested
532
544
  if(hasNative){
533
545
  webshims.isReady('mediaelement-core', true);
@@ -612,8 +624,12 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
612
624
  var lastCue = this.cues[this.cues.length-1];
613
625
  if(lastCue && lastCue.startTime > cue.startTime){
614
626
  webshims.error("cue startTime higher than previous cue's startTime");
627
+ return;
615
628
  }
616
629
  }
630
+ if(cue.startTime >= cue.endTime ){
631
+ webshim.error('startTime >= endTime of cue: '+ cue.text);
632
+ }
617
633
  if(cue.track && cue.track.removeCue){
618
634
  cue.track.removeCue(cue);
619
635
  }
@@ -705,6 +721,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
705
721
  for(i = 0, len = added.length; i < len; i++){
706
722
  $([trackList]).triggerHandler($.Event({type: 'addtrack', track: added[i]}));
707
723
  }
724
+ //todo: remove
708
725
  if(baseData.scriptedTextTracks || removed.length){
709
726
  $(this).triggerHandler('updatetrackdisplay');
710
727
  }
@@ -721,7 +738,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
721
738
  setTimeout(function(){
722
739
  $(track).closest('audio, video').triggerHandler('updatetrackdisplay');
723
740
  trackData.isTriggering = false;
724
- }, 1);
741
+ }, 9);
725
742
  }
726
743
  };
727
744
  var isDefaultTrack = (function(){
@@ -914,15 +931,10 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
914
931
  error: error
915
932
  });
916
933
  };
917
- if($.ajax && $.ajaxSettings.xhr){
918
- if(isDisabled){
919
- setTimeout(createAjax, loadingTracks * 2);
920
- } else {
921
- createAjax();
922
- }
934
+ if(isDisabled){
935
+ setTimeout(createAjax, loadingTracks * 2);
923
936
  } else {
924
- webshims.ready('jajax', createAjax);
925
- webshims.loader.loadList(['jajax']);
937
+ createAjax();
926
938
  }
927
939
  } catch(er){
928
940
  error();