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:
- 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.
- 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".
- 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.
- 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
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 kontrolliert hat).
Beispiel
Ändern Sie die Einstellung hyperlinkAuditingEnabled
(dies erfordert die "privacy"-Berechtigung):
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
.