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:
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