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/CustomizeMode.sys.mjs | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 browser/tools/mozscreenshots/mozscreenshots/extension/configurations/CustomizeMode.sys.mjs (limited to 'browser/tools/mozscreenshots/mozscreenshots/extension/configurations/CustomizeMode.sys.mjs') diff --git a/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/CustomizeMode.sys.mjs b/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/CustomizeMode.sys.mjs new file mode 100644 index 0000000000..a5a1b65b69 --- /dev/null +++ b/browser/tools/mozscreenshots/mozscreenshots/extension/configurations/CustomizeMode.sys.mjs @@ -0,0 +1,72 @@ +/* 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"; + +export var CustomizeMode = { + init(libDir) {}, + + configurations: { + notCustomizing: { + selectors: ["#navigator-toolbox"], + applyConfig() { + return new Promise(resolve => { + let browserWindow = + Services.wm.getMostRecentWindow("navigator:browser"); + if ( + !browserWindow.document.documentElement.hasAttribute("customizing") + ) { + resolve("notCustomizing: already not customizing"); + return; + } + function onCustomizationEnds() { + browserWindow.gNavToolbox.removeEventListener( + "aftercustomization", + onCustomizationEnds + ); + // Wait for final changes + setTimeout( + () => resolve("notCustomizing: onCustomizationEnds"), + 500 + ); + } + browserWindow.gNavToolbox.addEventListener( + "aftercustomization", + onCustomizationEnds + ); + browserWindow.gCustomizeMode.exit(); + }); + }, + }, + + customizing: { + selectors: ["#navigator-toolbox", "#customization-container"], + applyConfig() { + return new Promise(resolve => { + let browserWindow = + Services.wm.getMostRecentWindow("navigator:browser"); + if ( + browserWindow.document.documentElement.hasAttribute("customizing") + ) { + resolve("customizing: already customizing"); + return; + } + function onCustomizing() { + browserWindow.gNavToolbox.removeEventListener( + "customizationready", + onCustomizing + ); + // Wait for final changes + setTimeout(() => resolve("customizing: onCustomizing"), 500); + } + browserWindow.gNavToolbox.addEventListener( + "customizationready", + onCustomizing + ); + browserWindow.gCustomizeMode.enter(); + }); + }, + }, + }, +}; -- cgit v1.2.3