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