management.install()

Installiert und aktiviert eine Theme-Erweiterung von der angegebenen URL.

Diese API erfordert die "management" API-Berechtigung und funktioniert nur mit signierten Themes.

Dies ist eine asynchrone Funktion, die ein Promise zurückgibt.

Syntax

js
browser.management.install(options)

Parameter

options

Ein Objekt, das die URL der XPI-Datei des Themes auf addons.mozilla.org und optional einen Hash der XPI-Datei enthält, wobei sha256 oder stärker verwendet wird.

Rückgabewert

Ein Promise, das mit einem Objekt erfüllt wird, das die in manifest.json definierte ExtensionID für das Theme enthält.

Beispiele

Durch eine Liste von Themes blättern:

js
"use strict";

const themes = [
  "https://addons.mozilla.org/en-US/firefox/downloads/file/1063216/insightscare-1.0-fx.xpi",
  "https://addons.mozilla.org/en-US/firefox/downloads/file/1063419/orange_roses-1.0-fx.xpi",
  "https://addons.mozilla.org/en-US/firefox/downloads/file/1062647/sticktoyourguns-2.0-fx.xpi",
  "https://addons.mozilla.org/en-US/firefox/downloads/file/0/bad_url.xpi",
];

let current;

async function install(url) {
  try {
    current = url;
    const { id } = await browser.management.install({ url });
    console.log(`Theme installed: ${id}`);
  } catch (e) {
    console.error(`Installation failed: ${e}`);
  }
}

browser.browserAction.onClicked.addListener(() => {
  const id = themes.indexOf(current);
  install(themes[(id + 1) % themes.length]);
});

for (const url of themes) {
  browser.menus.create({
    title: url,
    onclick: () => install(url),
    contexts: ["browser_action"],
  });
}

Browser-Kompatibilität