From 6bbc3591971ae0262d06bd24cd11019a691785ed Mon Sep 17 00:00:00 2001 From: Will Eastcott Date: Wed, 22 Apr 2026 19:21:02 +0100 Subject: [PATCH] refactor: drop vendor-prefixed Page Visibility API support The unprefixed `visibilitychange` event and `document.hidden` property are supported by all browsers the engine targets (WebGL 2 baseline). Remove the `moz`/`ms`/`webkit` fallbacks from AppBase and the now-unused `_hiddenAttr` internal property. Made-with: Cursor --- src/framework/app-base.js | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/src/framework/app-base.js b/src/framework/app-base.js index 2b7917849b4..1fdc9c7aff1 100644 --- a/src/framework/app-base.js +++ b/src/framework/app-base.js @@ -556,22 +556,8 @@ class AppBase extends EventHandler { this._visibilityChangeHandler = this.onVisibilityChange.bind(this); - // Depending on browser add the correct visibilitychange event and store the name of the - // hidden attribute in this._hiddenAttr. if (typeof document !== 'undefined') { - if (document.hidden !== undefined) { - this._hiddenAttr = 'hidden'; - document.addEventListener('visibilitychange', this._visibilityChangeHandler, false); - } else if (document.mozHidden !== undefined) { - this._hiddenAttr = 'mozHidden'; - document.addEventListener('mozvisibilitychange', this._visibilityChangeHandler, false); - } else if (document.msHidden !== undefined) { - this._hiddenAttr = 'msHidden'; - document.addEventListener('msvisibilitychange', this._visibilityChangeHandler, false); - } else if (document.webkitHidden !== undefined) { - this._hiddenAttr = 'webkitHidden'; - document.addEventListener('webkitvisibilitychange', this._visibilityChangeHandler, false); - } + document.addEventListener('visibilitychange', this._visibilityChangeHandler, false); } // bind tick function to current scope @@ -1247,7 +1233,7 @@ class AppBase extends EventHandler { * @returns {boolean} True if the application is not visible and false otherwise. */ isHidden() { - return document[this._hiddenAttr]; + return document.hidden; } /** @@ -1867,9 +1853,6 @@ class AppBase extends EventHandler { if (typeof document !== 'undefined') { document.removeEventListener('visibilitychange', this._visibilityChangeHandler, false); - document.removeEventListener('mozvisibilitychange', this._visibilityChangeHandler, false); - document.removeEventListener('msvisibilitychange', this._visibilityChangeHandler, false); - document.removeEventListener('webkitvisibilitychange', this._visibilityChangeHandler, false); } this._visibilityChangeHandler = null;