mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 00:35:44 +00:00
Backed out changeset e8d475fed206 (bug 1419426) for opt-test-verify failures on extensions/test/xpcshell/test_ext_browserSettings.js. r=backout a=backout on a CLOSED TREE
This commit is contained in:
parent
61f046fca5
commit
02cab34d1b
@ -2,8 +2,6 @@
|
||||
/* vim: set sts=2 sw=2 et tw=80: */
|
||||
"use strict";
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "AppConstants",
|
||||
"resource://gre/modules/AppConstants.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Services",
|
||||
"resource://gre/modules/Services.jsm");
|
||||
|
||||
@ -13,10 +11,6 @@ XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
|
||||
|
||||
Cu.import("resource://gre/modules/ExtensionPreferencesManager.jsm");
|
||||
|
||||
var {
|
||||
ExtensionError,
|
||||
} = ExtensionUtils;
|
||||
|
||||
const HOMEPAGE_OVERRIDE_SETTING = "homepage_override";
|
||||
const HOMEPAGE_URL_PREF = "browser.startup.homepage";
|
||||
const URL_STORE_TYPE = "url_overrides";
|
||||
@ -88,16 +82,6 @@ ExtensionPreferencesManager.addSetting("imageAnimationBehavior", {
|
||||
},
|
||||
});
|
||||
|
||||
ExtensionPreferencesManager.addSetting("contextMenuShowEvent", {
|
||||
prefNames: [
|
||||
"ui.context_menus.after_mouseup",
|
||||
],
|
||||
|
||||
setCallback(value) {
|
||||
return {[this.prefNames[0]]: value === "mouseup"};
|
||||
},
|
||||
});
|
||||
|
||||
ExtensionPreferencesManager.addSetting("webNotificationsDisabled", {
|
||||
prefNames: [
|
||||
"permissions.default.desktop-notification",
|
||||
@ -140,35 +124,6 @@ this.browserSettings = class extends ExtensionAPI {
|
||||
() => {
|
||||
return aboutNewTabService.newTabURL;
|
||||
}, URL_STORE_TYPE, true),
|
||||
contextMenuShowEvent: Object.assign(
|
||||
getSettingsAPI(
|
||||
extension,
|
||||
"contextMenuShowEvent",
|
||||
() => {
|
||||
if (AppConstants.platform === "win") {
|
||||
return "mouseup";
|
||||
}
|
||||
let prefValue = Services.prefs.getBoolPref(
|
||||
"ui.context_menus.after_mouseup", null);
|
||||
return prefValue ? "mouseup" : "mousedown";
|
||||
}
|
||||
),
|
||||
{
|
||||
set: details => {
|
||||
if (!["mouseup", "mousedown"].includes(details.value)) {
|
||||
throw new ExtensionError(
|
||||
`${details.value} is not a valid value for contextMenuShowEvent.`);
|
||||
}
|
||||
if (AppConstants.platform === "android" ||
|
||||
(AppConstants.platform === "win" &&
|
||||
details.value === "mousedown")) {
|
||||
return false;
|
||||
}
|
||||
return ExtensionPreferencesManager.setSetting(
|
||||
extension.id, "contextMenuShowEvent", details.value);
|
||||
},
|
||||
}
|
||||
),
|
||||
webNotificationsDisabled: getSettingsAPI(extension,
|
||||
"webNotificationsDisabled",
|
||||
() => {
|
||||
|
@ -27,12 +27,6 @@
|
||||
"type": "string",
|
||||
"enum": ["normal", "none", "once"],
|
||||
"description": "How images should be animated in the browser."
|
||||
},
|
||||
{
|
||||
"id": "ContextMenuMouseEvent",
|
||||
"type": "string",
|
||||
"enum": ["mouseup", "mousedown"],
|
||||
"description": "After which mouse event context menus should popup."
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
@ -56,10 +50,6 @@
|
||||
"$ref": "types.Setting",
|
||||
"description": "Returns the value of the overridden new tab page. Read-only."
|
||||
},
|
||||
"contextMenuShowEvent": {
|
||||
"$ref": "types.Setting",
|
||||
"description": "Controls after which mouse event context menus popup. This setting's value is of type ContextMenuMouseEvent, which has possible values of <code>mouseup</code> and <code>mousedown</code>."
|
||||
},
|
||||
"webNotificationsDisabled": {
|
||||
"$ref": "types.Setting",
|
||||
"description": "Disables webAPI notifications."
|
||||
|
@ -28,20 +28,13 @@ add_task(async function test_browser_settings() {
|
||||
"dom.popup_allowed_events": Preferences.get("dom.popup_allowed_events"),
|
||||
"image.animation_mode": "none",
|
||||
"permissions.default.desktop-notification": PERM_UNKNOWN_ACTION,
|
||||
"ui.context_menus.after_mouseup": false,
|
||||
};
|
||||
|
||||
async function background() {
|
||||
browser.test.onMessage.addListener(async (msg, apiName, value) => {
|
||||
let apiObj = browser.browserSettings[apiName];
|
||||
let result = await apiObj.set({value});
|
||||
if (msg === "set") {
|
||||
browser.test.assertTrue(result, "set returns true.");
|
||||
browser.test.sendMessage("settingData", await apiObj.get({}));
|
||||
} else {
|
||||
browser.test.assertFalse(result, "set returns false for a no-op.");
|
||||
browser.test.sendMessage("no-op set");
|
||||
}
|
||||
await apiObj.set({value});
|
||||
browser.test.sendMessage("settingData", await apiObj.get({}));
|
||||
});
|
||||
}
|
||||
|
||||
@ -80,14 +73,6 @@ add_task(async function test_browser_settings() {
|
||||
}
|
||||
}
|
||||
|
||||
async function testNoOpSetting(setting, value, expected) {
|
||||
extension.sendMessage("setNoOp", setting, value);
|
||||
await extension.awaitMessage("no-op set");
|
||||
for (let pref in expected) {
|
||||
equal(Preferences.get(pref), expected[pref], `${pref} set correctly for ${value}`);
|
||||
}
|
||||
}
|
||||
|
||||
await testSetting(
|
||||
"cacheEnabled", false,
|
||||
{
|
||||
@ -125,48 +110,7 @@ add_task(async function test_browser_settings() {
|
||||
AppConstants.MOZ_BUILD_APP !== "browser" ? undefined : PERM_UNKNOWN_ACTION,
|
||||
});
|
||||
|
||||
// This setting is a no-op on Android.
|
||||
if (AppConstants.platform === "android") {
|
||||
await testNoOpSetting("contextMenuShowEvent", "mouseup",
|
||||
{"ui.context_menus.after_mouseup": false});
|
||||
} else {
|
||||
await testSetting(
|
||||
"contextMenuShowEvent", "mouseup",
|
||||
{"ui.context_menus.after_mouseup": true});
|
||||
}
|
||||
|
||||
// "mousedown" is also a no-op on Windows.
|
||||
if (["android", "win"].includes(AppConstants.platform)) {
|
||||
await testNoOpSetting("contextMenuShowEvent", "mousedown",
|
||||
{"ui.context_menus.after_mouseup": false});
|
||||
} else {
|
||||
await testSetting(
|
||||
"contextMenuShowEvent", "mousedown",
|
||||
{"ui.context_menus.after_mouseup": false});
|
||||
}
|
||||
|
||||
await extension.unload();
|
||||
|
||||
await promiseShutdownManager();
|
||||
});
|
||||
|
||||
add_task(async function test_bad_value() {
|
||||
async function background() {
|
||||
await browser.test.assertRejects(
|
||||
browser.browserSettings.contextMenuShowEvent.set({value: "bad"}),
|
||||
/bad is not a valid value for contextMenuShowEvent/,
|
||||
"contextMenuShowEvent.set rejects with an invalid value.");
|
||||
|
||||
browser.test.sendMessage("done");
|
||||
}
|
||||
|
||||
let extension = ExtensionTestUtils.loadExtension({
|
||||
background,
|
||||
manifest: {
|
||||
permissions: ["browserSettings"],
|
||||
},
|
||||
});
|
||||
|
||||
await extension.startup();
|
||||
await extension.awaitMessage("done");
|
||||
await extension.unload();
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user