diff --git a/src/components/apphost.js b/src/components/apphost.js index 1bf7e32ff8..d09d361a6e 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -117,13 +117,40 @@ define(["appSettings", "browser", "events", "htmlMediaHelper"], function(appSett var htmlMediaAutoplayAppStorageKey = "supportshtmlmediaautoplay0", supportedFeatures = function() { var features = []; - return navigator.share && features.push("sharing"), browser.edgeUwp || browser.tv || browser.xboxOne || browser.ps4 || features.push("filedownload"), browser.operaTv || browser.tizen || browser.orsay || browser.web0s ? features.push("exit") : (features.push("exitmenu"), features.push("plugins")), browser.operaTv || browser.tizen || browser.orsay || browser.web0s || browser.ps4 || (features.push("externallinks"), features.push("externalpremium")), browser.operaTv || features.push("externallinkdisplay"), supportsVoiceInput() && features.push("voiceinput"), !browser.tv && !browser.xboxOne && browser.ps4, supportsHtmlMediaAutoplay() && (features.push("htmlaudioautoplay"), features.push("htmlvideoautoplay")), browser.edgeUwp && features.push("sync"), supportsFullscreen() && features.push("fullscreenchange"), (browser.chrome || browser.edge && !browser.slow) && (browser.noAnimation || browser.edgeUwp || browser.xboxOne || features.push("imageanalysis")), AppInfo.isNativeApp && features.push("multiserver"), (browser.tv || browser.xboxOne || browser.ps4 || browser.mobile) && features.push("physicalvolumecontrol"), browser.tv || browser.xboxOne || browser.ps4 || features.push("remotecontrol"), browser.operaTv || browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp || features.push("remotevideo"), features.push("otherapppromotions"), features.push("targetblank"), browser.orsay || browser.tizen || browser.msie || !(browser.firefox || browser.ps4 || browser.edge || cueSupported()) || features.push("subtitleappearancesettings"), browser.orsay || browser.tizen || features.push("subtitleburnsettings"), browser.tv || browser.ps4 || browser.xboxOne || features.push("fileinput"), AppInfo.isNativeApp && features.push("displaylanguage"), browser.chrome && features.push("chromecast"), features - }(); - 1 === supportedFeatures.indexOf("htmlvideoautoplay") && !1 !== supportsHtmlMediaAutoplay() && require(["autoPlayDetect"], function(autoPlayDetect) { - autoPlayDetect.supportsHtmlMediaAutoplay().then(function() { - appSettings.set(htmlMediaAutoplayAppStorageKey, "true"), supportedFeatures.push("htmlvideoautoplay"), supportedFeatures.push("htmlaudioautoplay") - }, function() { - appSettings.set(htmlMediaAutoplayAppStorageKey, "false") - }) + return navigator.share && features.push("sharing"); + browser.edgeUwp || browser.tv || browser.xboxOne || browser.ps4 || features.push("filedownload"); + browser.operaTv || browser.tizen || browser.orsay || browser.web0s + ? features.push("exit") + : (features.push("exitmenu"), features.push("plugins")); + browser.operaTv || browser.tizen || browser.orsay || browser.web0s || browser.ps4 || (features.push("externallinks"), features.push("externalpremium")); + browser.operaTv || features.push("externallinkdisplay"); + supportsVoiceInput() && features.push("voiceinput"); + !browser.tv && !browser.xboxOne && browser.ps4, supportsHtmlMediaAutoplay() && (features.push("htmlaudioautoplay"), features.push("htmlvideoautoplay")); + browser.edgeUwp && features.push("sync"); + supportsFullscreen() && features.push("fullscreenchange"); + (browser.chrome || browser.edge && !browser.slow) && (browser.noAnimation || browser.edgeUwp || browser.xboxOne || features.push("imageanalysis")); + AppInfo.isNativeApp && features.push("multiserver"); + (browser.tv || browser.xboxOne || browser.ps4 || browser.mobile) && features.push("physicalvolumecontrol"); + browser.tv || browser.xboxOne || browser.ps4 || features.push("remotecontrol"); + browser.operaTv || browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp || features.push("remotevideo"); + features.push("otherapppromotions"); + features.push("targetblank"); + browser.orsay || browser.tizen || browser.msie || !(browser.firefox || browser.ps4 || browser.edge || cueSupported()) || features.push("subtitleappearancesettings"); + browser.orsay || browser.tizen || features.push("subtitleburnsettings"); + browser.tv || browser.ps4 || browser.xboxOne || features.push("fileinput"); + AppInfo.isNativeApp && features.push("displaylanguage"); + browser.chrome && features.push("chromecast"); + }(); + if (supportedFeatures.indexOf("htmlvideoautoplay") === -1 && supportsHtmlMediaAutoplay() !=== false) { + require(["autoPlayDetect"], function(autoPlayDetect) { + autoPlayDetect.supportsHtmlMediaAutoplay().then(function() { + appSettings.set(htmlMediaAutoplayAppStorageKey, "true"); + supportedFeatures.push("htmlvideoautoplay"); + supportedFeatures.push("htmlaudioautoplay"); + }, function() { + appSettings.set(htmlMediaAutoplayAppStorageKey, "false"); + }); + } }); var deviceId, deviceName, visibilityChange, visibilityState, appVersion = window.dashboardVersion || "3.0", appHost = {