set()

Verwenden Sie BrowserSetting.set(), um die Browsereinstellung auf einen neuen Wert zu ändern.

Es gibt einige Regeln, die einschränken können, wann Erweiterungen Einstellungen ändern dürfen:

  • Einige Einstellungen sind gesperrt, sodass sie überhaupt nicht von Erweiterungen geändert werden können.
  • Wenn mehrere Erweiterungen versuchen, dieselbe Einstellung zu ändern, wird den Erweiterungen eine Reihenfolge der Priorität zugewiesen, basierend darauf, wann sie installiert wurden. Neuere Erweiterungen haben Vorrang vor älteren Erweiterungen.

Das bedeutet, dass wenn Erweiterung X versucht, eine Einstellung zu ändern:

  1. Wenn die Einstellung gesperrt ist, wird die Einstellung nicht geändert. Allerdings wird die Änderung von X gespeichert und in einer Warteschlange abgelegt, geordnet nach der Priorität von X im Vergleich zu anderen Erweiterungen, die versucht haben, die Einstellung zu ändern. Wenn die Einstellung später entsperrt wird, kann die erste Erweiterung in der Warteschlange die Einstellung ändern.
  2. Andernfalls, wenn keine andere Erweiterung die Einstellung bereits geändert hat, kann X die Einstellung erfolgreich ändern und wird dann als die Erweiterung angesehen, die die Einstellung "kontrolliert".
  3. Andernfalls, wenn eine Erweiterung Y mit niedrigerer Priorität die Einstellung bereits geändert hat, kann X die Einstellung erfolgreich ändern und kontrolliert jetzt die Einstellung. Allerdings wird die Änderung von Y gespeichert und in einer Vorrang-Warteschlange abgelegt. Wenn X seinen Wert später löscht oder wenn X deaktiviert oder deinstalliert wird, kann die erste Erweiterung in der Warteschlange ihre Änderung an der Einstellung vornehmen.
  4. Andernfalls, wenn eine Erweiterung Z mit höherer Priorität die Einstellung bereits geändert hat, kann X die Einstellung nicht erfolgreich ändern, aber seine Änderung wird in die Warteschlange aufgenommen. Wenn Z seinen Wert später löscht oder wenn Z deaktiviert oder deinstalliert wird, kann die erste Erweiterung in der Warteschlange ihre Änderung an der Einstellung vornehmen.

Eine Erweiterung kann herausfinden, welches dieser Szenarien zutrifft, indem sie die levelOfControl-Eigenschaft untersucht, die von einem Aufruf von BrowserSetting.get() zurückgegeben wird.

Die Methode BrowserSetting.set() gibt ein Promise zurück, das in einem boolean aufgelöst wird: Wenn ein Versuch, eine Einstellung zu ändern, tatsächlich dazu führt, dass die Einstellung geändert wird (Szenarien 2 und 3 oben), ist der boolean true: andernfalls ist er false.

Syntax

js
let setting = setting.set(
  details     // object
)

Parameter

details

Ein Objekt, das die folgende Eigenschaft enthalten muss:

value

any. Der Wert, auf den Sie die Einstellung ändern möchten. Sein Typ hängt von der jeweiligen Einstellung ab.

Rückgabewert

Ein Promise, das mit einem boolean erfüllt wird: true, wenn die Einstellung geändert wurde, false andernfalls (zum Beispiel, weil die Erweiterung die Einstellung nicht kontrolliert hat).

Beispiel

Ändern Sie die Einstellung hyperlinkAuditingEnabled (dies erfordert die "privacy"-Berechtigung):

js
function onSet(result) {
  if (result) {
    console.log("Value was updated");
  } else {
    console.log("Value was not updated");
  }
}

browser.browserAction.onClicked.addListener(() => {
  let setting = browser.privacy.websites.hyperlinkAuditingEnabled.set({
    value: false,
  });
  setting.then(onSet);
});

Browser-Kompatibilität

Siehe types.BrowserSetting.

Hinweis: Diese API basiert auf der Chromium-API chrome.types.