vendor/assets/javascripts/webshims/shims/combos/34.js in webshims-rails-1.14.3 vs vendor/assets/javascripts/webshims/shims/combos/34.js in webshims-rails-1.14.4

- old
+ new

@@ -60,11 +60,11 @@ webshims.register('dom-extend', function($, webshims, window, document, undefined){ "use strict"; var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized; var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute; var has = Object.prototype.hasOwnProperty; - webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing; + webshims.assumeARIA = true; if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){ webshims.error("IE browser modes are busted in IE10+. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools"); } @@ -79,19 +79,10 @@ if (window.$) { window.$ = webshims.$; } window.jQuery = webshims.$; } - if(webshims.M != Modernizr){ - webshims.error("Modernizr was included more than once. Make sure to include it only once! Webshims and other scripts might not work properly."); - for(var i in Modernizr){ - if(!(i in webshims.M)){ - webshims.M[i] = Modernizr[i]; - } - } - Modernizr = webshims.M; - } }; switch$(); setTimeout(switch$, 90); webshims.ready('DOM', switch$); $(switch$); @@ -416,11 +407,11 @@ var extendNativeValue = (function(){ var UNKNOWN = webshims.getPrototypeOf(document.createElement('foobar')); //see also: https://github.com/lojjic/PIE/issues/40 | https://prototype.lighthouseapp.com/projects/8886/tickets/1107-ie8-fatal-crash-when-prototypejs-is-loaded-with-rounded-cornershtc - var isExtendNativeSave = Modernizr.advancedObjectProperties && Modernizr.objectAccessor; + var isExtendNativeSave = webshims.support.advancedObjectProperties && webshims.support.objectAccessor; return function(nodeName, prop, desc){ var elem , elemProto; if( isExtendNativeSave && (elem = document.createElement(nodeName)) && (elemProto = webshims.getPrototypeOf(elem)) && UNKNOWN !== elemProto && ( !elem[prop] || !has.call(elem, prop) ) ){ var sup = elem[prop]; desc._supvalue = function(){ @@ -727,11 +718,11 @@ docObserve.handler({type: 'boxsizing'}); } }); } webshims.ready('WINDOWLOAD', this.test); - $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler); + $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel playerdimensionchange', this.handler); $(window).on('resize', this.handler); } } }; @@ -1224,11 +1215,12 @@ var mediaelement = webshims.mediaelement; var id = new Date().getTime(); //descriptions are not really shown, but they are inserted into the dom var showTracks = {subtitles: 1, captions: 1, descriptions: 1}; var dummyTrack = $('<track />'); - var supportTrackMod = Modernizr.ES5 && Modernizr.objectAccessor; + var support = webshims.support; + var supportTrackMod = support.ES5 && support.objectAccessor; var createEventTarget = function(obj){ var eventList = {}; obj.addEventListener = function(name, fn){ if(eventList[name]){ webshims.error('always use $.on to the shimed event: '+ name +' already bound fn was: '+ eventList[name] +' your fn was: '+ fn); @@ -1533,38 +1525,44 @@ }; var ttmlTextToVTT = function(ttml){ ttml = $.parseXML(ttml) || []; return $(ttml).find('[begin][end]').map(mapTtmlToVtt).get().join('\n\n') || ''; }; - + var loadingTracks = 0; + mediaelement.loadTextTrack = function(mediaelem, track, trackData, _default){ - var loadEvents = 'play playing'; + var loadEvents = 'play playing loadedmetadata loadstart'; var obj = trackData.track; var load = function(){ var error, ajax, createAjax; - var src = obj.mode != 'disabled' && ($.attr(track, 'src') && $.prop(track, 'src')); + var isDisabled = obj.mode == 'disabled'; + var videoState = !!($.prop(mediaelem, 'readyState') > 0 || $.prop(mediaelem, 'networkState') == 2 || !$.prop(mediaelem, 'paused')); + var src = (!isDisabled || videoState) && ($.attr(track, 'src') && $.prop(track, 'src')); if(src){ $(mediaelem).off(loadEvents, load).off('updatetrackdisplay', load); if(!trackData.readyState){ error = function(){ + loadingTracks--; trackData.readyState = 3; obj.cues = null; obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = null; $(track).triggerHandler('error'); }; trackData.readyState = 1; try { obj.cues = mediaelement.createCueList(); obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = mediaelement.createCueList(); + loadingTracks++; createAjax = function(){ ajax = $.ajax({ dataType: 'text', url: src, success: function(text){ - var contentType = ajax.getResponseHeader('content-type'); + loadingTracks--; + var contentType = ajax.getResponseHeader('content-type') || ''; if(!contentType.indexOf('application/xml')){ text = ttmlTextToVTT(text); } else if(contentType.indexOf('text/vtt')){ webshims.error('set the mime-type of your WebVTT files to text/vtt. see: http://dev.w3.org/html5/webvtt/#text/vtt'); @@ -1576,17 +1574,20 @@ $(mediaelem).triggerHandler('updatetrackdisplay'); } else { error(); } }); - }, error: error }); }; if($.ajax && $.ajaxSettings.xhr){ - createAjax(); + if(isDisabled){ + setTimeout(createAjax, loadingTracks * 2); + } else { + createAjax(); + } } else { webshims.ready('jajax', createAjax); webshims.loader.loadList(['jajax']); } } catch(er){ @@ -1601,17 +1602,16 @@ obj._shimActiveCues = null; obj.activeCues = null; obj.cues = null; $(mediaelem).on(loadEvents, load); + if(_default){ obj.mode = showTracks[obj.kind] ? 'showing' : 'hidden'; - webshims.ready('WINDOWLOAD', load); + load(); } else { - webshims.ready('WINDOWLOAD', function(){ - $(mediaelem).on('updatetrackdisplay', load); - }); + $(mediaelem).on('updatetrackdisplay', load); } }; mediaelement.createTextTrack = function(mediaelem, track){ var obj, trackData; @@ -1879,11 +1879,11 @@ } return baseData.textTracks; }; - if(!Modernizr.track){ + if(!support.track){ webshims.defineNodeNamesBooleanProperty(['track'], 'default'); webshims.reflectProperties(['track'], ['srclang', 'label']); webshims.defineNodeNameProperties('track', { src: { @@ -1894,11 +1894,11 @@ }); } webshims.defineNodeNameProperties('track', { kind: { - attr: Modernizr.track ? { + attr: support.track ? { set: function(value){ var trackData = webshims.data(this, 'trackData'); this.setAttribute('data-kind', value); if(trackData){ trackData.attrKind = value; @@ -1949,11 +1949,10 @@ } }); // - webshims.defineNodeNamesProperties(['track'], { ERROR: { value: 3 }, LOADED: { @@ -2059,11 +2058,11 @@ .each(function(){ updateMediaTrackList.call(this); }) .on('emptied updatetracklist wsmediareload', thUpdateList) .each(function(){ - if(Modernizr.track){ + if(support.track){ var shimedTextTracks = $.prop(this, 'textTracks'); var origTextTracks = this.textTracks; if(shimedTextTracks.length != origTextTracks.length){ webshims.warn("textTracks couldn't be copied"); @@ -2084,9 +2083,9 @@ }, 9); } }); }); - if(Modernizr.texttrackapi){ + if(support.texttrackapi){ $('video, audio').trigger('trackapichange'); } });