зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset c8f7d19d58bb (bug 1789727) for causing telemetry/marionette/tests/client/test_subsession_management.py CLOSED TREE
This commit is contained in:
Родитель
16e1274797
Коммит
801590e08e
|
@ -2409,12 +2409,8 @@ pref("browser.suppress_first_window_animation", true);
|
|||
// Preference that allows individual users to disable Screenshots.
|
||||
pref("extensions.screenshots.disabled", false);
|
||||
|
||||
// Preference that determines whether Screenshots uses the dedicated browser component
|
||||
#ifdef NIGHTLY_BUILD
|
||||
pref("screenshots.browser.component.enabled", true);
|
||||
#else
|
||||
pref("screenshots.browser.component.enabled", false);
|
||||
#endif
|
||||
// Preference that determines whether Screenshots is opened as a dedicated browser component
|
||||
pref("screenshots.browser.component.enabled", false);
|
||||
|
||||
// Preference that determines what button to focus
|
||||
pref("screenshots.browser.component.last-saved-method", "download");
|
||||
|
|
|
@ -152,13 +152,6 @@ const processes = {
|
|||
condition: WIN,
|
||||
stat: 1,
|
||||
},
|
||||
{
|
||||
// We should remove this in bug 1882427
|
||||
path: "*screenshots@mozilla.org.xpi",
|
||||
condition: true,
|
||||
ignoreIfUnused: true,
|
||||
close: 1,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
|
|
|
@ -2142,31 +2142,26 @@ BrowserGlue.prototype = {
|
|||
const COMPONENT_PREF = "screenshots.browser.component.enabled";
|
||||
const ID = "screenshots@mozilla.org";
|
||||
const _checkScreenshotsPref = async () => {
|
||||
let addon = await lazy.AddonManager.getAddonByID(ID);
|
||||
if (!addon) {
|
||||
return;
|
||||
}
|
||||
let screenshotsDisabled = Services.prefs.getBoolPref(
|
||||
SCREENSHOTS_PREF,
|
||||
false
|
||||
);
|
||||
let componentEnabled = Services.prefs.getBoolPref(COMPONENT_PREF, true);
|
||||
|
||||
let screenshotsAddon = await lazy.AddonManager.getAddonByID(ID);
|
||||
|
||||
let componentEnabled = Services.prefs.getBoolPref(COMPONENT_PREF, false);
|
||||
if (screenshotsDisabled) {
|
||||
if (componentEnabled) {
|
||||
lazy.ScreenshotsUtils.uninitialize();
|
||||
} else if (screenshotsAddon?.isActive) {
|
||||
await screenshotsAddon.disable({ allowSystemAddons: true });
|
||||
} else {
|
||||
await addon.disable({ allowSystemAddons: true });
|
||||
}
|
||||
} else if (componentEnabled) {
|
||||
lazy.ScreenshotsUtils.initialize();
|
||||
if (screenshotsAddon?.isActive) {
|
||||
await screenshotsAddon.disable({ allowSystemAddons: true });
|
||||
}
|
||||
await addon.disable({ allowSystemAddons: true });
|
||||
} else {
|
||||
try {
|
||||
await screenshotsAddon.enable({ allowSystemAddons: true });
|
||||
} catch (ex) {
|
||||
console.error(`Error trying to enable screenshots extension: ${ex}`);
|
||||
}
|
||||
await addon.enable({ allowSystemAddons: true });
|
||||
lazy.ScreenshotsUtils.uninitialize();
|
||||
}
|
||||
};
|
||||
|
@ -2437,6 +2432,7 @@ BrowserGlue.prototype = {
|
|||
LATE_TASKS_IDLE_TIME_SEC
|
||||
);
|
||||
|
||||
this._monitorScreenshotsPref();
|
||||
this._monitorWebcompatReporterPref();
|
||||
this._monitorHTTPSOnlyPref();
|
||||
this._monitorIonPref();
|
||||
|
@ -2909,9 +2905,13 @@ BrowserGlue.prototype = {
|
|||
},
|
||||
|
||||
{
|
||||
name: "BrowserGlue._monitorScreenshotsPref",
|
||||
name: "ScreenshotsUtils.initialize",
|
||||
task: () => {
|
||||
this._monitorScreenshotsPref();
|
||||
if (
|
||||
Services.prefs.getBoolPref("screenshots.browser.component.enabled")
|
||||
) {
|
||||
lazy.ScreenshotsUtils.initialize();
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
|
|
|
@ -544,12 +544,7 @@ export var ScreenshotsUtils = {
|
|||
* @param browser The current browser.
|
||||
*/
|
||||
closeOverlay(browser, options = {}) {
|
||||
// If the actor has been unregistered (e.g. if the component enabled pref is flipped false)
|
||||
// its possible getActor will throw an exception. That's ok.
|
||||
let actor;
|
||||
try {
|
||||
actor = this.getActor(browser);
|
||||
} catch (ex) {}
|
||||
let actor = this.getActor(browser);
|
||||
actor?.sendAsyncMessage("Screenshots:HideOverlay", options);
|
||||
|
||||
if (this.browserToScreenshotsState.has(browser)) {
|
||||
|
|
|
@ -9,7 +9,6 @@ const { sinon } = ChromeUtils.importESModule(
|
|||
|
||||
ChromeUtils.defineESModuleGetters(this, {
|
||||
ScreenshotsUtils: "resource:///modules/ScreenshotsUtils.sys.mjs",
|
||||
AddonManager: "resource://gre/modules/AddonManager.sys.mjs",
|
||||
});
|
||||
ChromeUtils.defineLazyGetter(this, "ExtensionManagement", () => {
|
||||
const { Management } = ChromeUtils.importESModule(
|
||||
|
@ -18,11 +17,7 @@ ChromeUtils.defineLazyGetter(this, "ExtensionManagement", () => {
|
|||
return Management;
|
||||
});
|
||||
|
||||
const COMPONENT_PREF = "screenshots.browser.component.enabled";
|
||||
const SCREENSHOTS_PREF = "extensions.screenshots.disabled";
|
||||
const SCREENSHOT_EXTENSION = "screenshots@mozilla.org";
|
||||
|
||||
add_task(async function test_toggling_screenshots_pref() {
|
||||
add_task(async function test() {
|
||||
let observerSpy = sinon.spy();
|
||||
let notifierSpy = sinon.spy();
|
||||
|
||||
|
@ -36,24 +31,13 @@ add_task(async function test_toggling_screenshots_pref() {
|
|||
ScreenshotsUtils.notify.wrappedMethod.apply(this, arguments);
|
||||
});
|
||||
|
||||
// wait for startup idle tasks to complete
|
||||
await new Promise(resolve => ChromeUtils.idleDispatch(resolve));
|
||||
ok(Services.prefs.getBoolPref(COMPONENT_PREF), "Component enabled");
|
||||
ok(!Services.prefs.getBoolPref(SCREENSHOTS_PREF), "Screenshots enabled");
|
||||
|
||||
let addon = await AddonManager.getAddonByID(SCREENSHOT_EXTENSION);
|
||||
await BrowserTestUtils.waitForCondition(
|
||||
() => !addon.isActive,
|
||||
"The extension is not active when the component is prefd on"
|
||||
);
|
||||
|
||||
await BrowserTestUtils.withNewTab(
|
||||
{
|
||||
gBrowser,
|
||||
url: SHORT_TEST_PAGE,
|
||||
},
|
||||
async browser => {
|
||||
function extensionEventPromise(eventName, id) {
|
||||
function awaitExtensionEvent(eventName, id) {
|
||||
return new Promise(resolve => {
|
||||
let listener = (_eventName, ...args) => {
|
||||
let extension = args[0];
|
||||
|
@ -65,21 +49,9 @@ add_task(async function test_toggling_screenshots_pref() {
|
|||
ExtensionManagement.on(eventName, listener);
|
||||
});
|
||||
}
|
||||
const SCREENSHOT_EXTENSION = "screenshots@mozilla.org";
|
||||
|
||||
let helper = new ScreenshotsHelper(browser);
|
||||
ok(
|
||||
addon.userDisabled,
|
||||
"The extension is disabled when the component is prefd on"
|
||||
);
|
||||
ok(
|
||||
!addon.isActive,
|
||||
"The extension is not initially active when the component is prefd on"
|
||||
);
|
||||
await BrowserTestUtils.waitForCondition(
|
||||
() => ScreenshotsUtils.initialized,
|
||||
"The component is initialized"
|
||||
);
|
||||
ok(ScreenshotsUtils.initialized, "The component is initialized");
|
||||
|
||||
ok(observerSpy.notCalled, "Observer not called");
|
||||
helper.triggerUIFromToolbar();
|
||||
|
@ -108,20 +80,12 @@ add_task(async function test_toggling_screenshots_pref() {
|
|||
|
||||
Assert.equal(observerSpy.callCount, 3, "Observer function called thrice");
|
||||
|
||||
let extensionReadyPromise = extensionEventPromise(
|
||||
"ready",
|
||||
SCREENSHOT_EXTENSION
|
||||
);
|
||||
Services.prefs.setBoolPref(COMPONENT_PREF, false);
|
||||
const COMPONENT_PREF = "screenshots.browser.component.enabled";
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [[COMPONENT_PREF, false]],
|
||||
});
|
||||
ok(!Services.prefs.getBoolPref(COMPONENT_PREF), "Extension enabled");
|
||||
|
||||
info("Waiting for the extension ready event");
|
||||
await extensionReadyPromise;
|
||||
await BrowserTestUtils.waitForCondition(
|
||||
() => !addon.userDisabled,
|
||||
"The extension gets un-disabled when the component is prefd off"
|
||||
);
|
||||
ok(addon.isActive, "Extension is active");
|
||||
await awaitExtensionEvent("ready", SCREENSHOT_EXTENSION);
|
||||
|
||||
helper.triggerUIFromToolbar();
|
||||
Assert.equal(
|
||||
|
@ -130,7 +94,6 @@ add_task(async function test_toggling_screenshots_pref() {
|
|||
"Observer function still called thrice"
|
||||
);
|
||||
|
||||
info("Waiting for the extensions overlay");
|
||||
await SpecialPowers.spawn(
|
||||
browser,
|
||||
["#firefox-screenshots-preselection-iframe"],
|
||||
|
@ -152,7 +115,6 @@ add_task(async function test_toggling_screenshots_pref() {
|
|||
}
|
||||
);
|
||||
|
||||
info("Waiting for the extensions overlay");
|
||||
helper.triggerUIFromToolbar();
|
||||
await SpecialPowers.spawn(
|
||||
browser,
|
||||
|
@ -240,7 +202,9 @@ add_task(async function test_toggling_screenshots_pref() {
|
|||
"screenshots-component-initialized"
|
||||
);
|
||||
|
||||
Services.prefs.setBoolPref(COMPONENT_PREF, true);
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [[COMPONENT_PREF, true]],
|
||||
});
|
||||
ok(Services.prefs.getBoolPref(COMPONENT_PREF), "Component enabled");
|
||||
// Needed for component to initialize
|
||||
await componentReady;
|
||||
|
@ -251,6 +215,12 @@ add_task(async function test_toggling_screenshots_pref() {
|
|||
4,
|
||||
"Observer function called four times"
|
||||
);
|
||||
|
||||
const SCREENSHOTS_PREF = "extensions.screenshots.disabled";
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [[SCREENSHOTS_PREF, true]],
|
||||
});
|
||||
ok(Services.prefs.getBoolPref(SCREENSHOTS_PREF), "Screenshots disabled");
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -260,9 +230,7 @@ add_task(async function test_toggling_screenshots_pref() {
|
|||
url: SHORT_TEST_PAGE,
|
||||
},
|
||||
async browser => {
|
||||
Services.prefs.setBoolPref(SCREENSHOTS_PREF, true);
|
||||
Services.prefs.setBoolPref(COMPONENT_PREF, true);
|
||||
|
||||
const SCREENSHOTS_PREF = "extensions.screenshots.disabled";
|
||||
ok(Services.prefs.getBoolPref(SCREENSHOTS_PREF), "Screenshots disabled");
|
||||
|
||||
ok(
|
||||
|
@ -287,22 +255,21 @@ add_task(async function test_toggling_screenshots_pref() {
|
|||
menu.hidePopup();
|
||||
await popuphidden;
|
||||
|
||||
let componentReady = TestUtils.topicObserved(
|
||||
"screenshots-component-initialized"
|
||||
);
|
||||
|
||||
Services.prefs.setBoolPref(SCREENSHOTS_PREF, false);
|
||||
|
||||
await SpecialPowers.pushPrefEnv({
|
||||
set: [[SCREENSHOTS_PREF, false]],
|
||||
});
|
||||
ok(!Services.prefs.getBoolPref(SCREENSHOTS_PREF), "Screenshots enabled");
|
||||
}
|
||||
);
|
||||
|
||||
await componentReady;
|
||||
|
||||
ok(ScreenshotsUtils.initialized, "The component is initialized");
|
||||
|
||||
ok(
|
||||
!document.getElementById("screenshot-button").disabled,
|
||||
"Toolbar button is enabled"
|
||||
);
|
||||
await BrowserTestUtils.withNewTab(
|
||||
{
|
||||
gBrowser,
|
||||
url: SHORT_TEST_PAGE,
|
||||
},
|
||||
async browser => {
|
||||
const SCREENSHOTS_PREF = "extensions.screenshots.disabled";
|
||||
ok(!Services.prefs.getBoolPref(SCREENSHOTS_PREF), "Screenshots enabled");
|
||||
|
||||
let helper = new ScreenshotsHelper(browser);
|
||||
|
||||
|
@ -317,4 +284,6 @@ add_task(async function test_toggling_screenshots_pref() {
|
|||
|
||||
observerStub.restore();
|
||||
notifierStub.restore();
|
||||
|
||||
await SpecialPowers.popPrefEnv();
|
||||
});
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
[DEFAULT]
|
||||
# The Screenshots extension is disabled by default in Mochitests. We re-enable it here, since it's a more realistic configuration.
|
||||
prefs = [
|
||||
"extensions.screenshots.disabled=false",
|
||||
"screenshots.browser.component.enabled=false",
|
||||
]
|
||||
prefs = ["extensions.screenshots.disabled=false",] # The Screenshots extension is disabled by default in Mochitests. We re-enable it here, since it's a more realistic configuration.
|
||||
|
||||
["browser_screenshot_button.js"]
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче