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.
Files changed (90) hide show
  1. data/lib/webshims-rails/version.rb +2 -2
  2. data/vendor/assets/javascripts/webshims/extras/mousepress.js +1 -1
  3. data/vendor/assets/javascripts/webshims/minified/extras/mousepress.js +1 -1
  4. data/vendor/assets/javascripts/webshims/minified/polyfiller.js +1 -1
  5. data/vendor/assets/javascripts/webshims/minified/shims/combos/1.js +1 -1
  6. data/vendor/assets/javascripts/webshims/minified/shims/combos/10.js +1 -1
  7. data/vendor/assets/javascripts/webshims/minified/shims/combos/11.js +1 -1
  8. data/vendor/assets/javascripts/webshims/minified/shims/combos/12.js +1 -1
  9. data/vendor/assets/javascripts/webshims/minified/shims/combos/13.js +1 -1
  10. data/vendor/assets/javascripts/webshims/minified/shims/combos/14.js +1 -1
  11. data/vendor/assets/javascripts/webshims/minified/shims/combos/15.js +1 -1
  12. data/vendor/assets/javascripts/webshims/minified/shims/combos/16.js +1 -1
  13. data/vendor/assets/javascripts/webshims/minified/shims/combos/17.js +1 -1
  14. data/vendor/assets/javascripts/webshims/minified/shims/combos/18.js +1 -1
  15. data/vendor/assets/javascripts/webshims/minified/shims/combos/19.js +1 -1
  16. data/vendor/assets/javascripts/webshims/minified/shims/combos/2.js +1 -1
  17. data/vendor/assets/javascripts/webshims/minified/shims/combos/20.js +1 -1
  18. data/vendor/assets/javascripts/webshims/minified/shims/combos/21.js +1 -1
  19. data/vendor/assets/javascripts/webshims/minified/shims/combos/22.js +1 -1
  20. data/vendor/assets/javascripts/webshims/minified/shims/combos/23.js +1 -1
  21. data/vendor/assets/javascripts/webshims/minified/shims/combos/24.js +1 -1
  22. data/vendor/assets/javascripts/webshims/minified/shims/combos/25.js +1 -1
  23. data/vendor/assets/javascripts/webshims/minified/shims/combos/26.js +1 -1
  24. data/vendor/assets/javascripts/webshims/minified/shims/combos/27.js +1 -1
  25. data/vendor/assets/javascripts/webshims/minified/shims/combos/3.js +1 -1
  26. data/vendor/assets/javascripts/webshims/minified/shims/combos/4.js +1 -1
  27. data/vendor/assets/javascripts/webshims/minified/shims/combos/5.js +1 -1
  28. data/vendor/assets/javascripts/webshims/minified/shims/combos/59.js +1 -1
  29. data/vendor/assets/javascripts/webshims/minified/shims/combos/6.js +1 -1
  30. data/vendor/assets/javascripts/webshims/minified/shims/combos/7.js +1 -1
  31. data/vendor/assets/javascripts/webshims/minified/shims/combos/8.js +1 -1
  32. data/vendor/assets/javascripts/webshims/minified/shims/combos/9.js +1 -1
  33. data/vendor/assets/javascripts/webshims/minified/shims/dom-extend.js +1 -1
  34. data/vendor/assets/javascripts/webshims/minified/shims/es5.js +1 -1
  35. data/vendor/assets/javascripts/webshims/minified/shims/form-core.js +1 -1
  36. data/vendor/assets/javascripts/webshims/minified/shims/form-datalist.js +1 -1
  37. data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-ui.js +1 -1
  38. data/vendor/assets/javascripts/webshims/minified/shims/form-shim-extend.js +1 -1
  39. data/vendor/assets/javascripts/webshims/minified/shims/geolocation.js +1 -1
  40. data/vendor/assets/javascripts/webshims/minified/shims/json-storage.js +1 -1
  41. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-core.js +1 -1
  42. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-jaris.js +1 -1
  43. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-swf.js +1 -1
  44. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-yt.js +1 -1
  45. data/vendor/assets/javascripts/webshims/minified/shims/track-ui.js +1 -1
  46. data/vendor/assets/javascripts/webshims/minified/shims/track.js +1 -1
  47. data/vendor/assets/javascripts/webshims/polyfiller.js +10 -7
  48. data/vendor/assets/javascripts/webshims/shims/combos/1.js +51 -48
  49. data/vendor/assets/javascripts/webshims/shims/combos/10.js +126 -105
  50. data/vendor/assets/javascripts/webshims/shims/combos/11.js +50 -47
  51. data/vendor/assets/javascripts/webshims/shims/combos/12.js +97 -86
  52. data/vendor/assets/javascripts/webshims/shims/combos/13.js +49 -45
  53. data/vendor/assets/javascripts/webshims/shims/combos/14.js +2 -2
  54. data/vendor/assets/javascripts/webshims/shims/combos/15.js +1 -1
  55. data/vendor/assets/javascripts/webshims/shims/combos/16.js +168 -155
  56. data/vendor/assets/javascripts/webshims/shims/combos/17.js +168 -155
  57. data/vendor/assets/javascripts/webshims/shims/combos/18.js +9 -24
  58. data/vendor/assets/javascripts/webshims/shims/combos/19.js +121 -116
  59. data/vendor/assets/javascripts/webshims/shims/combos/2.js +82 -93
  60. data/vendor/assets/javascripts/webshims/shims/combos/20.js +75 -57
  61. data/vendor/assets/javascripts/webshims/shims/combos/21.js +11 -24
  62. data/vendor/assets/javascripts/webshims/shims/combos/22.js +77 -60
  63. data/vendor/assets/javascripts/webshims/shims/combos/23.js +59 -65
  64. data/vendor/assets/javascripts/webshims/shims/combos/24.js +169 -157
  65. data/vendor/assets/javascripts/webshims/shims/combos/25.js +99 -87
  66. data/vendor/assets/javascripts/webshims/shims/combos/26.js +170 -156
  67. data/vendor/assets/javascripts/webshims/shims/combos/27.js +128 -106
  68. data/vendor/assets/javascripts/webshims/shims/combos/3.js +83 -95
  69. data/vendor/assets/javascripts/webshims/shims/combos/4.js +71 -69
  70. data/vendor/assets/javascripts/webshims/shims/combos/5.js +71 -69
  71. data/vendor/assets/javascripts/webshims/shims/combos/59.js +72 -71
  72. data/vendor/assets/javascripts/webshims/shims/combos/6.js +8 -22
  73. data/vendor/assets/javascripts/webshims/shims/combos/7.js +8 -22
  74. data/vendor/assets/javascripts/webshims/shims/combos/8.js +97 -86
  75. data/vendor/assets/javascripts/webshims/shims/combos/9.js +124 -102
  76. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +49 -45
  77. data/vendor/assets/javascripts/webshims/shims/es5.js +2 -3
  78. data/vendor/assets/javascripts/webshims/shims/form-core.js +72 -70
  79. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +1 -2
  80. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +8 -22
  81. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +11 -24
  82. data/vendor/assets/javascripts/webshims/shims/geolocation.js +1 -1
  83. data/vendor/assets/javascripts/webshims/shims/json-storage.js +1 -1
  84. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +48 -41
  85. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +26 -15
  86. data/vendor/assets/javascripts/webshims/shims/mediaelement-swf.js +27 -16
  87. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +18 -6
  88. data/vendor/assets/javascripts/webshims/shims/track-ui.js +2 -1
  89. data/vendor/assets/javascripts/webshims/shims/track.js +2 -1
  90. metadata +2 -2
@@ -351,7 +351,7 @@ webshims.defineNodeNamesBooleanProperty(['input', 'textarea', 'select'], 'requir
351
351
  set: function(value){
352
352
  $(this).getShadowFocusElement().attr('aria-required', !!(value)+'');
353
353
  },
354
- initAttr: (!$.browser.msie || webshims.browserVersion > 7)//only if we have aria-support
354
+ initAttr: (Modernizr.localstorage)//only if we have aria-support
355
355
  });
356
356
 
357
357
  webshims.reflectProperties(['input'], ['pattern']);
@@ -666,14 +666,13 @@ webshims.defineNodeNameProperty('form', 'noValidate', {
666
666
  }
667
667
  });
668
668
 
669
- if($.browser.webkit && Modernizr.inputtypes.date){
669
+ if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
670
670
  (function(){
671
671
 
672
672
  var noInputTriggerEvts = {updateInput: 1, input: 1},
673
673
  fixInputTypes = {
674
674
  date: 1,
675
- time: 1,
676
- "datetime-local": 1
675
+ time: 1
677
676
  },
678
677
  noFocusEvents = {
679
678
  focusout: 1,
@@ -1097,8 +1096,7 @@ try {
1097
1096
 
1098
1097
  (function(){
1099
1098
  Modernizr.textareaPlaceholder = !!('placeholder' in $('<textarea />')[0]);
1100
- var bustedTextarea = $.browser.webkit && Modernizr.textareaPlaceholder && webshims.browserVersion < 535;
1101
- if(Modernizr.input.placeholder && Modernizr.textareaPlaceholder && !bustedTextarea){return;}
1099
+ if(Modernizr.input.placeholder && Modernizr.textareaPlaceholder){return;}
1102
1100
 
1103
1101
  var isOver = (webshims.cfg.forms.placeholderType == 'over');
1104
1102
  var isResponsive = (webshims.cfg.forms.responsivePlaceholder);
@@ -1300,8 +1298,8 @@ try {
1300
1298
  data.text.css('padding'+ side, size);
1301
1299
  });
1302
1300
 
1303
- $(elem)
1304
- .on('updateshadowdom', function(){
1301
+ $(document)
1302
+ .onTrigger('updateshadowdom', function(){
1305
1303
  var height, width;
1306
1304
  if((width = elem.offsetWidth) || (height = elem.offsetHeight)){
1307
1305
  data.text
@@ -1313,7 +1311,6 @@ try {
1313
1311
  ;
1314
1312
  }
1315
1313
  })
1316
- .triggerHandler('updateshadowdom')
1317
1314
  ;
1318
1315
 
1319
1316
  } else {
@@ -1369,17 +1366,11 @@ try {
1369
1366
  attr: {
1370
1367
  set: function(val){
1371
1368
  var elem = this;
1372
- if(bustedTextarea){
1373
- webshims.data(elem, 'textareaPlaceholder', val);
1374
- elem.placeholder = '';
1375
- } else {
1376
- webshims.contentAttr(elem, 'placeholder', val);
1377
- }
1369
+ webshims.contentAttr(elem, 'placeholder', val);
1378
1370
  pHolder.update(elem, val);
1379
1371
  },
1380
1372
  get: function(){
1381
- var ret = (bustedTextarea) ? webshims.data(this, 'textareaPlaceholder') : '';
1382
- return ret || webshims.contentAttr(this, 'placeholder');
1373
+ return webshims.contentAttr(this, 'placeholder');
1383
1374
  }
1384
1375
  },
1385
1376
  reflect: true,
@@ -1395,13 +1386,9 @@ try {
1395
1386
  placeholderValueDesc[propType] = {
1396
1387
  set: function(val){
1397
1388
  var elem = this;
1398
- var placeholder;
1399
- if(bustedTextarea){
1400
- placeholder = webshims.data(elem, 'textareaPlaceholder');
1401
- }
1402
- if(!placeholder){
1403
- placeholder = webshims.contentAttr(elem, 'placeholder');
1404
- }
1389
+ var placeholder = webshims.contentAttr(elem, 'placeholder');
1390
+
1391
+
1405
1392
  $.removeData(elem, 'cachedValidity');
1406
1393
  var ret = desc[propType]._supset.call(elem, val);
1407
1394
  if(placeholder && 'value' in elem){
@@ -7,7 +7,7 @@
7
7
  },
8
8
  id = 0
9
9
  ;
10
- var geoOpts = $.webshims.cfg.geolocation.options || {};
10
+ var geoOpts = $.webshims.cfg.geolocation || {};
11
11
  navigator.geolocation = (function(){
12
12
  var pos;
13
13
  var api = {
@@ -284,7 +284,7 @@ if (!('sessionStorage' in window)) {window.sessionStorage = new Storage('session
284
284
  if(runStart || (('localStorage' in window) && document.getElementById('swflocalstorageshim')) ){return;}
285
285
  runStart = true;
286
286
  if(window.swfobject && swfobject.hasFlashPlayerVersion('8.0.0')){
287
- $('body')[$.browser.mozilla ? 'after' : 'append']('<div id="swflocalstorageshim-wrapper"><div id="swflocalstorageshim" /></div>');
287
+ $('body').append('<div id="swflocalstorageshim-wrapper"><div id="swflocalstorageshim" /></div>');
288
288
  swfobject.embedSWF($.webshims.cfg.basePath +'swf/localStorage.swf' +($.webshims.cfg.addCacheBuster || ''), 'swflocalstorageshim', '295', '198', '8.0.0', '', {allowscriptaccess: 'always'}, {name: 'swflocalstorageshim'}, function(e){
289
289
  if(!e.success && !window.localStorage){
290
290
  localStorageSwfCallback();
@@ -50,7 +50,9 @@
50
50
  if(hasSwf && !options.preferFlash && webshims.mediaelement.createSWF && !$(e.target).closest('audio, video').is('.nonnative-api-active')){
51
51
  options.preferFlash = true;
52
52
  document.removeEventListener('error', switchOptions, true);
53
- $('audio, video').mediaLoad();
53
+ $('audio, video').each(function(){
54
+ webshims.mediaelement.selectSource(this);
55
+ });
54
56
  webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src);
55
57
  } else if(!hasSwf){
56
58
  document.removeEventListener('error', switchOptions, true);
@@ -454,7 +456,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
454
456
  data = data || webshims.data(elem, 'mediaelement');
455
457
  stepSources(elem, data, options.preferFlash || undefined, _srces);
456
458
  };
457
-
459
+ mediaelement.selectSource = selectSource;
458
460
 
459
461
  $(document).on('ended', function(e){
460
462
  var data = webshims.data(e.target, 'mediaelement');
@@ -520,52 +522,57 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
520
522
  var media = $('video, audio', context)
521
523
  .add(insertedElement.filter('video, audio'))
522
524
  .each(function(){
523
- if($.browser.msie && webshims.browserVersion > 8 && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay])')){
525
+ var data = webshims.data(this, 'mediaelement');
526
+
527
+ if(hasNative && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay])') && (!data || data.isActive == 'html5')){
528
+ //IE controls not visible bug
524
529
  $(this).prop('preload', 'metadata').mediaLoad();
525
530
  } else {
526
- selectSource(this);
531
+ selectSource(this, data);
527
532
  }
528
533
 
529
-
530
-
531
534
  if(hasNative){
532
- var bufferTimer;
533
- var lastBuffered;
534
- var elem = this;
535
- var getBufferedString = function(){
536
- var buffered = $.prop(elem, 'buffered');
537
- if(!buffered){return;}
538
- var bufferString = "";
539
- for(var i = 0, len = buffered.length; i < len;i++){
540
- bufferString += buffered.end(i);
541
- }
542
- return bufferString;
543
- };
544
- var testBuffer = function(){
545
- var buffered = getBufferedString();
546
- if(buffered != lastBuffered){
547
- lastBuffered = buffered;
548
- $(elem).triggerHandler('progress');
549
- }
550
- };
551
535
 
552
- $(this)
553
- .on({
554
- 'play loadstart progress': function(e){
555
- if(e.type == 'progress'){
556
- lastBuffered = getBufferedString();
557
- }
558
- clearTimeout(bufferTimer);
559
- bufferTimer = setTimeout(testBuffer, 999);
560
- },
561
- 'emptied stalled mediaerror abort suspend': function(e){
562
- if(e.type == 'emptied'){
563
- lastBuffered = false;
564
- }
565
- clearTimeout(bufferTimer);
536
+ //FF progress bug
537
+ (function(){
538
+ var bufferTimer;
539
+ var lastBuffered;
540
+ var elem = this;
541
+ var getBufferedString = function(){
542
+ var buffered = $.prop(elem, 'buffered');
543
+ if(!buffered){return;}
544
+ var bufferString = "";
545
+ for(var i = 0, len = buffered.length; i < len;i++){
546
+ bufferString += buffered.end(i);
566
547
  }
567
- })
568
- ;
548
+ return bufferString;
549
+ };
550
+ var testBuffer = function(){
551
+ var buffered = getBufferedString();
552
+ if(buffered != lastBuffered){
553
+ lastBuffered = buffered;
554
+ $(elem).triggerHandler('progress');
555
+ }
556
+ };
557
+
558
+ $(this)
559
+ .on({
560
+ 'play loadstart progress': function(e){
561
+ if(e.type == 'progress'){
562
+ lastBuffered = getBufferedString();
563
+ }
564
+ clearTimeout(bufferTimer);
565
+ bufferTimer = setTimeout(testBuffer, 999);
566
+ },
567
+ 'emptied stalled mediaerror abort suspend': function(e){
568
+ if(e.type == 'emptied'){
569
+ lastBuffered = false;
570
+ }
571
+ clearTimeout(bufferTimer);
572
+ }
573
+ })
574
+ ;
575
+ })();
569
576
  }
570
577
 
571
578
  })
@@ -366,6 +366,11 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
366
366
  var hidevents = hideEvtArray.map(function(evt){
367
367
  return evt +'.webshimspolyfill';
368
368
  }).join(' ');
369
+ var opposite = {
370
+ 'html5': 'third',
371
+ 'third': 'html5'
372
+ };
373
+
369
374
 
370
375
  var hidePlayerEvents = function(event){
371
376
  var data = webshims.data(event.target, 'mediaelement');
@@ -373,8 +378,14 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
373
378
  var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
374
379
  if( isNativeHTML5 == (data.activating == 'third') ){
375
380
  event.stopImmediatePropagation();
376
- if(stopEvents[event.type] && data.isActive != data.activating){
377
- $(event.target).pause();
381
+ if(stopEvents[event.type]){
382
+ if(data.isActive != data.activating){
383
+ $(event.target).pause();
384
+ } else {
385
+ data.isActive = opposite[data.isActive];
386
+ $(event.target).pause();
387
+ data.isActive = opposite[data.isActive];
388
+ }
378
389
  }
379
390
  }
380
391
  };
@@ -508,6 +519,10 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
508
519
  box = data.shadowElem;
509
520
  resetSwfProps(data);
510
521
  } else {
522
+ var setDimensions = function(){
523
+ setElementDimension(data, $.prop(elem, 'controls'));
524
+ };
525
+
511
526
  box = $('<div class="polyfill-'+ (elemNodeName) +' polyfill-mediaelement" id="wrapper-'+ elemId +'"><div id="'+ elemId +'"></div>')
512
527
  .css({
513
528
  position: 'relative',
@@ -567,9 +582,8 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
567
582
  webshims.addShadowDom(elem, box);
568
583
  addMediaToStopEvents(elem);
569
584
  mediaelement.setActive(elem, 'third', data);
570
- $(elem).on('updatemediaelementdimensions updateshadowdom', function(){
571
- setElementDimension(data, $.prop(elem, 'controls'));
572
- });
585
+ $(document).on('updateshadowdom', setDimensions);
586
+ $(elem).on('updatemediaelementdimensions', setDimensions);
573
587
  }
574
588
 
575
589
  if(!mediaelement.jarisEvent[data.id]){
@@ -805,9 +819,8 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
805
819
  mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
806
820
  });
807
821
 
808
- if(hasFlash){
822
+ if(hasFlash && $.cleanData){
809
823
  var oldClean = $.cleanData;
810
- var gcBrowser = $.browser.msie && webshims.browserVersion < 9;
811
824
  var flashNames = {
812
825
  object: 1,
813
826
  OBJECT: 1
@@ -824,15 +837,13 @@ jQuery.webshims.register('mediaelement-jaris', function($, webshims, window, doc
824
837
  elems[i].api_pause();
825
838
  } catch(er){}
826
839
  }
827
- if(gcBrowser){
828
- try {
829
- for (prop in elems[i]) {
830
- if (typeof elems[i][prop] == "function") {
831
- elems[i][prop] = null;
832
- }
840
+ try {
841
+ for (prop in elems[i]) {
842
+ if (typeof elems[i][prop] == "function") {
843
+ elems[i][prop] = null;
833
844
  }
834
- } catch(er){}
835
- }
845
+ }
846
+ } catch(er){}
836
847
  }
837
848
  }
838
849
 
@@ -455,19 +455,29 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
455
455
  var hidevents = hideEvtArray.map(function(evt){
456
456
  return evt +'.webshimspolyfill';
457
457
  }).join(' ');
458
-
458
+ var opposite = {
459
+ 'html5': 'third',
460
+ 'third': 'html5'
461
+ };
459
462
  var hidePlayerEvents = function(event){
460
463
  var data = webshims.data(event.target, 'mediaelement');
461
464
  if(!data){return;}
462
465
  var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
463
466
  if( isNativeHTML5 == (data.activating == 'third') ){
464
467
  event.stopImmediatePropagation();
465
- if(stopEvents[event.type] && data.isActive != data.activating){
466
- $(event.target).pause();
468
+ if(stopEvents[event.type]){
469
+ if(data.isActive != data.activating){
470
+ $(event.target).pause();
471
+ } else {
472
+ data.isActive = opposite[data.isActive];
473
+ $(event.target).pause();
474
+ data.isActive = opposite[data.isActive];
475
+ }
467
476
  }
468
477
  }
469
478
  };
470
479
 
480
+
471
481
  addMediaToStopEvents = function(elem){
472
482
  $(elem)
473
483
  .off(hidevents)
@@ -599,6 +609,10 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
599
609
  overflow: 'hidden'
600
610
  })
601
611
  ;
612
+ var setDimensions = function(){
613
+ setElementDimension(data, $.prop(elem, 'controls'));
614
+ };
615
+
602
616
  data = webshims.data(elem, 'mediaelement', webshims.objectCreate(playerStateObj, {
603
617
  actionQueue: {
604
618
  value: []
@@ -671,9 +685,9 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
671
685
 
672
686
  options.changeSWF(vars, elem, canPlaySrc, data, 'embed');
673
687
 
674
- $(elem).on('updatemediaelementdimensions updateshadowdom', function(){
675
- setElementDimension(data, $.prop(elem, 'controls'));
676
- });
688
+
689
+ $(document).on('updateshadowdom', setDimensions);
690
+ $(elem).on('updatemediaelementdimensions', setDimensions);
677
691
 
678
692
 
679
693
  swfobject.embedSWF(playerSwfPath, elemId, "100%", "100%", "9.0.0", false, vars, params, attrs, function(swfData){
@@ -876,9 +890,8 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
876
890
  mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
877
891
  });
878
892
 
879
- if(hasFlash){
893
+ if(hasFlash && $.cleanData){
880
894
  var oldClean = $.cleanData;
881
- var gcBrowser = $.browser.msie && webshims.browserVersion < 9;
882
895
  var flashNames = {
883
896
  object: 1,
884
897
  OBJECT: 1
@@ -895,15 +908,13 @@ jQuery.webshims.register('mediaelement-swf', function($, webshims, window, docum
895
908
  elems[i][SENDEVENT]('play', false);
896
909
  } catch(er){}
897
910
  }
898
- if(gcBrowser){
899
- try {
900
- for (prop in elems[i]) {
901
- if (typeof elems[i][prop] == "function") {
902
- elems[i][prop] = null;
903
- }
911
+ try {
912
+ for (prop in elems[i]) {
913
+ if (typeof elems[i][prop] == "function") {
914
+ elems[i][prop] = null;
904
915
  }
905
- } catch(er){}
906
- }
916
+ }
917
+ } catch(er){}
907
918
  }
908
919
  }
909
920
 
@@ -158,6 +158,10 @@ var addMediaToStopEvents = $.noop;
158
158
  var hidevents = hideEvtArray.map(function(evt){
159
159
  return evt +'.webshimspolyfill';
160
160
  }).join(' ');
161
+ var opposite = {
162
+ 'html5': 'third',
163
+ 'third': 'html5'
164
+ };
161
165
 
162
166
  var hidePlayerEvents = function(event){
163
167
  var data = webshims.data(event.target, 'mediaelement');
@@ -165,8 +169,14 @@ var addMediaToStopEvents = $.noop;
165
169
  var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
166
170
  if( isNativeHTML5 == (data.activating == 'third') ){
167
171
  event.stopImmediatePropagation();
168
- if(stopEvents[event.type] && data.isActive != data.activating){
169
- $(event.target).pause();
172
+ if(stopEvents[event.type]){
173
+ if(data.isActive != data.activating){
174
+ $(event.target).pause();
175
+ } else {
176
+ data.isActive = opposite[data.isActive];
177
+ $(event.target).pause();
178
+ data.isActive = opposite[data.isActive];
179
+ }
170
180
  }
171
181
  }
172
182
  };
@@ -396,7 +406,10 @@ mediaelement.createSWF = function(mediaElem, src, data){
396
406
  overflow: 'hidden'
397
407
  })
398
408
  ;
399
-
409
+ var setDimensions = function(){
410
+ setElementDimension(data);
411
+ };
412
+
400
413
 
401
414
 
402
415
  data = webshims.data(mediaElem, 'mediaelement', webshims.objectCreate(playerStateObj, {
@@ -440,9 +453,8 @@ mediaelement.createSWF = function(mediaElem, src, data){
440
453
  addMediaToStopEvents(mediaElem);
441
454
 
442
455
  addYtAPI(mediaElem, elemId, data, ytID);
443
- $(mediaElem).on('updatemediaelementdimensions updateshadowdom', function(){
444
- setElementDimension(data);
445
- });
456
+ $(document).on('updateshadowdom', setDimensions);
457
+ $(mediaElem).on('updatemediaelementdimensions', setDimensions);
446
458
  };
447
459
 
448
460
  (function(){