From dd5cc89dac5c9814e8f41980d081887693aa0d69 Mon Sep 17 00:00:00 2001 From: Oren Me Date: Sun, 7 Oct 2018 12:50:53 +0300 Subject: [PATCH] fix(SUP-15736): autoplay fails on Safari desktop V12 (#3915) --- .../resources/mw.EmbedPlayerNative.js | 2 +- .../mediawiki/mediawiki.client.js | 22 +++++++++++++++++++ .../resources/unMuteOverlayButton.js | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/modules/EmbedPlayer/resources/mw.EmbedPlayerNative.js b/modules/EmbedPlayer/resources/mw.EmbedPlayerNative.js index fdf02ed2d8..a2e36c4104 100644 --- a/modules/EmbedPlayer/resources/mw.EmbedPlayerNative.js +++ b/modules/EmbedPlayer/resources/mw.EmbedPlayerNative.js @@ -147,7 +147,7 @@ if (!mw.getConfig('autoMute')) { if (mw.isMobileDevice() || mw.isIpad()) { return mw.getConfig('mobileAutoPlay'); - } else if ((mw.isDesktopSafari11() || mw.isChromeVersionGreaterThan(66)) && mw.getConfig('autoPlay')) { + } else if ((mw.isDesktopSafariVersionGreaterThan(11) || mw.isChromeVersionGreaterThan(66)) && mw.getConfig('autoPlay')) { if (typeof mw.getConfig('autoPlayFallbackToMute') !== 'boolean') { mw.setConfig('autoPlayFallbackToMute', true); } diff --git a/modules/MwEmbedSupport/mediawiki/mediawiki.client.js b/modules/MwEmbedSupport/mediawiki/mediawiki.client.js index 8d780d9cd5..0eb27f19c4 100755 --- a/modules/MwEmbedSupport/mediawiki/mediawiki.client.js +++ b/modules/MwEmbedSupport/mediawiki/mediawiki.client.js @@ -40,6 +40,16 @@ mw.isDesktopSafari = function () { return mw.isSafari() && !mw.isMobileDevice(); }; + mw.isDesktopSafariVersionGreaterThan = function (version) { + var safariVersion = mw.getSafariVersion(); + var safariMajorVersion = safariVersion[0]; + return ( mw.isDesktopSafari() && safariMajorVersion >= version ); + }; + mw.isSafariVersionGreaterThan = function (version) { + var safariVersion = mw.getSafariVersion(); + var safariMajorVersion = safariVersion[0]; + return ( mw.isSafari() && safariMajorVersion >= version ); + }; mw.isSafari = function () { return (/safari/).test(userAgent.toLowerCase()) && !mw.isChrome() && !mw.isEdge(); }; @@ -385,6 +395,18 @@ return '0,0,0'; }; + /** + * get safari version parts + * @returns {Array} + */ + mw.getSafariVersion = function(){ + var versionParts = [0, 0, 0]; + var version = userAgent.toLowerCase().match(/.*version\/([0-9\.]+)/); + if (version && version[1]){ + versionParts = version[1].split("."); + } + return versionParts; + }; /** * get chrome version parts * @returns {Array} diff --git a/modules/unMuteOverlayButton/resources/unMuteOverlayButton.js b/modules/unMuteOverlayButton/resources/unMuteOverlayButton.js index f73fc6888f..5c3659095f 100644 --- a/modules/unMuteOverlayButton/resources/unMuteOverlayButton.js +++ b/modules/unMuteOverlayButton/resources/unMuteOverlayButton.js @@ -20,7 +20,7 @@ isSafeEnviornment: function () { var _this = this; var browserSupportMutedAutoplay = function() { - return !!(mw.isDesktopSafari11() || mw.isChromeVersionGreaterThan(66)); + return !!(mw.isDesktopSafariVersionGreaterThan(11) || mw.isChromeVersionGreaterThan(66)); }; var isAutoplayConfigured = function() { return !!(mw.getConfig('autoPlay') || _this.getPlayer().getRawKalturaConfig('playlistAPI', 'autoPlay'));