forked from mirrors/gecko-dev
Bug 1813108 - Add support for pinning to ExtensionSettings policy. r=willdurand
Differential Revision: https://phabricator.services.mozilla.com/D170949
This commit is contained in:
parent
fb4b7b9935
commit
a9973a08c2
3 changed files with 80 additions and 1 deletions
|
|
@ -566,6 +566,10 @@
|
||||||
},
|
},
|
||||||
"updates_disabled": {
|
"updates_disabled": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"default_area": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["navbar", "menupanel"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,3 +52,75 @@ add_task(async function testBrowserActionInTabStrip() {
|
||||||
add_task(async function testBrowserActionInPersonalToolbar() {
|
add_task(async function testBrowserActionInPersonalToolbar() {
|
||||||
await testInArea("personaltoolbar");
|
await testInArea("personaltoolbar");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
add_task(async function testPolicyOverridesBrowserActionToNavbar() {
|
||||||
|
const { EnterprisePolicyTesting } = ChromeUtils.importESModule(
|
||||||
|
"resource://testing-common/EnterprisePolicyTesting.sys.mjs"
|
||||||
|
);
|
||||||
|
await EnterprisePolicyTesting.setupPolicyEngineWithJson({
|
||||||
|
policies: {
|
||||||
|
ExtensionSettings: {
|
||||||
|
"policyBrowserActionAreaNavBarTest@mozilla.com": {
|
||||||
|
default_area: "navbar",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
let manifest = {
|
||||||
|
browser_action: {},
|
||||||
|
browser_specific_settings: {
|
||||||
|
gecko: {
|
||||||
|
id: "policyBrowserActionAreaNavBarTest@mozilla.com",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
let extension = ExtensionTestUtils.loadExtension({
|
||||||
|
manifest,
|
||||||
|
});
|
||||||
|
await extension.startup();
|
||||||
|
let widget = getBrowserActionWidget(extension);
|
||||||
|
let placement = CustomizableUI.getPlacementOfWidget(widget.id);
|
||||||
|
is(
|
||||||
|
placement && placement.area,
|
||||||
|
CustomizableUI.AREA_NAVBAR,
|
||||||
|
`widget located in nav bar`
|
||||||
|
);
|
||||||
|
await extension.unload();
|
||||||
|
});
|
||||||
|
|
||||||
|
add_task(async function testPolicyOverridesBrowserActionToMenuPanel() {
|
||||||
|
const { EnterprisePolicyTesting } = ChromeUtils.importESModule(
|
||||||
|
"resource://testing-common/EnterprisePolicyTesting.sys.mjs"
|
||||||
|
);
|
||||||
|
await EnterprisePolicyTesting.setupPolicyEngineWithJson({
|
||||||
|
policies: {
|
||||||
|
ExtensionSettings: {
|
||||||
|
"policyBrowserActionAreaMenuPanelTest@mozilla.com": {
|
||||||
|
default_area: "menupanel",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
let manifest = {
|
||||||
|
browser_action: {
|
||||||
|
default_area: "navbar",
|
||||||
|
},
|
||||||
|
browser_specific_settings: {
|
||||||
|
gecko: {
|
||||||
|
id: "policyBrowserActionAreaMenuPanelTest@mozilla.com",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
let extension = ExtensionTestUtils.loadExtension({
|
||||||
|
manifest,
|
||||||
|
});
|
||||||
|
await extension.startup();
|
||||||
|
let widget = getBrowserActionWidget(extension);
|
||||||
|
let placement = CustomizableUI.getPlacementOfWidget(widget.id);
|
||||||
|
is(
|
||||||
|
placement && placement.area,
|
||||||
|
getCustomizableUIPanelID(),
|
||||||
|
`widget located in extensions menu`
|
||||||
|
);
|
||||||
|
await extension.unload();
|
||||||
|
});
|
||||||
|
|
|
||||||
|
|
@ -513,7 +513,10 @@ class BrowserActionBase extends PanelActionBase {
|
||||||
extension.manifest.browser_action || extension.manifest.action;
|
extension.manifest.browser_action || extension.manifest.action;
|
||||||
super(options, tabContext, extension);
|
super(options, tabContext, extension);
|
||||||
|
|
||||||
let default_area = options.default_area || "menupanel";
|
let default_area =
|
||||||
|
Services.policies.getExtensionSettings(extension.id)?.default_area ||
|
||||||
|
options.default_area ||
|
||||||
|
"menupanel";
|
||||||
|
|
||||||
this.defaults = {
|
this.defaults = {
|
||||||
...this.defaults,
|
...this.defaults,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue