vendor/assets/javascripts/webshims/shims/track.js in webshims-rails-0.4.7 vs vendor/assets/javascripts/webshims/shims/track.js in webshims-rails-1.10.3

- old
+ new

@@ -28,11 +28,10 @@ } }; return obj; }; - var cueListProto = { getCueById: function(id){ var cue = null; for(var i = 0, len = this.length; i < len; i++){ if(this[i].id === id){ @@ -752,11 +751,38 @@ }); var getNativeReadyState = function(trackElem, textTrack){ return textTrack.readyState || trackElem.readyState; }; - + var stopOriginalEvent = function(e){ + if(e.originalEvent){ + e.stopImmediatePropagation(); + } + }; + var startTrackImplementation = function(){ + if(webshims.implement(this, 'track')){ + var shimedTrack = $.prop(this, 'track'); + var origTrack = this.track; + var kind; + var readyState; + if(origTrack){ + kind = $.prop(this, 'kind'); + readyState = getNativeReadyState(this, origTrack); + if (origTrack.mode || readyState) { + shimedTrack.mode = numericModes[origTrack.mode] || origTrack.mode; + } + //disable track from showing + remove UI + if(kind != 'descriptions'){ + origTrack.mode = (typeof origTrack.mode == 'string') ? 'disabled' : 0; + this.kind = 'metadata'; + $(this).attr({kind: kind}); + } + + } + $(this).on('load error', stopOriginalEvent); + } + }; webshims.addReady(function(context, insertedElement){ var insertedMedia = insertedElement.filter('video, audio, track').closest('audio, video'); $('video, audio', context) .add(insertedMedia) .each(function(){ @@ -768,36 +794,10 @@ var origTextTracks = this.textTracks; if(shimedTextTracks.length != origTextTracks.length){ webshims.error("textTracks couldn't be copied"); } - $('track', this) - .each(function(){ - var shimedTrack = $.prop(this, 'track'); - var origTrack = this.track; - var kind; - var readyState; - if(origTrack){ - kind = $.prop(this, 'kind'); - readyState = getNativeReadyState(this, origTrack); - if (origTrack.mode || readyState) { - shimedTrack.mode = numericModes[origTrack.mode] || origTrack.mode; - } - //disable track from showing + remove UI - if(kind != 'descriptions'){ - origTrack.mode = (typeof origTrack.mode == 'string') ? 'disabled' : 0; - this.kind = 'metadata'; - $(this).attr({kind: kind}); - } - - } - }) - .on('load error', function(e){ - if(e.originalEvent){ - e.stopImmediatePropagation(); - } - }) - ; + $('track', this).each(startTrackImplementation); } }) ; insertedMedia.each(function(){ var media = this; \ No newline at end of file