videojs_rails 4.2.1 → 4.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0dcee42bb1f916c32aef5ef86df53428fe7168ff
4
- data.tar.gz: 3a7e5a930b7854f00cc540eb97a20815a75f2edd
3
+ metadata.gz: 6bd0944242505ecd665b54fa38fc3370b6eb2ed8
4
+ data.tar.gz: 56c76e8eed49edd1f99e477afba4940be6236731
5
5
  SHA512:
6
- metadata.gz: cc75d0fadf92a1b58516bfc169a55cff9c06ee50a79534dcb212ef78646714bc98adc7663715f4ede6e1d640bd98f8e6a90faa9e32b9fa9966b3ccb9df1b732c
7
- data.tar.gz: 614e72739eca27cb1d004da5d43feb41404a6f9fc2e100ed94516ffd6f66e0fab1df79b9ccebc695818fd48e3ef70fade0dd0686c737a31d8c3a0dcfecf672e8
6
+ metadata.gz: 01a0117a1215e70ed20c3155071278c116799624bb6a05febb53414370d05f65f696b543c29c7bd5e9e04471d2d0c61615efdd10e2371ea3675ace0035b27d06
7
+ data.tar.gz: affd8b10327a06709e46d14ea50c7cbac68263a0e266e304ae7eea0ab0865b21d7c64a9238a4bbddc8304c282c7739ab8f052863d87cb616973f323bd34566d3
@@ -1,3 +1,3 @@
1
1
  module VideojsRails
2
- VERSION = "4.2.1"
2
+ VERSION = "4.2.2"
3
3
  end
File without changes
@@ -2560,7 +2560,7 @@ vjs.Player.prototype.createEl = function(){
2560
2560
  // Remove width/height attrs from tag so CSS can make it 100% width/height
2561
2561
  tag.removeAttribute('width');
2562
2562
  tag.removeAttribute('height');
2563
- // Empty video tag sources and tracks so the built-in player doesn't use them also.
2563
+ // Empty video tag tracks so the built-in player doesn't use them also.
2564
2564
  // This may not be fast enough to stop HTML5 browsers from reading the tags
2565
2565
  // so we'll need to turn off any default tracks if we're manually doing
2566
2566
  // captions and subtitles. videoElement.textTracks
@@ -2574,7 +2574,7 @@ vjs.Player.prototype.createEl = function(){
2574
2574
  while (nodesLength--) {
2575
2575
  node = nodes[nodesLength];
2576
2576
  nodeName = node.nodeName.toLowerCase();
2577
- if (nodeName === 'source' || nodeName === 'track') {
2577
+ if (nodeName === 'track') {
2578
2578
  removeNodes.push(node);
2579
2579
  }
2580
2580
  }
@@ -2627,11 +2627,10 @@ vjs.Player.prototype.loadTech = function(techName, source){
2627
2627
  if (this.tech) {
2628
2628
  this.unloadTech();
2629
2629
 
2630
- // If the first time loading, HTML5 tag will exist but won't be initialized
2631
- // So we need to remove it if we're not loading HTML5
2630
+ // if this is the first time loading, HTML5 tag will exist but won't be initialized
2631
+ // so we need to remove it if we're not loading HTML5
2632
2632
  } else if (techName !== 'Html5' && this.tag) {
2633
- this.el_.removeChild(this.tag);
2634
- this.tag['player'] = null;
2633
+ vjs.Html5.disposeMediaElement(this.tag);
2635
2634
  this.tag = null;
2636
2635
  }
2637
2636
 
@@ -2947,6 +2946,10 @@ vjs.Player.prototype.duration = function(seconds){
2947
2946
  return this;
2948
2947
  }
2949
2948
 
2949
+ if (this.cache_.duration === undefined) {
2950
+ this.onDurationChange();
2951
+ }
2952
+
2950
2953
  return this.cache_.duration;
2951
2954
  };
2952
2955
 
@@ -4510,7 +4513,7 @@ vjs.Html5 = vjs.MediaTechController.extend({
4510
4513
 
4511
4514
  // If the element source is already set, we may have missed the loadstart event, and want to trigger it.
4512
4515
  // We don't want to set the source again and interrupt playback.
4513
- if (source && this.el_.currentSrc == source.src) {
4516
+ if (source && this.el_.currentSrc === source.src && this.el_.networkState > 0) {
4514
4517
  player.trigger('loadstart');
4515
4518
 
4516
4519
  // Otherwise set the source if one was provided.
@@ -4550,19 +4553,20 @@ vjs.Html5.prototype.createEl = function(){
4550
4553
  var player = this.player_,
4551
4554
  // If possible, reuse original tag for HTML5 playback technology element
4552
4555
  el = player.tag,
4553
- newEl;
4556
+ newEl,
4557
+ clone;
4554
4558
 
4555
4559
  // Check if this browser supports moving the element into the box.
4556
4560
  // On the iPhone video will break if you move the element,
4557
4561
  // So we have to create a brand new element.
4558
4562
  if (!el || this.features['movingMediaElementInDOM'] === false) {
4559
4563
 
4560
- // If the original tag is still there, remove it.
4564
+ // If the original tag is still there, clone and remove it.
4561
4565
  if (el) {
4562
- el['player'] = null;
4566
+ clone = el.cloneNode(false);
4567
+ vjs.Html5.disposeMediaElement(el);
4568
+ el = clone;
4563
4569
  player.tag = null;
4564
- player.el().removeChild(el);
4565
- el = el.cloneNode(false);
4566
4570
  } else {
4567
4571
  el = vjs.createEl('video', {
4568
4572
  id:player.id() + '_html5_api',
@@ -4741,6 +4745,29 @@ vjs.Html5.canControlVolume = function(){
4741
4745
  // List of all HTML5 events (various uses).
4742
4746
  vjs.Html5.Events = 'loadstart,suspend,abort,error,emptied,stalled,loadedmetadata,loadeddata,canplay,canplaythrough,playing,waiting,seeking,seeked,ended,durationchange,timeupdate,progress,play,pause,ratechange,volumechange'.split(',');
4743
4747
 
4748
+ vjs.Html5.disposeMediaElement = function(el){
4749
+ if (!el) { return; }
4750
+
4751
+ el['player'] = null;
4752
+
4753
+ if (el.parentNode) {
4754
+ el.parentNode.removeChild(el);
4755
+ }
4756
+
4757
+ // remove any child track or source nodes to prevent their loading
4758
+ while(el.hasChildNodes()) {
4759
+ el.removeChild(el.firstChild);
4760
+ }
4761
+
4762
+ // remove any src reference. not setting `src=''` because that causes a warning
4763
+ // in firefox
4764
+ el.removeAttribute('src');
4765
+
4766
+ // force the media element to update its loading state by calling load()
4767
+ if (typeof el.load === 'function') {
4768
+ el.load();
4769
+ }
4770
+ };
4744
4771
 
4745
4772
  // HTML5 Feature detection and Device Fixes --------------------------------- //
4746
4773
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  Video.js Default Styles (http://videojs.com)
3
- Version 4.2.1
3
+ Version 4.2.2
4
4
  Create your own skin at http://designer.videojs.com
5
5
  */
6
6
  /* SKIN
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: videojs_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.1
4
+ version: 4.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Behan