declarativeNetRequest.updateDynamicRules
Modifiziert die Menge der dynamischen Regeln für die Erweiterung. Die Regeln mit den in options.removeRuleIds aufgeführten IDs werden zuerst entfernt, und anschließend werden die in options.addRules angegebenen Regeln hinzugefügt. Beachten Sie, dass:
- Dieses Update als atomare Operation erfolgt: Entweder werden alle angegebenen Regeln hinzugefügt und entfernt, oder es wird ein Fehler zurückgegeben.
- Diese Regeln bleiben über Browser-Sitzungen und Erweiterungs-Updates hinweg bestehen.
- 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 kombinierte Gesamtheit der dynamischen und sitzungsbezogenen 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 manchmal nach einem Neustart des Browsers nicht angewendet, und Aufrufe dieser API werden mit einem Fehler abgelehnt (Firefox bug 1921353). Ein Workaround besteht darin, ein aktiviertes statisches Regelset im declarative_net_request Manifest-Schlüssel anzugeben. Die Regelset-Datei kann eine leere Liste sein.
Syntax
let rulesUpdated = browser.declarativeNetRequest.updateDynamicRules(
options // object
);
Parameter
options-
Ein Objekt, das Details der Regeln enthält, die hinzugefügt oder aus den dynamischen Regeln entfernt werden sollen.
addRulesOptional-
Ein Array von
declarativeNetRequest.Rule. Details der hinzuzufügenden Regeln. removeRuleIdsOptional-
Ein Array von
number. IDs der zu entfernenden Regeln. Ungültige IDs werden ignoriert.
Rückgabewert
Ein Promise. Wenn die Anfrage erfolgreich war, wird das Promise ohne Argumente erfüllt. Bei einem Fehlschlag der Anfrage wird das Promise mit einer Fehlermeldung abgelehnt.