This API requires the "management" API permission and will only work with signed themes.
This is an asynchronous function that returns a Promise.
let {id} = await browser.management.install({url});
A Promise that will be fulfilled with an object, containing the ExtensionID
defined for the theme in manifest.json.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
install |
No |
No |
63
The installable file pointed to by
url must be a theme, and not a normal browser extension. |
? |
No |
No |
? |
? |
63
The installable file pointed to by
url must be a theme, and not a normal browser extension. |
? |
? |
? |
Cycle through a list of themes:
"use strict"; let themes = [ "https://addons.mozilla.org/firefox/downloads/file/1063216/insightscare-1.0-fx.xpi", "https://addons.mozilla.org/firefox/downloads/file/1063419/orange_roses-1.0-fx.xpi", "https://addons.mozilla.org/firefox/downloads/file/1062647/sticktoyourguns-2.0-fx.xpi", "https://addons.mozilla.org/firefox/downloads/file/0/bad_url.xpi", ]; let current; async function install(url) { try { current = url; let {id} = await browser.management.install({url}); console.log("Theme installed: " + id); } catch (e) { console.error("Installation failed: " + e); } } browser.browserAction.onClicked.addListener(() => { let id = themes.indexOf(current); install(themes[(id + 1) % themes.length]); }); for (let url of themes) { browser.menus.create({ title: url, onclick: () => install(url), contexts: ["browser_action"], }); }
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/management/install