diff --git a/src/features/web-compat.js b/src/features/web-compat.js index 781d0e8758..7b34e989fd 100644 --- a/src/features/web-compat.js +++ b/src/features/web-compat.js @@ -4,7 +4,19 @@ import { URL } from '../captured-globals.js' /** * Fixes incorrect sizing value for outerHeight and outerWidth */ -function windowSizingFix () { +function windowSizingFix (settings) { + // macOS browser incorrectly reports screen height for window.screenY / window.screenTop + if (window.screenY === window.screen.height) { + let screenYOverride = settings?.screenYOverride + + if (typeof screenYOverride === 'undefined') { + // @ts-expect-error - typescript known about availTop in this context + screenYOverride = window.screen.availTop + } + + window.screenY = window.screenTop = screenYOverride + } + if (window.outerHeight !== 0 && window.outerWidth !== 0) { return } @@ -76,7 +88,8 @@ export default class WebCompat extends ContentFeature { init () { if (this.getFeatureSettingEnabled('windowSizing')) { - windowSizingFix() + const settings = this.getFeatureSetting('windowSizing') + windowSizingFix(settings) } if (this.getFeatureSettingEnabled('navigatorCredentials')) { this.navigatorCredentialsFix()