diff --git a/browser/components/webextensions/ext-browserAction.js b/browser/components/webextensions/ext-browserAction.js index 2c82ac701a..e370cb205a 100644 --- a/browser/components/webextensions/ext-browserAction.js +++ b/browser/components/webextensions/ext-browserAction.js @@ -76,6 +76,12 @@ function BrowserAction(options, extension) { BrowserAction.prototype = { build() { + let areas = { + navbar: CustomizableUI.AREA_NAVBAR, + menupanel: CustomizableUI.AREA_PANEL, + tabstrip: CustomizableUI.AREA_TABSTRIP, + personaltoolbar: CustomizableUI.AREA_BOOKMARKS, + }; let widget = CustomizableUI.createWidget({ id: this.id, viewId: this.viewId, @@ -83,7 +89,8 @@ BrowserAction.prototype = { removable: true, label: this.defaults.title || this.extension.name, tooltiptext: this.defaults.title || "", - defaultArea: CustomizableUI.AREA_NAVBAR, + defaultArea: areas[this.extension.manifest.browser_action.default_area] || + CustomizableUI.AREA_NAVBAR, onBeforeCreated: document => { let view = document.createElementNS(XUL_NS, "panelview"); diff --git a/browser/components/webextensions/schemas/browser_action.json b/browser/components/webextensions/schemas/browser_action.json index 1a7da956a1..854a3bebbf 100644 --- a/browser/components/webextensions/schemas/browser_action.json +++ b/browser/components/webextensions/schemas/browser_action.json @@ -31,6 +31,11 @@ "browser_style": { "type": "boolean", "optional": true + }, + "default_area": { + "type": "string", + "enum": ["navbar", "menupanel", "tabstrip", "personaltoolbar"], + "optional": true } }, "optional": true diff --git a/toolkit/components/webextensions/schemas/manifest.json b/toolkit/components/webextensions/schemas/manifest.json index 636575dc04..291e668323 100644 --- a/toolkit/components/webextensions/schemas/manifest.json +++ b/toolkit/components/webextensions/schemas/manifest.json @@ -218,9 +218,12 @@ "enum": [ "alarms", "clipboardWrite", + "dns", "idle", "notifications", + "privacy", "storage" + ,"unlimitedStorage" ] }, { "$ref": "MatchPattern" }