tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit d47322285bb162314fd29e81a6b67581e20ec6d9
parent 40408e15b6f5723d06f9ebfe77242e4fb767a497
Author: Alexandra Borovova <aborovova@mozilla.com>
Date:   Fri, 31 Oct 2025 16:29:53 +0000

Bug 1997556 - [webdriver-bidi] Do not override emulations when applying them to newly created browsing context. r=jdescottes

Differential Revision: https://phabricator.services.mozilla.com/D270850

Diffstat:
Mremote/webdriver-bidi/modules/windowglobal/_configuration.sys.mjs | 63+++++++++++++++++++++++++++++++++++++--------------------------
1 file changed, 37 insertions(+), 26 deletions(-)

diff --git a/remote/webdriver-bidi/modules/windowglobal/_configuration.sys.mjs b/remote/webdriver-bidi/modules/windowglobal/_configuration.sys.mjs @@ -214,16 +214,6 @@ class _ConfigurationModule extends WindowGlobalBiDiModule { } } - let localeOverridePerContext = null; - let localeOverridePerUserContext = null; - - let timezoneOverridePerContext = null; - let timezoneOverridePerUserContext = null; - - let userAgentOverrideGlobal = null; - let userAgentOverridePerUserContext = null; - let userAgentOverridePerContext = null; - // The following overrides apply only to top-level traversables. if ( (category === "geolocation-override" || @@ -234,6 +224,16 @@ class _ConfigurationModule extends WindowGlobalBiDiModule { category === "user-agent-override") && !this.messageHandler.context.parent ) { + let localeOverridePerContext = null; + let localeOverridePerUserContext = null; + + let timezoneOverridePerContext = null; + let timezoneOverridePerUserContext = null; + + let userAgentOverrideGlobal = null; + let userAgentOverridePerUserContext = null; + let userAgentOverridePerContext = null; + for (const { contextDescriptor, value } of sessionData) { if (!this.messageHandler.matchesContext(contextDescriptor)) { continue; @@ -305,23 +305,34 @@ class _ConfigurationModule extends WindowGlobalBiDiModule { } } } - } - this.#localeOverride = this.#findCorrectOverrideValue( - localeOverridePerContext, - localeOverridePerUserContext - ); - - this.#timezoneOverride = this.#findCorrectOverrideValue( - timezoneOverridePerContext, - timezoneOverridePerUserContext - ); - - this.#userAgentOverride = this.#findCorrectOverrideValue( - userAgentOverridePerContext, - userAgentOverridePerUserContext, - userAgentOverrideGlobal - ); + switch (category) { + case "locale-override": { + this.#localeOverride = this.#findCorrectOverrideValue( + localeOverridePerContext, + localeOverridePerUserContext + ); + break; + } + case "timezone-override": { + this.#timezoneOverride = this.#findCorrectOverrideValue( + timezoneOverridePerContext, + timezoneOverridePerUserContext + ); + + break; + } + case "user-agent-override": { + this.#userAgentOverride = this.#findCorrectOverrideValue( + userAgentOverridePerContext, + userAgentOverridePerUserContext, + userAgentOverrideGlobal + ); + + break; + } + } + } } // For some emulations a value set per a browsing context overrides