tor-browser

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

commit 9e6c5ec5b9749a0a83ef036b64f01b1c43e2b067
parent 786d57bafac11fff94375d9930550e572742e241
Author: Alexandra Borovova <aborovova@mozilla.com>
Date:   Wed,  7 Jan 2026 13:44:42 +0000

Bug 1998734 - [webdriver-bidi] Update "emulation.setScreenOrientationOverride" command reset behavior. r=jdescottes

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

Diffstat:
Mremote/webdriver-bidi/modules/root/emulation.sys.mjs | 63+++++++++++++++++++++++----------------------------------------
Mremote/webdriver-bidi/modules/windowglobal/_configuration.sys.mjs | 31++++++++++++++++++++++++++-----
2 files changed, 49 insertions(+), 45 deletions(-)

diff --git a/remote/webdriver-bidi/modules/root/emulation.sys.mjs b/remote/webdriver-bidi/modules/root/emulation.sys.mjs @@ -14,8 +14,6 @@ ChromeUtils.defineESModuleGetters(lazy, { Log: "chrome://remote/content/shared/Log.sys.mjs", NavigableManager: "chrome://remote/content/shared/NavigableManager.sys.mjs", pprint: "chrome://remote/content/shared/Format.sys.mjs", - SessionDataMethod: - "chrome://remote/content/shared/messagehandler/sessiondata/SessionData.sys.mjs", TabManager: "chrome://remote/content/shared/TabManager.sys.mjs", UserContextManager: "chrome://remote/content/shared/UserContextManager.sys.mjs", @@ -415,34 +413,16 @@ class EmulationModule extends RootBiDiModule { userContextIds ); - const sessionDataItems = []; - if (userContextIds !== null) { - for (const userContext of userContexts) { - sessionDataItems.push({ - category: "screen-orientation-override", - moduleName: "_configuration", - values: [orientationOverride], - contextDescriptor: { - type: lazy.ContextDescriptorType.UserContext, - id: userContext, - }, - method: lazy.SessionDataMethod.Add, - }); - } - } else { - for (const navigable of navigables) { - sessionDataItems.push({ - category: "screen-orientation-override", - moduleName: "_configuration", - values: [orientationOverride], - contextDescriptor: { - type: lazy.ContextDescriptorType.TopBrowsingContext, - id: navigable.browserId, - }, - method: lazy.SessionDataMethod.Add, - }); - } - } + const sessionDataItems = this.#generateSessionDataUpdate({ + category: "screen-orientation-override", + contextOverride: contextIds !== null, + hasGlobalOverride: false, + navigables, + resetValue: null, + userContexts, + userContextOverride: userContextIds !== null, + value: orientationOverride, + }); if (sessionDataItems.length) { // TODO: Bug 1953079. Saving the screen orientation override in the session data works fine @@ -451,12 +431,15 @@ class EmulationModule extends RootBiDiModule { await this.messageHandler.updateSessionData(sessionDataItems); } - for (const navigable of navigables) { - this._setEmulatedScreenOrientation({ - context: navigable, - orientationOverride, - }); - } + this.#applyOverride({ + callback: this._setEmulatedScreenOrientation, + category: "screen-orientation-override", + contextIds, + navigables, + resetValue: null, + userContextIds, + value: orientationOverride, + }); } /** @@ -779,15 +762,15 @@ class EmulationModule extends RootBiDiModule { * @param {BrowsingContext} options.context * Top-level browsing context object which is a target * for the screen orientation override. - * @param {(object|null)} options.orientationOverride + * @param {(object|null)} options.value * Screen orientation object which have to override * screen settings. * Null value resets the override. */ _setEmulatedScreenOrientation(options) { - const { context, orientationOverride } = options; - if (orientationOverride) { - const { angle, type } = orientationOverride; + const { context, value } = options; + if (value) { + const { angle, type } = value; context.setOrientationOverride(type, angle); } else { context.resetOrientationOverride(); diff --git a/remote/webdriver-bidi/modules/windowglobal/_configuration.sys.mjs b/remote/webdriver-bidi/modules/windowglobal/_configuration.sys.mjs @@ -174,7 +174,7 @@ class _ConfigurationModule extends WindowGlobalBiDiModule { }, params: { context: this.messageHandler.context, - orientationOverride: this.#screenOrientationOverride, + value: this.#screenOrientationOverride, }, }); } @@ -322,6 +322,9 @@ class _ConfigurationModule extends WindowGlobalBiDiModule { let localeOverridePerContext = null; let localeOverridePerUserContext = null; + let screenOrientationOverridePerContext = null; + let screenOrientationOverridePerUserContext = null; + let screenSettingsOverridePerContext = null; let screenSettingsOverridePerUserContext = null; @@ -377,6 +380,19 @@ class _ConfigurationModule extends WindowGlobalBiDiModule { } break; } + case "screen-orientation-override": { + switch (contextDescriptor.type) { + case lazy.ContextDescriptorType.TopBrowsingContext: { + screenOrientationOverridePerContext = value; + break; + } + case lazy.ContextDescriptorType.UserContext: { + screenOrientationOverridePerUserContext = value; + break; + } + } + break; + } case "screen-settings-override": { switch (contextDescriptor.type) { case lazy.ContextDescriptorType.TopBrowsingContext: { @@ -390,10 +406,6 @@ class _ConfigurationModule extends WindowGlobalBiDiModule { } break; } - case "screen-orientation-override": { - this.#screenOrientationOverride = value; - break; - } case "timezone-override": { switch (contextDescriptor.type) { case lazy.ContextDescriptorType.TopBrowsingContext: { @@ -447,6 +459,15 @@ class _ConfigurationModule extends WindowGlobalBiDiModule { ); break; } + case "screen-orientation-override": { + this.#screenOrientationOverride = this.#findCorrectOverrideValue( + "object", + screenOrientationOverridePerContext, + screenOrientationOverridePerUserContext + ); + + break; + } case "screen-settings-override": { this.#screenSettingsOverride = this.#findCorrectOverrideValue( "object",