diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 340f24d719..cc857be808 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.354", - "_release": "1.4.354", + "version": "1.4.356", + "_release": "1.4.356", "_resolution": { "type": "version", - "tag": "1.4.354", - "commit": "3d8a04970adc76c6197984d6c2e29967cfa6b25e" + "tag": "1.4.356", + "commit": "2115cec7c7cfaaa4335d3dce66e0696f41889e6b" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/backdrop/backdrop.js b/dashboard-ui/bower_components/emby-webcomponents/backdrop/backdrop.js index e833b178d5..4b02e04d96 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/backdrop/backdrop.js +++ b/dashboard-ui/bower_components/emby-webcomponents/backdrop/backdrop.js @@ -40,7 +40,7 @@ backdropImage.style.backgroundImage = "url('" + url + "')"; backdropImage.setAttribute('data-url', url); - backdropImage.style.animation = 'backdrop-fadein ' + 800 + 'ms ease-in normal both'; + backdropImage.classList.add('backdropImageFadeIn'); parent.appendChild(backdropImage); if (!enableAnimation(backdropImage)) { @@ -75,7 +75,7 @@ function cancelAnimation() { var elem = currentAnimatingElement; if (elem) { - elem.style.animation = ''; + elem.classList.remove('backdropImageFadeIn'); currentAnimatingElement = null; } } diff --git a/dashboard-ui/bower_components/emby-webcomponents/backdrop/style.css b/dashboard-ui/bower_components/emby-webcomponents/backdrop/style.css index 4ee1cf6da6..eb4a47236a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/backdrop/style.css +++ b/dashboard-ui/bower_components/emby-webcomponents/backdrop/style.css @@ -15,6 +15,10 @@ contain: layout style; } +.backdropImageFadeIn { + animation: backdrop-fadein 800ms ease-in normal both; +} + @keyframes backdrop-fadein { from { opacity: 0; @@ -23,4 +27,4 @@ to { opacity: 1; } -} \ No newline at end of file +} diff --git a/dashboard-ui/bower_components/emby-webcomponents/browser.js b/dashboard-ui/bower_components/emby-webcomponents/browser.js index 75131c8aec..ea63053507 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browser.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browser.js @@ -117,22 +117,29 @@ } var _supportsCssAnimation; - function supportsCssAnimation() { + var _supportsCssAnimationWithPrefix; + function supportsCssAnimation(allowPrefix) { - if (_supportsCssAnimation === true || _supportsCssAnimation === false) { - return _supportsCssAnimation; + if (allowPrefix) { + if (_supportsCssAnimationWithPrefix === true || _supportsCssAnimationWithPrefix === false) { + return _supportsCssAnimationWithPrefix; + } + } else { + if (_supportsCssAnimation === true || _supportsCssAnimation === false) { + return _supportsCssAnimation; + } } var animation = false, animationstring = 'animation', keyframeprefix = '', - domPrefixes = 'Webkit Moz O ms Khtml'.split(' '), + domPrefixes = ['Webkit', 'O', 'Moz'], pfx = '', elm = document.createElement('div'); if (elm.style.animationName !== undefined) { animation = true; } - if (animation === false) { + if (animation === false && allowPrefix) { for (var i = 0; i < domPrefixes.length; i++) { if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) { pfx = domPrefixes[i]; @@ -144,8 +151,13 @@ } } - _supportsCssAnimation = animation; - return _supportsCssAnimation; + if (allowPrefix) { + _supportsCssAnimationWithPrefix = animation; + return _supportsCssAnimationWithPrefix; + } else { + _supportsCssAnimation = animation; + return _supportsCssAnimation; + } } var uaMatch = function (ua) { @@ -228,6 +240,7 @@ if (userAgent.toLowerCase().indexOf("playstation 4") !== -1) { browser.ps4 = true; + browser.tv = true; } if (isMobile(userAgent)) { @@ -258,5 +271,8 @@ browser.keyboard = hasKeyboard(browser); browser.supportsCssAnimation = supportsCssAnimation; + browser.osx = userAgent.toLowerCase().indexOf('os x') !== -1; + browser.iOS = browser.ipad || browser.iphone || browser.ipod; + return browser; }); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js index 4897c4d61c..8625f406fd 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js @@ -267,7 +267,7 @@ define(['browser'], function (browser) { // Only put mp3 first if mkv support is there // Otherwise with HLS and mp3 audio we're seeing some browsers // safari is lying - if ((videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, '') && !browser.safari) || browser.edgeUwp || browser.tizen || browser.web0s) { + if ((videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, '') && !browser.osx && !browser.iOS) || browser.edgeUwp || browser.tizen || browser.web0s) { videoAudioCodecs.push('ac3'); // This works in edge desktop, but not mobile @@ -440,7 +440,7 @@ define(['browser'], function (browser) { Context: 'Streaming', Protocol: 'hls', MaxAudioChannels: physicalAudioChannels.toString(), - EnableSplittingOnNonKeyFrames: browser.safari ? true : false + EnableSplittingOnNonKeyFrames: (browser.osx || browser.iOS) ? true : false }); } diff --git a/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js b/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js index cab9e604d0..5a4d9c2cfe 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js +++ b/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js @@ -5,24 +5,12 @@ function enableAnimation() { - if (browser.animate) { - return true; - } - - if (browser.edge) { - return true; - } - - if (!browser.supportsCssAnimation()) { + // too slow + if (browser.tv) { return false; } - // An indication of an older browser - if (browser.noFlex) { - return false; - } - - return true; + return browser.supportsCssAnimation(); } function removeCenterFocus(dlg) { @@ -269,6 +257,7 @@ if (enableAnimation()) { var animated = true; + switch (dlg.animationConfig.exit.name) { case 'fadeout': @@ -440,6 +429,7 @@ } if (enableAnimation()) { + switch (dlg.animationConfig.entry.name) { case 'fadein': diff --git a/dashboard-ui/bower_components/emby-webcomponents/dom.js b/dashboard-ui/bower_components/emby-webcomponents/dom.js index 34c581d876..b98d5d1daa 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/dom.js +++ b/dashboard-ui/bower_components/emby-webcomponents/dom.js @@ -102,7 +102,7 @@ define([], function () { } var t, - el = document.createElement("fakeelement"); + el = document.createElement("div"); var animations = { "animation": "animationend", "OAnimation": "oAnimationEnd", @@ -127,7 +127,7 @@ define([], function () { } var t, - el = document.createElement("fakeelement"); + el = document.createElement("div"); var transitions = { "transition": "transitionend", "OTransition": "oTransitionEnd", diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.js b/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.js index 4733901752..e883fde735 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.js +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.js @@ -73,7 +73,7 @@ this.classList.add('emby-button'); - if (browser.safari || browser.firefox) { + if (browser.firefox) { this.classList.add('emby-button-noflex'); } diff --git a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js index dff7a76577..0fb1b57d81 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js +++ b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewcontainer-lite.js @@ -9,14 +9,11 @@ define(['browser', 'dom', 'css!./viewcontainer-lite'], function (browser, dom) { function enableAnimation() { + // too slow if (browser.tv) { return false; } - if (browser.operaTv) { - return false; - } - return browser.supportsCssAnimation(); } @@ -119,7 +116,6 @@ define(['browser', 'dom', 'css!./viewcontainer-lite'], function (browser, dom) { if (oldAnimatedPage) { if (isBack) { - oldAnimatedPage.style.animation = 'view-slideright-r ' + duration + 'ms ease-out normal both'; setAnimation(oldAnimatedPage, 'view-slideright-r ' + duration + 'ms ease-out normal both'); } else { setAnimation(oldAnimatedPage, 'view-slideleft-r ' + duration + 'ms ease-out normal both'); diff --git a/dashboard-ui/scripts/htmlmediarenderer.js b/dashboard-ui/scripts/htmlmediarenderer.js index 91fb11b4be..0c768d4ca5 100644 --- a/dashboard-ui/scripts/htmlmediarenderer.js +++ b/dashboard-ui/scripts/htmlmediarenderer.js @@ -419,7 +419,9 @@ setTracks(elem, tracks); requireHlsPlayer(function () { - var hls = new Hls(); + var hls = new Hls({ + manifestLoadingTimeOut: 20000 + }); hls.loadSource(val); hls.attachMedia(elem); hls.on(Hls.Events.MANIFEST_PARSED, function () {