webshims-rails 1.12.3 → 1.12.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/polyfiller.js +75 -31
  4. data/vendor/assets/javascripts/webshims/shims/color-picker.js +14 -14
  5. data/vendor/assets/javascripts/webshims/shims/combos/1.js +83 -459
  6. data/vendor/assets/javascripts/webshims/shims/combos/10.js +92 -69
  7. data/vendor/assets/javascripts/webshims/shims/combos/11.js +90 -54
  8. data/vendor/assets/javascripts/webshims/shims/combos/12.js +104 -494
  9. data/vendor/assets/javascripts/webshims/shims/combos/13.js +66 -228
  10. data/vendor/assets/javascripts/webshims/shims/combos/14.js +2 -0
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +42 -40
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +105 -494
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +90 -54
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +90 -54
  15. data/vendor/assets/javascripts/webshims/shims/combos/19.js +123 -471
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +85 -474
  17. data/vendor/assets/javascripts/webshims/shims/combos/20.js +85 -205
  18. data/vendor/assets/javascripts/webshims/shims/combos/21.js +103 -45
  19. data/vendor/assets/javascripts/webshims/shims/combos/22.js +41 -40
  20. data/vendor/assets/javascripts/webshims/shims/combos/23.js +63 -454
  21. data/vendor/assets/javascripts/webshims/shims/combos/24.js +52 -36
  22. data/vendor/assets/javascripts/webshims/shims/combos/25.js +123 -471
  23. data/vendor/assets/javascripts/webshims/shims/combos/26.js +2 -15
  24. data/vendor/assets/javascripts/webshims/shims/combos/27.js +38 -266
  25. data/vendor/assets/javascripts/webshims/shims/combos/28.js +20 -20
  26. data/vendor/assets/javascripts/webshims/shims/combos/3.js +24 -20
  27. data/vendor/assets/javascripts/webshims/shims/combos/30.js +24 -20
  28. data/vendor/assets/javascripts/webshims/shims/combos/31.js +22 -20
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +4 -15
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +90 -54
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +90 -54
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +87 -474
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +87 -474
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +92 -69
  35. data/vendor/assets/javascripts/webshims/shims/combos/99.js +1724 -0
  36. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +2 -15
  37. data/vendor/assets/javascripts/webshims/shims/form-core.js +19 -4
  38. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +39 -5
  39. data/vendor/assets/javascripts/webshims/shims/form-message.js +2 -0
  40. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +69 -37
  41. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +18 -20
  42. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +34 -16
  43. data/vendor/assets/javascripts/webshims/shims/form-validation.js +12 -9
  44. data/vendor/assets/javascripts/webshims/shims/form-validators.js +21 -5
  45. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +16 -13
  46. data/vendor/assets/javascripts/webshims/shims/geolocation.js +3 -3
  47. data/vendor/assets/javascripts/webshims/shims/jajax.js +1262 -0
  48. data/vendor/assets/javascripts/webshims/shims/jme/b.js +576 -0
  49. data/vendor/assets/javascripts/webshims/shims/jme/c.js +1148 -0
  50. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +373 -0
  51. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +711 -0
  52. data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
  53. data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +36 -0
  54. data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
  56. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +16 -18
  57. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +25 -188
  58. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +58 -2
  59. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +130 -66
  60. data/vendor/assets/javascripts/webshims/shims/range-ui.js +21 -17
  61. data/vendor/assets/javascripts/webshims/shims/sizzle.js +1634 -1613
  62. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +5 -5
  63. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +5 -1
  64. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +13 -9
  65. data/vendor/assets/javascripts/webshims/shims/swfmini-embed.js +136 -0
  66. data/vendor/assets/javascripts/webshims/shims/swfmini.js +38 -266
  67. data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -3
  68. data/vendor/assets/javascripts/webshims/shims/track.js +41 -40
  69. metadata +13 -2
@@ -1,6 +1,5 @@
1
1
  (function(Modernizr, webshims){
2
2
  "use strict";
3
- var $ = webshims.$;
4
3
  var hasNative = Modernizr.audio && Modernizr.video;
5
4
  var supportsLoop = false;
6
5
  var bugs = webshims.bugs;
@@ -13,6 +12,7 @@
13
12
  }
14
13
  });
15
14
  };
15
+
16
16
  var wsCfg = webshims.cfg;
17
17
  var options = wsCfg.mediaelement;
18
18
  var hasFullTrackSupport;
@@ -21,74 +21,36 @@
21
21
  webshims.error("mediaelement wasn't implemented but loaded");
22
22
  return;
23
23
  }
24
+
24
25
  if(hasNative){
25
26
  var videoElem = document.createElement('video');
26
27
  Modernizr.videoBuffered = ('buffered' in videoElem);
27
28
  Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
28
29
  supportsLoop = ('loop' in videoElem);
29
-
30
+ Modernizr.mediaLoop = supportsLoop;
31
+
30
32
  webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
31
33
 
32
- if(!Modernizr.videoBuffered ){
34
+ if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted && navigator.userAgent.indexOf('MSIE') != -1 && 'ActiveXObject' in window) ){
33
35
  webshims.addPolyfill('mediaelement-native-fix', {
34
36
  d: ['dom-support']
35
37
  });
36
38
  webshims.loader.loadList(['mediaelement-native-fix']);
37
39
  }
38
-
39
- if(!options.preferFlash){
40
- var noSwitch = {
41
- 1: 1
42
- };
43
- var switchOptions = function(e){
44
- var media, error, parent;
45
- if(!options.preferFlash &&
46
- ($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source', parent).last()[0] == e.target)) &&
47
- (media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
48
- ){
49
-
50
- $(function(){
51
- if(hasSwf && !options.preferFlash){
52
- loadSwf();
53
- webshims.ready('WINDOWLOAD '+swfType, function(){
54
- setTimeout(function(){
55
- if(!options.preferFlash && webshims.mediaelement.createSWF && !media.is('.nonnative-api-active')){
56
- options.preferFlash = true;
57
- document.removeEventListener('error', switchOptions, true);
58
- $('audio, video').each(function(){
59
- webshims.mediaelement.selectSource(this);
60
- });
61
- webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
62
- }
63
- }, 9);
64
- });
65
- } else{
66
- document.removeEventListener('error', switchOptions, true);
67
- }
68
- });
69
- }
70
- };
71
- document.addEventListener('error', switchOptions, true);
72
- $('audio, video').each(function(){
73
- var error = $.prop(this, 'error');
74
- if(error && !noSwitch[error]){
75
- switchOptions({target: this});
76
- return false;
77
- }
78
- });
79
- }
80
40
  }
81
41
 
82
42
  if(Modernizr.track && !bugs.track){
83
43
  (function(){
84
-
85
- if(!bugs.track){
86
- bugs.track = typeof $('<track />')[0].readyState != 'number';
87
- }
88
-
89
44
  if(!bugs.track){
45
+
46
+ if(window.VTTCue && !window.TextTrackCue){
47
+ window.TextTrackCue = window.VTTCue;
48
+ } else if(!window.VTTCue){
49
+ window.VTTCue = window.TextTrackCue;
50
+ }
51
+
90
52
  try {
91
- new TextTrackCue(2, 3, '');
53
+ new VTTCue(2, 3, '');
92
54
  } catch(e){
93
55
  bugs.track = true;
94
56
  }
@@ -124,6 +86,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
124
86
  }
125
87
  data.streamId = data.streamId.join('/');
126
88
  };
89
+
127
90
  var getSrcObj = function(elem, nodeName){
128
91
  elem = $(elem);
129
92
  var src = {src: elem.attr('src') || '', elem: elem, srcProp: elem.prop('src')};
@@ -193,14 +156,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
193
156
  });
194
157
  }
195
158
  };
196
- // var loadMediaGroup = function(){
197
- // if(!loadMediaGroup.loaded){
198
- // loadMediaGroup.loaded = true;
199
- // webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
200
- // webshims.loader.loadList(['mediagroup']);
201
- // });
202
- // }
203
- // };
159
+
204
160
  var loadYt = (function(){
205
161
  var loaded;
206
162
  return function(){
@@ -225,10 +181,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
225
181
  d: ['dom-support']
226
182
  });
227
183
 
228
-
229
- // webshims.addModule('mediagroup', {
230
- // d: ['mediaelement', 'dom-support']
231
- // });
184
+
232
185
 
233
186
  mediaelement.mimeTypes = {
234
187
  audio: {
@@ -262,7 +215,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
262
215
 
263
216
  mediaelement.mimeTypes.source = $.extend({}, mediaelement.mimeTypes.audio, mediaelement.mimeTypes.video);
264
217
 
265
- mediaelement.getTypeForSrc = function(src, nodeName, data){
218
+ mediaelement.getTypeForSrc = function(src, nodeName){
266
219
  if(src.indexOf('youtube.com/watch?') != -1 || src.indexOf('youtube.com/v/') != -1){
267
220
  return 'video/youtube';
268
221
  }
@@ -300,32 +253,13 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
300
253
  }
301
254
  return srces;
302
255
  } else {
303
- mediaElem.removeAttr('src').removeAttr('type').find('source').remove();
304
- if(!$.isArray(srces)){
305
- srces = [srces];
306
- }
307
- srces.forEach(function(src){
308
- if(typeof src == 'string'){
309
- src = {src: src};
310
- }
311
- mediaElem.append($(document.createElement('source')).attr(src));
312
- });
313
-
256
+ webshims.error('setting sources was removed.');
314
257
  }
315
258
  };
316
259
 
317
260
 
318
- $.fn.loadMediaSrc = function(srces, poster){
319
- return this.each(function(){
320
- if(poster !== undefined){
321
- $(this).removeAttr('poster');
322
- if(poster){
323
- $.attr(this, 'poster', poster);
324
- }
325
- }
326
- mediaelement.srces(this, srces);
327
- $(this).mediaLoad();
328
- });
261
+ $.fn.loadMediaSrc = function(){
262
+ webshims.error('loadMediaSrc was removed.');
329
263
  };
330
264
 
331
265
  mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
@@ -401,8 +335,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
401
335
  var readyType = hasSwf ? swfType : 'mediaelement-yt';
402
336
  return function( mediaElem, ret, data ){
403
337
  //readd to ready
404
-
405
-
338
+
406
339
  webshims.ready(readyType, function(){
407
340
  if(mediaelement.createSWF && $(mediaElem).parent()[0]){
408
341
  mediaelement.createSWF( mediaElem, ret, data );
@@ -478,7 +411,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
478
411
 
479
412
  });
480
413
 
481
- var handleMedia = false;
414
+ var handleMedia = false;
482
415
  var initMediaElements = function(){
483
416
  var testFixMedia = function(){
484
417
  if(webshims.implement(this, 'mediaelement')){
@@ -486,50 +419,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
486
419
  if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
487
420
  $.prop(this, 'muted', true);
488
421
  }
489
- //fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
490
- if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
491
- var bufferTimer;
492
- var lastBuffered;
493
- var elem = this;
494
- var getBufferedString = function(){
495
- var buffered = $.prop(elem, 'buffered');
496
- if(!buffered){return;}
497
- var bufferString = "";
498
- for(var i = 0, len = buffered.length; i < len;i++){
499
- bufferString += buffered.end(i);
500
- }
501
- return bufferString;
502
- };
503
- var testBuffer = function(){
504
- var buffered = getBufferedString();
505
- if(buffered != lastBuffered){
506
- lastBuffered = buffered;
507
- webshims.info('needed to trigger progress manually');
508
- $(elem).triggerHandler('progress');
509
- }
510
- };
511
-
512
- $(this)
513
- .on({
514
- 'play loadstart progress': function(e){
515
- if(e.type == 'progress'){
516
- lastBuffered = getBufferedString();
517
- }
518
- clearTimeout(bufferTimer);
519
- bufferTimer = setTimeout(testBuffer, 400);
520
- },
521
- 'emptied stalled mediaerror abort suspend': function(e){
522
- if(e.type == 'emptied'){
523
- lastBuffered = false;
524
- }
525
- clearTimeout(bufferTimer);
526
- }
527
- })
528
- ;
529
- if('ActiveXObject' in window && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay],.nonnative-api-active)')){
530
- $(this).prop('preload', 'metadata').mediaLoad();
531
- }
532
- }
533
422
  }
534
423
 
535
424
  };
@@ -542,7 +431,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
542
431
  }
543
432
 
544
433
  ['audio', 'video'].forEach(function(nodeName){
545
- var supLoad, supController;
434
+ var supLoad;
546
435
  supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
547
436
  prop: {
548
437
  value: function(){
@@ -575,58 +464,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
575
464
  }
576
465
  }
577
466
  });
578
-
579
- // supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
580
- // prop: {
581
- // get: function(type){
582
- // if(!loadMediaGroup.loaded){
583
- // loadMediaGroup();
584
- // }
585
- // if(mediaelement.controller){
586
- // return mediaelement.controller[nodeName].get.apply(this, arguments);
587
- // }
588
- // return supController.prop._supget && supController.prop._supget.apply(this, arguments);
589
- // },
590
- // set: function(){
591
- // var that = this;
592
- // var args = arguments;
593
- // if(!loadMediaGroup.loaded){
594
- // loadMediaGroup();
595
- // }
596
- // if(mediaelement.controller){
597
- // return mediaelement.controller[nodeName].set.apply(that, args);
598
- // } else {
599
- // webshims.ready('mediagroup', function(){
600
- // mediaelement.controller[nodeName].set.apply(that, args);
601
- // });
602
- // }
603
- // return supController.prop._supset && supController.prop._supset.apply(this, arguments);
604
- // }
605
- // }
606
- // });
607
-
608
- // webshims.ready('mediagroup', function(){
609
- // mediaelement.controller[nodeName].sup = supController;
610
- // });
611
467
  });
612
-
613
- // webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
614
- // set: function(){
615
- // var that = this;
616
- // var args = arguments;
617
- // if(!loadMediaGroup.loaded){
618
- // loadMediaGroup();
619
- // }
620
- // if(mediaelement.mediagroup){
621
- // mediaelement.mediagroup.set.apply(that, args);
622
- // } else {
623
- // webshims.ready('mediagroup', function(){
624
- // mediaelement.mediagroup.set.apply(that, args);
625
- // });
626
- // }
627
- // },
628
- // initAttr: true
629
- // });
468
+
630
469
 
631
470
  webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
632
471
  set: function(){
@@ -649,9 +488,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
649
488
  if(!loadTrackUi.loaded && $('track', media).length){
650
489
  loadTrackUi();
651
490
  }
652
- // if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
653
- // loadMediaGroup();
654
- // }
655
491
  media = null;
656
492
  });
657
493
  });
@@ -691,6 +527,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
691
527
  }
692
528
  webshims.ready('track', loadTrackUi);
693
529
  });
530
+
694
531
  })(Modernizr, webshims);
695
532
  ;webshims.register('track', function($, webshims, window, document, undefined){
696
533
  "use strict";
@@ -908,9 +745,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
908
745
  };
909
746
  })();
910
747
  var emptyDiv = $('<div />')[0];
911
- var TextTrackCue = function(startTime, endTime, text){
748
+ function VTTCue(startTime, endTime, text){
912
749
  if(arguments.length != 3){
913
- webshims.error("wrong arguments.length for TextTrackCue.constructor");
750
+ webshims.error("wrong arguments.length for VTTCue.constructor");
914
751
  }
915
752
 
916
753
  this.startTime = startTime;
@@ -919,9 +756,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
919
756
 
920
757
 
921
758
  createEventTarget(this);
922
- };
759
+ }
923
760
 
924
- TextTrackCue.prototype = {
761
+ VTTCue.prototype = {
925
762
 
926
763
  onenter: null,
927
764
  onexit: null,
@@ -963,11 +800,14 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
963
800
  // align: 'middle'
964
801
  };
965
802
 
966
- window.TextTrackCue = TextTrackCue;
967
-
968
-
969
-
970
-
803
+ window.VTTCue = VTTCue;
804
+ window.TextTrackCue = function(){
805
+ webshims.error("Use VTTCue constructor instead of abstract TextTrackCue constructor.");
806
+ VTTCue.apply(this, arguments);
807
+ };
808
+
809
+ window.TextTrackCue.prototype = VTTCue.prototype;
810
+
971
811
  mediaelement.createCueList = function(){
972
812
  return $.extend([], cueListProto);
973
813
  };
@@ -1012,8 +852,10 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1012
852
  var loadEvents = 'play playing updatetrackdisplay';
1013
853
  var obj = trackData.track;
1014
854
  var load = function(){
1015
- var error, ajax, src, createAjax;
1016
- if(obj.mode != 'disabled' && $.attr(track, 'src') && (src = $.prop(track, 'src'))){
855
+ var error, ajax, createAjax;
856
+
857
+ var src = obj.mode != 'disabled' && ($.attr(track, 'src') && $.prop(track, 'src'));
858
+ if(src){
1017
859
  $(mediaelem).off(loadEvents, load);
1018
860
  if(!trackData.readyState){
1019
861
  error = function(){
@@ -1051,8 +893,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1051
893
  if($.ajax){
1052
894
  createAjax();
1053
895
  } else {
1054
- webshims.ready('$ajax', createAjax);
1055
- webshims.loader.loadList(['$ajax']);
896
+ webshims.ready('jajax', createAjax);
897
+ webshims.loader.loadList(['jajax']);
1056
898
  }
1057
899
  } catch(er){
1058
900
  error();
@@ -1149,19 +991,17 @@ modified for webshims
1149
991
  mediaelement.parseCaptionChunk = (function(){
1150
992
  // Set up timestamp parsers
1151
993
  var WebVTTTimestampParser = /^(\d{2})?:?(\d{2}):(\d{2})\.(\d+)\s+\-\-\>\s+(\d{2})?:?(\d{2}):(\d{2})\.(\d+)\s*(.*)/;
1152
- var GoogleTimestampParser = /^([\d\.]+)\s+\+([\d\.]+)\s*(.*)/;
1153
994
  var WebVTTDEFAULTSCueParser = /^(DEFAULTS|DEFAULT)\s+\-\-\>\s+(.*)/g;
1154
995
  var WebVTTSTYLECueParser = /^(STYLE|STYLES)\s+\-\-\>\s*\n([\s\S]*)/g;
1155
996
  var WebVTTCOMMENTCueParser = /^(COMMENT|COMMENTS)\s+\-\-\>\s+(.*)/g;
1156
997
 
1157
998
  return function(subtitleElement,objectCount){
1158
- var cueDefaults = [];
1159
-
1160
- var subtitleParts, timeIn, timeOut, html, timeData, subtitlePartIndex, cueSettings = "", id, specialCueData;
999
+
1000
+ var subtitleParts, timeIn, timeOut, html, timeData, subtitlePartIndex, id, specialCueData;
1161
1001
  var timestampMatch, tmpCue;
1162
1002
 
1163
1003
  // WebVTT Special Cue Logic
1164
- if ((specialCueData = WebVTTDEFAULTSCueParser.exec(subtitleElement))) {
1004
+ if (WebVTTDEFAULTSCueParser.exec(subtitleElement)) {
1165
1005
  // cueDefaults = specialCueData.slice(2).join("");
1166
1006
  // cueDefaults = cueDefaults.split(/\s+/g).filter(function(def) { return def && !!def.length; });
1167
1007
  return null;
@@ -1238,7 +1078,7 @@ modified for webshims
1238
1078
  return previous;
1239
1079
  },compositeCueSettings);
1240
1080
 
1241
- // Turn back into string like the TextTrackCue constructor expects
1081
+ // Turn back into string like the VTTCue constructor expects
1242
1082
  cueSettings = "";
1243
1083
  for (var key in compositeCueSettings) {
1244
1084
  if (compositeCueSettings.hasOwnProperty(key)) {
@@ -1249,7 +1089,7 @@ modified for webshims
1249
1089
  */
1250
1090
  // The remaining lines are the subtitle payload itself (after removing an ID if present, and the time);
1251
1091
  html = subtitleParts.join("\n");
1252
- tmpCue = new TextTrackCue(timeIn, timeOut, html);
1092
+ tmpCue = new VTTCue(timeIn, timeOut, html);
1253
1093
  if(id){
1254
1094
  tmpCue.id = id;
1255
1095
  }
@@ -1258,10 +1098,10 @@ modified for webshims
1258
1098
  })();
1259
1099
 
1260
1100
  mediaelement.parseCaptions = function(captionData, track, complete) {
1261
- var subtitles = mediaelement.createCueList();
1262
- var cue, lazyProcess, regWevVTT;
1263
- var startDate;
1264
- var isWEBVTT;
1101
+
1102
+ var cue, lazyProcess, regWevVTT, startDate, isWEBVTT;
1103
+
1104
+ mediaelement.createCueList();
1265
1105
  if (captionData) {
1266
1106
 
1267
1107
  regWevVTT = /^WEBVTT(\s*FILE)?/ig;
@@ -1441,7 +1281,6 @@ modified for webshims
1441
1281
  },
1442
1282
  readyState: {
1443
1283
  get: function(){
1444
-
1445
1284
  return (webshims.data(this, 'trackData') || {readyState: 0}).readyState;
1446
1285
  },
1447
1286
  writeable: false
@@ -1506,29 +1345,27 @@ modified for webshims
1506
1345
  e.stopImmediatePropagation();
1507
1346
  }
1508
1347
  };
1509
- var startTrackImplementation = function(){
1348
+ var hideNativeTracks = function(){
1510
1349
  if(webshims.implement(this, 'track')){
1511
- var shimedTrack = $.prop(this, 'track');
1512
- var origTrack = this.track;
1513
1350
  var kind;
1514
- var readyState;
1351
+ var origTrack = this.track;
1515
1352
  if(origTrack){
1516
- kind = $.prop(this, 'kind');
1517
- readyState = getNativeReadyState(this, origTrack);
1518
- if (origTrack.mode || readyState) {
1519
- shimedTrack.mode = numericModes[origTrack.mode] || origTrack.mode;
1353
+
1354
+ if (!webshims.bugs.track && (origTrack.mode || getNativeReadyState(this, origTrack))) {
1355
+ $.prop(this, 'track').mode = numericModes[origTrack.mode] || origTrack.mode;
1520
1356
  }
1521
1357
  //disable track from showing + remove UI
1522
- if(kind != 'descriptions'){
1523
- origTrack.mode = (typeof origTrack.mode == 'string') ? 'disabled' : 0;
1524
- this.kind = 'metadata';
1525
- $(this).attr({kind: kind});
1526
- }
1358
+ kind = $.prop(this, 'kind');
1359
+ origTrack.mode = (typeof origTrack.mode == 'string') ? 'disabled' : 0;
1360
+ this.kind = 'metadata';
1361
+
1362
+ $(this).attr({kind: kind});
1527
1363
 
1528
1364
  }
1529
1365
  $(this).on('load error', stopOriginalEvent);
1530
1366
  }
1531
1367
  };
1368
+
1532
1369
  webshims.addReady(function(context, insertedElement){
1533
1370
  var insertedMedia = insertedElement.filter('video, audio, track').closest('audio, video');
1534
1371
  $('video, audio', context)
@@ -1545,10 +1382,11 @@ modified for webshims
1545
1382
  webshims.error("textTracks couldn't be copied");
1546
1383
  }
1547
1384
 
1548
- $('track', this).each(startTrackImplementation);
1385
+ $('track', this).each(hideNativeTracks);
1549
1386
  }
1550
1387
  })
1551
1388
  ;
1389
+
1552
1390
  insertedMedia.each(function(){
1553
1391
  var media = this;
1554
1392
  var baseData = webshims.data(media, 'mediaelementBase');
@@ -1564,4 +1402,4 @@ modified for webshims
1564
1402
  if(Modernizr.texttrackapi){
1565
1403
  $('video, audio').trigger('trackapichange');
1566
1404
  }
1567
- });
1405
+ });