declarativeNetRequest.updateDynamicRules()
Ändert die dynamischen Regeln der Erweiterung. Zuerst werden die Regeln mit den in options.removeRuleIds aufgeführten IDs entfernt. Anschließend werden die in options.addRules angegebenen Regeln hinzugefügt. Beachten Sie Folgendes:
- Diese Aktualisierung erfolgt als atomare Operation: Entweder werden alle angegebenen Regeln hinzugefügt und entfernt, oder es wird ein Fehler zurückgegeben.
- Diese Regeln bleiben über Browser-Sitzungen und Aktualisierungen der Erweiterung hinweg erhalten.
- Statische Regeln, die als Teil des Erweiterungspakets angegeben sind, können mit dieser Funktion nicht entfernt werden.
- Die Anzahl der dynamischen Regeln, die hinzugefügt werden können, ist begrenzt:
- In Safari und bis Chrome 119 auf den Wert von
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULESfür die Gesamtzahl der dynamischen und sitzungsgebundenen Regeln. - Bis Firefox 127 auf den Wert von
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES. - Ab Chrome 120 und Firefox 128 auf den Wert von
MAX_NUMBER_OF_DYNAMIC_RULES.
- In Safari und bis Chrome 119 auf den Wert von
Hinweis:
In Firefox 132 und früher werden dynamische Regeln nach einem Browser-Neustart mitunter nicht angewendet, und Aufrufe dieser API werden mit einem Fehler zurückgewiesen (Firefox-Bug 1921353). Als Umgehungslösung können Sie im Manifest-Schlüssel declarative_net_request ein aktiviertes statisches Regelset angeben. Die Regelset-Datei kann eine leere Liste enthalten.
Syntax
let rulesUpdated = browser.declarativeNetRequest.updateDynamicRules(
options // object
);
Parameter
options-
Ein Objekt mit Angaben zu den Regeln, die zu den dynamischen Regeln hinzugefügt oder daraus entfernt werden sollen.
addRulesOptional-
Ein Array von
declarativeNetRequest.Rule. Angaben zu den hinzuzufügenden Regeln. removeRuleIdsOptional-
Ein Array von
number. IDs der zu entfernenden Regeln. Ungültige IDs werden ignoriert.
Rückgabewert
Eine Promise. Wenn die Anfrage erfolgreich war, wird die Promise ohne Argumente erfüllt. Wenn die Anfrage fehlschlägt, wird die Promise mit einer Fehlermeldung zurückgewiesen.