From 0335b2af2efea6ceda83e536e12094e4cc942a25 Mon Sep 17 00:00:00 2001 From: bcupac Date: Tue, 28 Jun 2022 07:23:45 +0200 Subject: [PATCH] fix: Fix MediaCapabilities polyfill on Playstation 4 (#4320) Add Playstation 5 detection to the Media Capabilities Polyfill install method. Fixes #4320 --- lib/polyfill/media_capabilities.js | 3 +++ lib/util/platform.js | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/polyfill/media_capabilities.js b/lib/polyfill/media_capabilities.js index ec8c87a251..4a59476f85 100644 --- a/lib/polyfill/media_capabilities.js +++ b/lib/polyfill/media_capabilities.js @@ -37,9 +37,12 @@ shaka.polyfill.MediaCapabilities = class { // See: https://github.com/shaka-project/shaka-player/issues/3582 // TODO: re-evaluate MediaCapabilities in the future versions of PS5 // Browsers. + // Since MediaCapabilities implementation does not exist in PS4 browsers, we + // should always install polyfill. let canUseNativeMCap = true; if (shaka.util.Platform.isApple() || shaka.util.Platform.isPS5() || + shaka.util.Platform.isPS4() || shaka.util.Platform.isChromecast()) { canUseNativeMCap = false; } diff --git a/lib/util/platform.js b/lib/util/platform.js index 04529bffd7..2976163649 100644 --- a/lib/util/platform.js +++ b/lib/util/platform.js @@ -198,7 +198,8 @@ shaka.util.Platform = class { static isApple() { return !!navigator.vendor && navigator.vendor.includes('Apple') && !shaka.util.Platform.isTizen() && - !shaka.util.Platform.isEOS(); + !shaka.util.Platform.isEOS() && + !shaka.util.Platform.isPS4(); } /** @@ -214,6 +215,13 @@ shaka.util.Platform = class { return shaka.util.Platform.userAgentContains_('PlayStation 5'); } + /** + * Check if the current platform is Playstation 4. + */ + static isPS4() { + return shaka.util.Platform.userAgentContains_('PlayStation 4'); + } + /** * Returns a major version number for Safari, or Safari-based iOS browsers. *