From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../extension/configurations/WindowSize.sys.mjs | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 browser/tools/mozscreenshots/mozscreenshots/extension/configurations/WindowSize.sys.mjs (limited to 'browser/tools/mozscreenshots/mozscreenshots/extension/configurations/WindowSize.sys.mjs') diff --git a/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/WindowSize.sys.mjs b/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/WindowSize.sys.mjs new file mode 100644 index 0000000000..98a4e3ec00 --- /dev/null +++ b/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/WindowSize.sys.mjs @@ -0,0 +1,68 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import { setTimeout } from "resource://gre/modules/Timer.sys.mjs"; +import { BrowserTestUtils } from "resource://testing-common/BrowserTestUtils.sys.mjs"; + +export var WindowSize = { + init(libDir) { + Services.prefs.setBoolPref("browser.fullscreen.autohide", false); + }, + + configurations: { + maximized: { + selectors: [":root"], + async applyConfig() { + let browserWindow = + Services.wm.getMostRecentWindow("navigator:browser"); + await toggleFullScreen(browserWindow, false); + + // Wait for the Lion fullscreen transition to end as there doesn't seem to be an event + // and trying to maximize while still leaving fullscreen doesn't work. + await new Promise((resolve, reject) => { + setTimeout(function waitToLeaveFS() { + browserWindow.maximize(); + resolve(); + }, 5000); + }); + }, + }, + + normal: { + selectors: [":root"], + async applyConfig() { + let browserWindow = + Services.wm.getMostRecentWindow("navigator:browser"); + await toggleFullScreen(browserWindow, false); + browserWindow.restore(); + await new Promise((resolve, reject) => { + setTimeout(resolve, 5000); + }); + }, + }, + + fullScreen: { + selectors: [":root"], + async applyConfig() { + let browserWindow = + Services.wm.getMostRecentWindow("navigator:browser"); + await toggleFullScreen(browserWindow, true); + // OS X Lion fullscreen transition takes a while + await new Promise((resolve, reject) => { + setTimeout(resolve, 5000); + }); + }, + }, + }, +}; + +function toggleFullScreen(browserWindow, wantsFS) { + browserWindow.fullScreen = wantsFS; + return BrowserTestUtils.waitForCondition(() => { + return ( + wantsFS == + browserWindow.document.documentElement.hasAttribute("inFullscreen") + ); + }, "waiting for @inFullscreen change"); +} -- cgit v1.2.3