diff --git a/modules/browser/BrowserCapabilities.js b/modules/browser/BrowserCapabilities.js index 96ff999c2b..8b0693a9c9 100644 --- a/modules/browser/BrowserCapabilities.js +++ b/modules/browser/BrowserCapabilities.js @@ -6,6 +6,10 @@ const MIN_REQUIRED_FIREFOX_VERSION = 91; const MIN_REQUIRED_SAFARI_VERSION = 14; const MIN_REQUIRED_IOS_VERSION = 14; +// Starting with iPadOS 13 the actual Safari / iPadOS version is concealed from the UA string and +// the system pretends to be macOS 10.15.7. Yeah, you read that right. +const FROZEN_MACOS_VERSION = '10.15.7'; + // TODO: Move this code to js-utils. // NOTE: Now we are extending BrowserDetection in order to preserve @@ -90,6 +94,11 @@ export default class BrowserCapabilities extends BrowserDetection { * @returns {boolean} true if the browser is supported for iOS devices */ isSupportedIOSBrowser() { + // After iPadOS 13 we have no way to know the Safari or iPadOS version, so YOLO. + if (!this.isSafari() && this.isWebKitBased() && this.getOSVersion() === FROZEN_MACOS_VERSION) { + return true; + } + return this._getSafariVersion() >= MIN_REQUIRED_IOS_VERSION || this._getIOSVersion() >= MIN_REQUIRED_IOS_VERSION; }