Skip to content

Commit 9e6c5ec

Browse files
committed
Bug 1998734 - [webdriver-bidi] Update "emulation.setScreenOrientationOverride" command reset behavior. r=jdescottes
Differential Revision: https://phabricator.services.mozilla.com/D278001
1 parent 786d57b commit 9e6c5ec

File tree

2 files changed

+49
-45
lines changed

2 files changed

+49
-45
lines changed

remote/webdriver-bidi/modules/root/emulation.sys.mjs

Lines changed: 23 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ ChromeUtils.defineESModuleGetters(lazy, {
1414
Log: "chrome://remote/content/shared/Log.sys.mjs",
1515
NavigableManager: "chrome://remote/content/shared/NavigableManager.sys.mjs",
1616
pprint: "chrome://remote/content/shared/Format.sys.mjs",
17-
SessionDataMethod:
18-
"chrome://remote/content/shared/messagehandler/sessiondata/SessionData.sys.mjs",
1917
TabManager: "chrome://remote/content/shared/TabManager.sys.mjs",
2018
UserContextManager:
2119
"chrome://remote/content/shared/UserContextManager.sys.mjs",
@@ -415,34 +413,16 @@ class EmulationModule extends RootBiDiModule {
415413
userContextIds
416414
);
417415

418-
const sessionDataItems = [];
419-
if (userContextIds !== null) {
420-
for (const userContext of userContexts) {
421-
sessionDataItems.push({
422-
category: "screen-orientation-override",
423-
moduleName: "_configuration",
424-
values: [orientationOverride],
425-
contextDescriptor: {
426-
type: lazy.ContextDescriptorType.UserContext,
427-
id: userContext,
428-
},
429-
method: lazy.SessionDataMethod.Add,
430-
});
431-
}
432-
} else {
433-
for (const navigable of navigables) {
434-
sessionDataItems.push({
435-
category: "screen-orientation-override",
436-
moduleName: "_configuration",
437-
values: [orientationOverride],
438-
contextDescriptor: {
439-
type: lazy.ContextDescriptorType.TopBrowsingContext,
440-
id: navigable.browserId,
441-
},
442-
method: lazy.SessionDataMethod.Add,
443-
});
444-
}
445-
}
416+
const sessionDataItems = this.#generateSessionDataUpdate({
417+
category: "screen-orientation-override",
418+
contextOverride: contextIds !== null,
419+
hasGlobalOverride: false,
420+
navigables,
421+
resetValue: null,
422+
userContexts,
423+
userContextOverride: userContextIds !== null,
424+
value: orientationOverride,
425+
});
446426

447427
if (sessionDataItems.length) {
448428
// TODO: Bug 1953079. Saving the screen orientation override in the session data works fine
@@ -451,12 +431,15 @@ class EmulationModule extends RootBiDiModule {
451431
await this.messageHandler.updateSessionData(sessionDataItems);
452432
}
453433

454-
for (const navigable of navigables) {
455-
this._setEmulatedScreenOrientation({
456-
context: navigable,
457-
orientationOverride,
458-
});
459-
}
434+
this.#applyOverride({
435+
callback: this._setEmulatedScreenOrientation,
436+
category: "screen-orientation-override",
437+
contextIds,
438+
navigables,
439+
resetValue: null,
440+
userContextIds,
441+
value: orientationOverride,
442+
});
460443
}
461444

462445
/**
@@ -779,15 +762,15 @@ class EmulationModule extends RootBiDiModule {
779762
* @param {BrowsingContext} options.context
780763
* Top-level browsing context object which is a target
781764
* for the screen orientation override.
782-
* @param {(object|null)} options.orientationOverride
765+
* @param {(object|null)} options.value
783766
* Screen orientation object which have to override
784767
* screen settings.
785768
* Null value resets the override.
786769
*/
787770
_setEmulatedScreenOrientation(options) {
788-
const { context, orientationOverride } = options;
789-
if (orientationOverride) {
790-
const { angle, type } = orientationOverride;
771+
const { context, value } = options;
772+
if (value) {
773+
const { angle, type } = value;
791774
context.setOrientationOverride(type, angle);
792775
} else {
793776
context.resetOrientationOverride();

remote/webdriver-bidi/modules/windowglobal/_configuration.sys.mjs

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class _ConfigurationModule extends WindowGlobalBiDiModule {
174174
},
175175
params: {
176176
context: this.messageHandler.context,
177-
orientationOverride: this.#screenOrientationOverride,
177+
value: this.#screenOrientationOverride,
178178
},
179179
});
180180
}
@@ -322,6 +322,9 @@ class _ConfigurationModule extends WindowGlobalBiDiModule {
322322
let localeOverridePerContext = null;
323323
let localeOverridePerUserContext = null;
324324

325+
let screenOrientationOverridePerContext = null;
326+
let screenOrientationOverridePerUserContext = null;
327+
325328
let screenSettingsOverridePerContext = null;
326329
let screenSettingsOverridePerUserContext = null;
327330

@@ -377,6 +380,19 @@ class _ConfigurationModule extends WindowGlobalBiDiModule {
377380
}
378381
break;
379382
}
383+
case "screen-orientation-override": {
384+
switch (contextDescriptor.type) {
385+
case lazy.ContextDescriptorType.TopBrowsingContext: {
386+
screenOrientationOverridePerContext = value;
387+
break;
388+
}
389+
case lazy.ContextDescriptorType.UserContext: {
390+
screenOrientationOverridePerUserContext = value;
391+
break;
392+
}
393+
}
394+
break;
395+
}
380396
case "screen-settings-override": {
381397
switch (contextDescriptor.type) {
382398
case lazy.ContextDescriptorType.TopBrowsingContext: {
@@ -390,10 +406,6 @@ class _ConfigurationModule extends WindowGlobalBiDiModule {
390406
}
391407
break;
392408
}
393-
case "screen-orientation-override": {
394-
this.#screenOrientationOverride = value;
395-
break;
396-
}
397409
case "timezone-override": {
398410
switch (contextDescriptor.type) {
399411
case lazy.ContextDescriptorType.TopBrowsingContext: {
@@ -447,6 +459,15 @@ class _ConfigurationModule extends WindowGlobalBiDiModule {
447459
);
448460
break;
449461
}
462+
case "screen-orientation-override": {
463+
this.#screenOrientationOverride = this.#findCorrectOverrideValue(
464+
"object",
465+
screenOrientationOverridePerContext,
466+
screenOrientationOverridePerUserContext
467+
);
468+
469+
break;
470+
}
450471
case "screen-settings-override": {
451472
this.#screenSettingsOverride = this.#findCorrectOverrideValue(
452473
"object",

0 commit comments

Comments
 (0)