set()
Verwenden Sie BrowserSetting.set(), um die Browsereinstellungen auf einen neuen Wert zu ändern.
Es gibt einige Regeln, die einschränken können, wann Erweiterungen in der Lage sind, Einstellungen zu ändern:
- 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 Vorrangordnung zugewiesen, basierend darauf, wann sie installiert wurden. Neuere Erweiterungen haben Vorrang vor weniger neu installierten Erweiterungen.
Das bedeutet, wenn Erweiterung X versucht, eine Einstellung zu ändern:
- Wenn die Einstellung gesperrt ist, wird die Einstellung nicht geändert. Allerdings wird die Änderung von X gespeichert und in einer Warteschlange gespeichert, geordnet nach dem Vorrang von X im Vergleich zu anderen Erweiterungen, die versucht haben, die Einstellung zu ändern. Wenn die Einstellung später freigegeben wird, darf die erste Erweiterung in der Warteschlange die Einstellung ändern.
- Andernfalls, wenn keine andere Erweiterung die Einstellung bereits geändert hat, gelingt es X, die Einstellung zu ändern, und wird dann gesagt, die Einstellung zu "kontrollieren".
- Andernfalls, wenn eine Erweiterung Y mit niedrigerem Vorrang die Einstellung bereits geändert hat, gelingt es X, die Einstellung zu ändern, und kontrolliert nun die Einstellung. Allerdings wird die Änderung von Y gespeichert und in einer Vorrang-Warteschlange gespeichert. Wenn X anschließend seinen Wert löscht oder wenn X deaktiviert oder deinstalliert wird, darf die erste Erweiterung in der Warteschlange ihre Änderung der Einstellung vornehmen.
- Andernfalls, wenn eine Erweiterung Z mit höherem Vorrang die Einstellung bereits geändert hat, gelingt es X nicht, die Einstellung zu ändern, aber seine Änderung wird in die Warteschlange eingereiht. Wenn Z anschließend seinen Wert löscht oder wenn Z deaktiviert oder deinstalliert wird, darf die erste Erweiterung in der Warteschlange ihre Änderung der Einstellung vornehmen.
Eine Erweiterung kann herausfinden, welches dieser Szenarien zutrifft, indem sie die levelOfControl-Eigenschaft überprüft, die von einem Aufruf von BrowserSetting.get() zurückgegeben wird.
Die BrowserSetting.set()-Methode gibt ein Promise zurück, das ein boolean auflöst: 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
let setting = setting.set(
details // object
)
Parameter
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 kontrollierte).
Beispiel
Ändern Sie die Einstellung hyperlinkAuditingEnabled (dies erfordert die Berechtigung "privacy"):
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
Loading…
Hinweis:
Diese API basiert auf der API chrome.types von Chromium.