Aktualisierungsdatum: 2026-09-25 robots: noindex
Beschreibung
Mit der chrome.declarativeNetRequest API können Sie Netzwerk-Anfragen blockieren oder ändern, indem Sie deklarative Regeln angeben. So können Erweiterungen Netzwerkanfragen ändern, ohne sie abzufangen und ihren Inhalt einzusehen. Das bietet mehr Datenschutz.
Berechtigungen
declarativeNetRequestdeclarativeNetRequestWithHostAccessdeclarativeNetRequestFeedbackhost_permissions
Verfügbarkeit
Manifest
Zusätzlich zu den oben beschriebenen Berechtigungen muss für bestimmte Arten von Regelsätzen, insbesondere für statische Regelsätze, der Manifestschlüssel "declarative_net_request" deklariert werden. Das sollte ein Dictionary mit einem einzelnen Schlüssel namens "rule_resources" sein. Dieser Schlüssel ist ein Array, das Dictionarys vom Typ Ruleset enthält, wie unten dargestellt. Der Name „Ruleset“ wird nicht im JSON des Manifests angezeigt, da es sich nur um ein Array handelt. Statische Regelsätze werden weiter unten in diesem Dokument erläutert.
{
"name": "My extension",
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
}, {
"id": "ruleset_2",
"enabled": false,
"path": "rules_2.json"
}]
},
"permissions": [
"declarativeNetRequest",
"declarativeNetRequestFeedback",
],
"host_permissions": [
"http://www.blogger.com/*",
"http://*.google.com/*"
],
...
}
Konzepte und Nutzung
Geben Sie zum Verwenden dieser API mindestens ein Regelset an. Ein Regelsatz enthält ein Array von Regeln. Eine einzelne Regel führt eine der folgenden Aktionen aus:
- Blockieren Sie eine Netzwerkanfrage.
- Aktualisieren Sie das Schema (von HTTP zu HTTPS).
- Verhindern, dass eine Anfrage blockiert wird, indem alle übereinstimmenden blockierten Regeln negiert werden.
- Eine Netzwerkanfrage umleiten.
- Anfrage- oder Antwortheader ändern.
Es gibt drei Arten von Regelsätzen, die auf unterschiedliche Weise verwaltet werden.
- Dynamisch
- Sie bleiben über Browsersitzungen und Erweiterungs-Upgrades hinweg erhalten und werden mit JavaScript verwaltet, während eine Erweiterung verwendet wird.
- Sitzung
- Wird gelöscht, wenn der Browser geschlossen wird und wenn eine neue Version der Erweiterung installiert wird. Sitzungsregeln werden mit JavaScript verwaltet, während eine Erweiterung verwendet wird.
- Statisch
- Wird verpackt, installiert und aktualisiert, wenn eine Erweiterung installiert oder aktualisiert wird. Statische Regeln werden in JSON-formatierten Regeldateien gespeichert und in der Manifestdatei aufgeführt.
In den nächsten Abschnitten werden die Regeln für die einzelnen Regelnatztypen ausführlich erläutert.
Dynamische und sitzungsbezogene Regelsätze
Dynamische und Sitzungsregelsätze werden mit JavaScript verwaltet, während eine Erweiterung verwendet wird.
- Dynamische Regeln bleiben über Browsersitzungen und Erweiterungs-Upgrades hinweg bestehen.
- Sitzungsregeln werden gelöscht, wenn der Browser geschlossen wird und wenn eine neue Version der Erweiterung installiert wird.
Es gibt nur jeweils einen Regelsatz dieser Typen. Eine Erweiterung kann Regeln dynamisch hinzufügen oder entfernen, indem sie updateDynamicRules() und updateSessionRules() aufruft, sofern die Regelbeschränkungen nicht überschritten werden. Informationen zu den Beschränkungen für Regeln finden Sie unter Beschränkungen für Regeln. Ein Beispiel dafür finden Sie unter Codebeispiele.
Statische Regelsätze
Im Gegensatz zu dynamischen Regeln und Sitzungsregeln werden statische Regeln verpackt, installiert und aktualisiert, wenn eine Erweiterung installiert oder aktualisiert wird. Sie werden in Regeldateien im JSON-Format gespeichert, die der Erweiterung über die Schlüssel "declarative_net_request" und "rule_resources" wie oben beschrieben sowie über ein oder mehrere Ruleset-Dictionaries angegeben werden. Ein Ruleset-Dictionary enthält einen Pfad zur Regeldatei, eine ID für das in der Datei enthaltene Regelset und gibt an, ob das Regelset aktiviert oder deaktiviert ist. Die letzten beiden sind wichtig, wenn Sie ein Regelset programmatisch aktivieren oder deaktivieren.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
Wenn Sie Regelsatzdateien testen möchten, laden Sie Ihre Erweiterung entpackt. Fehler und Warnungen zu ungültigen statischen Regeln werden nur für entpackte Erweiterungen angezeigt. Ungültige statische Regeln in gepackten Erweiterungen werden ignoriert.
Statische Regeln und Regelsätze aktivieren und deaktivieren
Sowohl einzelne statische Regeln als auch vollständige statische Regelsätze können zur Laufzeit aktiviert oder deaktiviert werden.
Die aktivierten statischen Regeln und Regelsätze werden über Browsersitzungen hinweg beibehalten. Beide werden nicht bei Erweiterungsupdates beibehalten. Das bedeutet, dass nach einem Update nur die Regeln verfügbar sind, die Sie in Ihren Regeldateien belassen haben.
Aus Leistungsgründen gibt es auch Einschränkungen hinsichtlich der Anzahl der Regeln und Regelsätze, die gleichzeitig aktiviert werden können. Rufen Sie getAvailableStaticRuleCount() auf, um die Anzahl der zusätzlichen Regeln zu prüfen, die aktiviert werden können. Informationen zu den Beschränkungen für Regeln finden Sie unter Beschränkungen für Regeln.
Rufen Sie updateStaticRules() auf, um statische Regeln zu aktivieren oder zu deaktivieren. Diese Methode verwendet ein UpdateStaticRulesOptions-Objekt, das Arrays mit IDs von Regeln enthält, die aktiviert oder deaktiviert werden sollen. Die IDs werden mit dem Schlüssel "id" des Ruleset-Dictionarys definiert.
Rufen Sie updateEnabledRulesets() auf, um statische Regelsätze zu aktivieren oder zu deaktivieren. Diese Methode verwendet ein UpdateRulesetOptions-Objekt, das Arrays mit IDs von Regelsätzen enthält, die aktiviert oder deaktiviert werden sollen. Die IDs werden mit dem Schlüssel "id" des Ruleset-Dictionarys definiert.
Regeln erstellen
Unabhängig vom Typ beginnt eine Regel mit vier Feldern, wie unten dargestellt. Die Schlüssel "id" und "priority" enthalten eine Zahl, die Schlüssel "action" und "condition" können mehrere Blockierungs- und Weiterleitungsbedingungen enthalten. Die folgende Regel blockiert alle Skriptanfragen, die von "foo.com" an eine beliebige URL mit "abc" als Teilstring gesendet werden.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
Übereinstimmende Zeichen für „urlFilter“
Mit dem "condition"-Schlüssel einer Regel kann ein "urlFilter"-Schlüssel für Aktionen für URLs unter einer bestimmten Domain verwendet werden. Sie erstellen Muster mit Tokens für den Musterabgleich. Unten finden Sie einige Beispiele.
urlFilter |
Übereinstimmungen | Stimmt nicht überein |
|---|---|---|
"abc" |
https://abcd.com https://example.com/abcd |
https://ab.com |
"abc*d" |
https://abcd.com https://example.com/abcxyzd |
https://abc.com |
"||a.example.com" |
https://a.example.com/ https://b.a.example.com/xyz |
https://example.com/ |
"|https*" |
https://example.com | http://example.com/ http://https.com |
"example*^123|" |
https://example.com/123 http://abc.com/example?123 |
https://example.com/1234 https://abc.com/example0123 |
Regelpriorisierung
Regeln werden durch Anfragen ausgelöst, die von Webseiten gesendet werden. Wenn mehrere Regeln mit einer bestimmten Anfrage übereinstimmen, müssen die Regeln priorisiert werden. In diesem Abschnitt wird erläutert, wie sie priorisiert werden. Die Priorisierung erfolgt in zwei Phasen.
- Die Priorität wird für Regeln innerhalb einer Erweiterung festgelegt.
- Wenn mehrere Erweiterungen eine Regel auf eine Anfrage anwenden können, wird die Priorität für alle Erweiterungen festgelegt, die einer bestimmten Anfrage entsprechen.
Wenn Sie sich das so vorstellen: Die Regel, die von einer bestimmten Erweiterung priorisiert wird, wird dann gegenüber Regeln aus anderen Erweiterungen priorisiert.
Regelpriorisierung innerhalb einer Erweiterung
Die Priorisierung innerhalb einer einzelnen Erweiterung erfolgt so:
- Die Regel mit der höchsten vom Entwickler definierten Priorität (d. h. das Feld
"priority") wird zurückgegeben. Wenn es mehrere Regeln mit der höchsten vom Entwickler definierten Priorität gibt, werden die Regeln anhand des Felds
"action"in der folgenden Reihenfolge priorisiert:allowallowAllRequestsblockupgradeSchemeredirect
Wenn der Aktionstyp nicht
blockoderredirectist, werden alle übereinstimmendenmodifyHeaders-Regeln ausgewertet. Wenn es Regeln mit einer vom Entwickler definierten Priorität gibt, die niedriger ist als die fürallowundallowAllRequestsangegebene Priorität, werden diese Regeln ignoriert.Wenn mehrere Regeln denselben Header ändern, wird die Änderung durch das vom Entwickler definierte Feld
"priority"und die angegebenen Vorgänge bestimmt.- Wenn eine Regel an einen Header angehängt wird, können Regeln mit niedrigerer Priorität nur an diesen Header angehängt werden. Set- und Remove-Vorgänge sind nicht zulässig.
- Wenn in einer Regel ein Header festgelegt wird, können Regeln mit niedrigerer Priorität nur an diesen Header angehängt werden. Andere Änderungen sind nicht zulässig.
- Wenn durch eine Regel ein Header entfernt wird, kann er durch Regeln mit niedrigerer Priorität nicht weiter geändert werden.
Regelpriorisierung zwischen Erweiterungen
Wenn nur eine Erweiterung eine Regel hat, die mit einer Anfrage übereinstimmt, wird diese Regel angewendet. Wenn jedoch mehr als eine Erweiterung mit einer Anfrage übereinstimmt, wird das folgende Verfahren angewendet:
Regeln werden anhand des Felds
"action"in der folgenden Reihenfolge priorisiert:blockredirectoderupgradeSchemeallowoderallowAllRequests
Wenn mehrere Regeln übereinstimmen, hat die zuletzt installierte Erweiterung Priorität.
Limits für Regeln
Das Laden und Auswerten von Regeln im Browser führt zu einem Leistungsmehraufwand. Daher gelten bei der Verwendung der API einige Einschränkungen. Die Grenzwerte hängen vom Typ der verwendeten Regel ab.
Statische Regeln
Statische Regeln sind Regeln, die in Regeldateien angegeben sind, die in der Manifestdatei deklariert werden. Eine Erweiterung kann bis zu 50 statische Regelsätze als Teil des Manifestschlüssels "rule_resources" angeben. Es können jedoch nur 10 dieser Regelsätze gleichzeitig aktiviert werden. Letzteres wird als MAX_NUMBER_OF_ENABLED_STATIC_RULESETS bezeichnet. Zusammen enthalten diese Regelsätze mindestens 30.000 Regeln. Das wird als GUARANTEED_MINIMUM_STATIC_RULES bezeichnet.
Die Anzahl der danach verfügbaren Regeln hängt davon ab, wie viele Regeln durch alle Erweiterungen aktiviert werden, die im Browser eines Nutzers installiert sind. Sie können diese Nummer zur Laufzeit durch Aufrufen von getAvailableStaticRuleCount() abrufen. Ein Beispiel dafür finden Sie unter Codebeispiele.
Dynamische Regeln und Sitzungsregeln
Die Grenzwerte für dynamische Regeln und Sitzungsregeln sind einfacher als für statische Regeln. Die Gesamtzahl beider darf 5.000 nicht überschreiten. Das wird als MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES bezeichnet.
Regeln, die reguläre Ausdrücke verwenden
Für alle Arten von Regeln können reguläre Ausdrücke verwendet werden. Die Gesamtzahl der Regeln mit regulären Ausdrücken darf jedoch 1.000 nicht überschreiten. Dies wird als MAX_NUMBER_OF_REGEX_RULES bezeichnet.
Außerdem darf jede Regel nach der Kompilierung nicht größer als 2 KB sein. Dies hängt in etwa mit der Komplexität der Regel zusammen. Wenn Sie versuchen, eine Regel zu laden, die dieses Limit überschreitet, wird eine Warnung wie unten angezeigt und die Regel wird ignoriert.
rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.
Interaktionen mit Service-Workern
Eine declarativeNetRequest gilt nur für Anfragen, die den Netzwerk-Stack erreichen. Dazu gehören Antworten aus dem HTTP-Cache, aber möglicherweise nicht Antworten, die den onfetch-Handler eines Service Workers durchlaufen. declarativeNetRequest wirkt sich nicht auf Antworten aus, die vom Service Worker generiert oder aus CacheStorage abgerufen werden, aber auf Aufrufe von fetch(), die in einem Service Worker erfolgen.
Webzugängliche Ressourcen
Eine declarativeNetRequest-Regel kann nicht von einer öffentlichen Ressourcenanfrage zu einer Ressource umleiten, die nicht über das Web zugänglich ist. Andernfalls wird ein Fehler ausgelöst. Das gilt auch dann, wenn die angegebene webzugängliche Ressource der weiterleitenden Erweiterung gehört. Um Ressourcen für declarativeNetRequest zu deklarieren, verwenden Sie das Array "web_accessible_resources" des Manifests.
Beispiele
Codebeispiele
Dynamische Regeln aktualisieren
Das folgende Beispiel zeigt, wie updateDynamicRules() aufgerufen wird. Das Verfahren für updateSessionRules() ist dasselbe.
// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);
// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: oldRuleIds,
addRules: newRules
});
Statische Regelsätze aktualisieren
Das folgende Beispiel zeigt, wie Sie Regelsätze aktivieren und deaktivieren und dabei die Anzahl der verfügbaren und die maximale Anzahl der aktivierten statischen Regelsätze berücksichtigen. Das ist der Fall, wenn die Anzahl der benötigten statischen Regeln die zulässige Anzahl überschreitet. Damit dies funktioniert, müssen einige Ihrer Regelsätze installiert und einige deaktiviert sein (Einstellung "Enabled" auf false in der Manifestdatei).
async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
// Create the options structure for the call to updateEnabledRulesets()
let options = { enableRulesetIds: enableRulesetIds }
// Get the number of enabled static rules
const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
// Compare rule counts to determine if anything needs to be disabled so that
// new rules can be enabled
const proposedCount = enableRulesetIds.length;
if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
options.disableRulesetIds = disableCandidateIds
}
// Update the enabled static rules
await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}
Regelbeispiele
Die folgenden Beispiele veranschaulichen, wie Chrome Regeln in einer Erweiterung priorisiert. Wenn Sie sie überprüfen, sollten Sie die Priorisierungsregeln in einem separaten Fenster öffnen.
Der Schlüssel „priority“
Für diese Beispiele ist die Hostberechtigung für *://*.example.com/* erforderlich.
Um die Priorität einer bestimmten URL zu ermitteln, sehen Sie sich den (vom Entwickler definierten) Schlüssel "priority", den Schlüssel "action" und den Schlüssel "urlFilter" an. Diese Beispiele beziehen sich auf die unten gezeigte Beispielregeldatei.
- Navigation zu https://google.com
- Für diese URL gelten zwei Regeln: die Regeln mit den IDs 1 und 4. Regel 1 wird angewendet, da
"block"-Aktionen eine höhere Priorität als"redirect"-Aktionen haben. Die verbleibenden Regeln gelten nicht, da sie für längere URLs vorgesehen sind. - Aufruf von https://google.com/1234
- Aufgrund der längeren URL stimmt jetzt zusätzlich zu den Regeln mit den IDs 1 und 4 auch die Regel mit der ID 2. Die Regel mit der ID 2 wird angewendet, da
"allow"eine höhere Priorität als"block"und"redirect"hat. - Aufruf von https://google.com/12345
- Alle vier Regeln stimmen mit dieser URL überein. Regel mit ID 3 wird angewendet, da ihre vom Entwickler definierte Priorität die höchste in der Gruppe ist.
[
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": {"urlFilter": "google.com", "resourceTypes": ["main_frame"] }
},
{
"id": 2,
"priority": 1,
"action": { "type": "allow" },
"condition": { "urlFilter": "google.com/123", "resourceTypes": ["main_frame"] }
},
{
"id": 3,
"priority": 2,
"action": { "type": "block" },
"condition": { "urlFilter": "google.com/12345", "resourceTypes": ["main_frame"] }
},
{
"id": 4,
"priority": 1,
"action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
"condition": { "urlFilter": "google.com", "resourceTypes": ["main_frame"] }
},
]
Weiterleitungen
Für das Beispiel unten ist die Hostberechtigung für *://*.example.com/* erforderlich.
Das folgende Beispiel zeigt, wie eine Anfrage von example.com an eine Seite innerhalb der Erweiterung weitergeleitet wird. Der Erweiterungspfad /a.jpg wird zu chrome-extension://EXTENSION_ID/a.jpg aufgelöst, wobei EXTENSION_ID die ID Ihrer Erweiterung ist. Dazu muss /a.jpg im Manifest als webzugängliche Ressource deklariert werden.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
Im Folgenden wird der Schlüssel "transform" verwendet, um zu einer Subdomain von example.com weiterzuleiten. Es wird ein Domainnamenanker („||“) verwendet, um Anfragen mit einem beliebigen Schema von example.com abzufangen. Der Schlüssel "scheme" in "transform" gibt an, dass bei Weiterleitungen zur Subdomain immer „https“ verwendet wird.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
Im folgenden Beispiel werden reguläre Ausdrücke verwendet, um von https://www.abc.xyz.com/path zu https://abc.xyz.com/path weiterzuleiten. Beachten Sie, dass im "regexFilter"-Schlüssel Punkte mit Escapezeichen versehen werden und dass die Erfassungsgruppe entweder „abc“ oder „def“ auswählt. Mit dem Schlüssel "regexSubstitution" wird die erste zurückgegebene Übereinstimmung des regulären Ausdrucks mit „\1“ angegeben. In diesem Fall wird „abc“ aus der weitergeleiteten URL erfasst und in die Ersetzung eingefügt.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "https://\\1.xyz.com/"
}
},
"condition": {
"regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
"resourceTypes": [
"main_frame"
]
}
}
Header
Im folgenden Beispiel werden alle Cookies sowohl aus einem Hauptframe als auch aus allen untergeordneten Frames entfernt.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Typen
DomainType
Hier wird beschrieben, ob die Anfrage vom Erstanbieter oder Drittanbieter des Frames stammt, in dem sie generiert wurde. Eine Anfrage gilt als First-Party-Anfrage, wenn sie dieselbe Domain (eTLD+1) wie der Frame hat, in dem sie gestellt wurde.
Enum
„firstParty“
Die Netzwerkanfrage stammt von der ersten Partei des Frames, in dem sie generiert wurde.
„thirdParty“
Die Netzwerkanfrage stammt von einem Drittanbieter im Frame, in dem sie generiert wurde.
ExtensionActionOptions
Attribute
-
displayActionCountAsBadgeText
Boolesch optional
Gibt an, ob die Anzahl der Aktionen für eine Seite automatisch als Badge-Text der Erweiterung angezeigt werden soll. Diese Einstellung wird über Sitzungen hinweg beibehalten.
-
tabUpdate
TabActionCountUpdate optional
Chrome 89 und höherDetails dazu, wie die Anzahl der Aktionen auf dem Tab angepasst werden soll.
GetDisabledRuleIdsOptions
Attribute
-
rulesetId
String
Die ID, die einem statischen
Rulesetentspricht.
GetRulesFilter
Attribute
-
ruleIds
number[] optional
Falls angegeben, werden nur Regeln mit übereinstimmenden IDs berücksichtigt.
HeaderInfo
Attribute
-
excludedValues
string[] optional
Wenn diese Bedingung angegeben ist, wird sie nicht erfüllt, wenn der Header vorhanden ist, sein Wert aber mindestens ein Element in dieser Liste enthält. Dabei wird dieselbe Syntax für das Abgleichsmuster wie für
valuesverwendet. -
Header
String
Der Name des Headers. Diese Bedingung wird nur für den Namen erfüllt, wenn weder
valuesnochexcludedValuesangegeben sind. -
Werte
string[] optional
Wenn diese Bedingung angegeben ist, wird sie erfüllt, wenn der Wert des Headers mit mindestens einem Muster in dieser Liste übereinstimmt. Dies unterstützt den Abgleich von Headerwerten ohne Berücksichtigung der Groß-/Kleinschreibung sowie die folgenden Konstrukte:
* : Entspricht einer beliebigen Anzahl von Zeichen.
? : Entspricht null oder einem Zeichen.
„*“ und „?“ können mit einem umgekehrten Schrägstrich maskiert werden, z. B. „\*“ und „\?“.
HeaderOperation
Hier werden die möglichen Vorgänge für eine „modifyHeaders“-Regel beschrieben.
Enum
append
Fügt einen neuen Eintrag für den angegebenen Header hinzu. Wenn Sie die Header einer Anfrage ändern, wird dieser Vorgang nur für bestimmte Header unterstützt.
„set“
Legt einen neuen Wert für den angegebenen Header fest und entfernt alle vorhandenen Header mit demselben Namen.
„remove“
Entfernt alle Einträge für den angegebenen Header.
IsRegexSupportedResult
Attribute
-
isSupported
boolean
-
reason
UnsupportedRegexReason optional
Gibt den Grund an, warum der reguläre Ausdruck nicht unterstützt wird. Wird nur angegeben, wenn
isSupported„false“ ist.
MatchedRule
Attribute
-
ruleId
Zahl
Die ID einer Abgleichsregel.
-
rulesetId
String
Die ID des
Ruleset, zu dem diese Regel gehört. Für eine Regel, die aus der Gruppe dynamischer Regeln stammt, entspricht dieser WertDYNAMIC_RULESET_ID.
MatchedRuleInfo
Attribute
-
Regel
-
tabId
Zahl
Die „tabId“ des Tabs, von dem die Anfrage stammt, sofern der Tab noch aktiv ist. Andernfalls -1.
-
timeStamp
Zahl
Der Zeitpunkt, zu dem die Regel erfüllt wurde. Zeitstempel entsprechen der JavaScript-Konvention für Zeiten, d.h. Anzahl der Millisekunden seit der Epoche.
MatchedRuleInfoDebug
Attribute
-
Anfrage
Details zur Anfrage, für die die Regel gefunden wurde.
-
Regel
MatchedRulesFilter
Attribute
-
minTimeStamp
number optional
Falls angegeben, werden nur Regeln nach dem angegebenen Zeitstempel abgeglichen.
-
tabId
number optional
Falls angegeben, werden nur Regeln für den angegebenen Tab berücksichtigt. Entspricht Regeln, die keinem aktiven Tab zugeordnet sind, wenn der Wert auf -1 festgelegt ist.
ModifyHeaderInfo
Attribute
-
Header
String
Der Name des zu ändernden Headers.
-
Vorgang
Der Vorgang, der für einen Header ausgeführt werden soll.
-
Wert
String optional
Der neue Wert für den Header. Muss für
append- undset-Vorgänge angegeben werden.
QueryKeyValue
Attribute
-
Schlüssel
String
-
replaceOnly
Boolesch optional
Chrome 94 und höherWenn „true“, wird der Abfrageschlüssel nur ersetzt, wenn er bereits vorhanden ist. Andernfalls wird der Schlüssel auch hinzugefügt, wenn er fehlt. Die Standardeinstellung ist "false".
-
Wert
String
QueryTransform
Attribute
-
addOrReplaceParams
QueryKeyValue[] optional
Die Liste der Schlüssel/Wert-Paare für die Abfrage, die hinzugefügt oder ersetzt werden sollen.
-
removeParams
string[] optional
Die Liste der zu entfernenden Abfrageschlüssel.
Redirect
Attribute
-
extensionPath
String optional
Pfad relativ zum Erweiterungsverzeichnis. Muss mit „/“ beginnen.
-
regexSubstitution
String optional
Ersetzungsmuster für Regeln, in denen ein
regexFilterangegeben ist. Die erste Übereinstimmung vonregexFilterin der URL wird durch dieses Muster ersetzt. Innerhalb vonregexSubstitutionkönnen Escapeziffern mit Backslash (\1 bis \9) verwendet werden, um die entsprechenden Erfassungsgruppen einzufügen. \0 bezieht sich auf den gesamten übereinstimmenden Text. -
Transformation
URLTransform optional
URL-Transformationen, die ausgeführt werden sollen.
-
URL
String optional
Die Weiterleitungs-URL. Weiterleitungen zu JavaScript-URLs sind nicht zulässig.
RegexOptions
Attribute
-
isCaseSensitive
Boolesch optional
Gibt an, ob beim angegebenen
regexdie Groß-/Kleinschreibung beachtet werden soll. Standardwert ist True. -
regex
String
Der zu prüfende reguläre Ausdruck.
-
requireCapturing
Boolesch optional
Gibt an, ob die angegebene
regexerfasst werden muss. Die Erfassung ist nur für Weiterleitungsregeln erforderlich, in denen eineregexSubstition-Aktion angegeben ist. Der Standardwert ist "false".
RequestDetails
Attribute
-
documentId
String optional
Chrome 106 und höherDie eindeutige Kennung für das Dokument des Frames, falls es sich bei dieser Anfrage um einen Frame handelt.
-
documentLifecycle
DocumentLifecycle optional
Chrome 106 und höherDer Lebenszyklus des Dokuments des Frames, wenn sich diese Anfrage auf einen Frame bezieht.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt. Ein positiver Wert gibt die ID eines Unterframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Unter-)Frames geladen wird (
typeistmain_frameodersub_frame), gibtframeIddie ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameType
FrameType optional
Chrome 106 und höherDer Typ des Frames, wenn es sich bei dieser Anfrage um einen Frame handelt.
-
Initiator
String optional
Der Ursprung, von dem die Anfrage initiiert wurde. Das ändert sich auch durch Weiterleitungen nicht. Wenn es sich um einen undurchsichtigen Ursprung handelt, wird der String „null“ verwendet.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 und höherDie eindeutige Kennung für das übergeordnete Dokument des Frames, wenn diese Anfrage für einen Frame gilt und ein übergeordnetes Dokument vorhanden ist.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, der die Anfrage gesendet hat. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig.
-
tabId
Zahl
Die ID des Tabs, auf dem die Anfrage erfolgt. Auf -1 gesetzt, wenn die Anfrage nicht mit einem Tab zusammenhängt.
-
Typ
Der Ressourcentyp der Anfrage.
-
URL
String
Die URL der Anfrage.
RequestMethod
Hier wird die HTTP-Anfragemethode einer Netzwerkanfrage beschrieben.
Enum
„connect“
„delete“
„get“
"head"
"options"
"patch"
"post"
"put"
„other“
ResourceType
Hier wird der Ressourcentyp der Netzwerkanfrage beschrieben.
Enum
"main_frame"
"sub_frame"
"stylesheet"
"script"
"image"
"font"
„object“
"xmlhttprequest"
„ping“
"csp_report"
"media"
"websocket"
"webtransport"
"webbundle"
„other“
Rule
Attribute
-
Aktion
Die Aktion, die ausgeführt werden soll, wenn diese Regel übereinstimmt.
-
Bedingung
Die Bedingung, unter der diese Regel ausgelöst wird.
-
id
Zahl
Eine ID, die eine Regel eindeutig identifiziert. Erforderlich und muss >= 1 sein.
-
priority
number optional
Regelpriorität Der Standardfaktor ist 1. Wenn angegeben, sollte der Wert >= 1 sein.
RuleAction
Attribute
-
weiterleiten
Weiterleitung optional
Beschreibt, wie die Weiterleitung erfolgen soll. Nur für Weiterleitungsregeln gültig.
-
requestHeaders
ModifyHeaderInfo[] optional
Chrome 86 und höherDie Anfrageheader, die für die Anfrage geändert werden sollen. Nur gültig, wenn „RuleActionType“ auf „modifyHeaders“ festgelegt ist.
-
responseHeaders
ModifyHeaderInfo[] optional
Chrome 86 und höherDie Antwortheader, die für die Anfrage geändert werden sollen. Nur gültig, wenn „RuleActionType“ auf „modifyHeaders“ festgelegt ist.
-
Typ
Die Art der auszuführenden Aktion.
RuleActionType
Beschreibt die Art der Aktion, die ausgeführt werden soll, wenn eine bestimmte RuleCondition übereinstimmt.
Enum
„block“
Netzwerkanfrage blockieren.
„redirect“
Netzwerkanfrage weiterleiten:
allow
Die Netzwerkanfrage zulassen. Die Anfrage wird nicht abgefangen, wenn es eine „Zulassen“-Regel gibt, die mit ihr übereinstimmt.
„upgradeScheme“
Das Schema der URL der Netzwerkanfrage wird auf „https“ aktualisiert, wenn die Anfrage „http“ oder „ftp“ ist.
„modifyHeaders“
Anfrage-/Antwortheader aus der Netzwerkanfrage ändern.
allowAllRequests
Alle Anfragen innerhalb einer Frame-Hierarchie zulassen, einschließlich der Frame-Anfrage selbst.
RuleCondition
Attribute
-
domainType
DomainType optional
Gibt an, ob die Netzwerkanfrage für die Domain, von der sie stammt, von einem Erstanbieter oder einem Drittanbieter stammt. Wenn diese Option nicht angegeben wird, werden alle Anfragen akzeptiert.
-
Domains
string[] optional
Seit Chrome 101 eingestelltVerwenden Sie stattdessen
initiatorDomains.Die Regel stimmt nur mit Netzwerkanfragen überein, die aus der Liste der
domainsstammen. -
excludedDomains
string[] optional
Seit Chrome 101 eingestelltVerwenden Sie stattdessen
excludedInitiatorDomains.Die Regel stimmt nicht mit Netzwerkanfragen überein, die von der Liste der
excludedDomainsstammen. -
excludedInitiatorDomains
string[] optional
Chrome 101 und höherDie Regel stimmt nicht mit Netzwerkanfragen überein, die von der Liste der
excludedInitiatorDomainsstammen. Wenn die Liste leer ist oder weggelassen wird, werden keine Domains ausgeschlossen. Dies hat Vorrang vorinitiatorDomains.Hinweise:
- Subdomains wie „a.beispiel.de“ sind ebenfalls zulässig.
- Die Einträge dürfen nur aus ASCII-Zeichen bestehen.
- Verwenden Sie die Punycode-Codierung für internationalisierte Domains.
- Dies entspricht dem Initiator der Anfrage und nicht der Anfrage-URL.
- Subdomains der aufgeführten Domains sind ebenfalls ausgeschlossen.
-
excludedRequestDomains
string[] optional
Chrome 101 und höherDie Regel stimmt nicht mit Netzwerkanfragen überein, wenn die Domain mit einer Domain aus der Liste
excludedRequestDomainsübereinstimmt. Wenn die Liste leer ist oder weggelassen wird, werden keine Domains ausgeschlossen. Dies hat Vorrang vorrequestDomains.Hinweise:
- Subdomains wie „a.beispiel.de“ sind ebenfalls zulässig.
- Die Einträge dürfen nur aus ASCII-Zeichen bestehen.
- Verwenden Sie die Punycode-Codierung für internationalisierte Domains.
- Subdomains der aufgeführten Domains sind ebenfalls ausgeschlossen.
-
excludedRequestMethods
RequestMethod[] optional
Chrome 91 und höherListe der Anfragemethoden, die nicht mit der Regel übereinstimmen. Es sollte nur eines von
requestMethodsundexcludedRequestMethodsangegeben werden. Wenn keine der beiden angegeben ist, werden alle Anfragemethoden abgeglichen. -
excludedResourceTypes
ResourceType[] optional
Liste der Ressourcentypen, die nicht mit der Regel übereinstimmen. Es sollte nur eines von
resourceTypesundexcludedResourceTypesangegeben werden. Wenn keiner der beiden angegeben ist, werden alle Ressourcentypen mit Ausnahme von „main_frame“ blockiert. -
excludedResponseHeaders
HeaderInfo[] optional
Chrome 128 und höherDie Regel stimmt nicht überein, wenn die Anfrage einer Antwortheader-Bedingung in dieser Liste entspricht (falls angegeben). Wenn sowohl
excludedResponseHeadersals auchresponseHeadersangegeben sind, hat das AttributexcludedResponseHeadersVorrang. -
excludedTabIds
number[] optional
Chrome 92 und höherListe der
tabs.Tab.id, die nicht mit der Regel übereinstimmen sollen. Eine ID vontabs.TAB_ID_NONEschließt Anfragen aus, die nicht von einem Tab stammen. Wird nur für Regeln auf Sitzungsebene unterstützt. -
excludedTopDomains
string[] optional
Chrome 145 und höherDie Regel stimmt nicht mit Netzwerkanfragen überein, wenn die Domain des zugehörigen Frames der obersten Ebene mit einer Domain aus der Liste der
excludedTopDomainsübereinstimmt. Wenn die Liste leer ist oder weggelassen wird, werden keine Domains ausgeschlossen. Dies hat Vorrang vortopDomains.Hinweise:
- Subdomains wie „a.beispiel.de“ sind ebenfalls zulässig.
- Die Einträge dürfen nur aus ASCII-Zeichen bestehen.
- Verwenden Sie die Punycode-Codierung für internationalisierte Domains.
- Subdomains der aufgeführten Domains sind ebenfalls ausgeschlossen.
- Bei Anfragen ohne zugehörigen Frame der obersten Ebene (z.B. von ServiceWorker initiierte Anfragen) wird stattdessen die Domain des Initiators der Anfrage berücksichtigt.
-
initiatorDomains
string[] optional
Chrome 101 und höherDie Regel stimmt nur mit Netzwerkanfragen überein, die aus der Liste der
initiatorDomainsstammen. Wenn die Liste nicht angegeben ist, wird die Regel auf Anfragen von allen Domains angewendet. Eine leere Liste ist nicht zulässig.Hinweise:
- Subdomains wie „a.beispiel.de“ sind ebenfalls zulässig.
- Die Einträge dürfen nur aus ASCII-Zeichen bestehen.
- Verwenden Sie die Punycode-Codierung für internationalisierte Domains.
- Dies entspricht dem Initiator der Anfrage und nicht der Anfrage-URL.
- Subdomains der aufgeführten Domains werden ebenfalls berücksichtigt.
-
isUrlFilterCaseSensitive
Boolesch optional
Gibt an, ob bei
urlFilteroderregexFilter(je nachdem, was angegeben ist) zwischen Groß- und Kleinschreibung unterschieden wird. Der Standardwert ist "false". -
regexFilter
String optional
Regulärer Ausdruck für den Abgleich mit der URL der Netzwerkanfrage. Dabei wird die RE2-Syntax verwendet.
Hinweis: Es kann nur entweder
urlFilteroderregexFilterangegeben werden.Hinweis: Die
regexFilterdarf nur aus ASCII-Zeichen bestehen. Der Ausdruck wird mit einer URL abgeglichen, bei der der Host (im Fall internationalisierter Domains) im Punycode-Format codiert ist und alle anderen Nicht-ASCII-Zeichen als UTF-8-URL codiert sind. -
requestDomains
string[] optional
Chrome 101 und höherDie Regel stimmt nur mit Netzwerkanfragen überein, wenn die Domain mit einer Domain aus der Liste der
requestDomainsübereinstimmt. Wenn die Liste nicht angegeben ist, wird die Regel auf Anfragen von allen Domains angewendet. Eine leere Liste ist nicht zulässig.Hinweise:
- Subdomains wie „a.beispiel.de“ sind ebenfalls zulässig.
- Die Einträge dürfen nur aus ASCII-Zeichen bestehen.
- Verwenden Sie die Punycode-Codierung für internationalisierte Domains.
- Subdomains der aufgeführten Domains werden ebenfalls berücksichtigt.
-
requestMethods
RequestMethod[] optional
Chrome 91 und höherListe der HTTP-Anfragemethoden, die mit der Regel abgeglichen werden können. Eine leere Liste ist nicht zulässig.
Hinweis: Wenn Sie eine
requestMethods-Regelbedingung angeben, werden auch Nicht-HTTP(S)-Anfragen ausgeschlossen. Wenn SieexcludedRequestMethodsangeben, ist das nicht der Fall. -
resourceTypes
ResourceType[] optional
Liste der Ressourcentypen, die der Regel entsprechen können. Eine leere Liste ist nicht zulässig.
Hinweis: Dies muss für
allowAllRequests-Regeln angegeben werden und darf nur die Ressourcentypensub_frameundmain_frameenthalten. -
responseHeaders
HeaderInfo[] optional
Chrome 128 und höherDie Regel stimmt überein, wenn die Anfrage mit einer der Antwortheader-Bedingungen in dieser Liste übereinstimmt (falls angegeben).
-
tabIds
number[] optional
Chrome 92 und höherListe der
tabs.Tab.id, die mit der Regel übereinstimmen sollen. Eine ID vontabs.TAB_ID_NONEentspricht Anfragen, die nicht von einem Tab stammen. Eine leere Liste ist nicht zulässig. Wird nur für Regeln auf Sitzungsebene unterstützt. -
topDomains
string[] optional
Chrome 145 und höherDie Regel stimmt nur mit Netzwerkanfragen überein, wenn die Domain des zugehörigen Frames der obersten Ebene mit einer Domain aus der Liste der
topDomainsübereinstimmt. Wenn die Liste nicht angegeben ist, wird die Regel auf Anfragen angewendet, die mit allen Top-Level-Frame-Domains verknüpft sind. Eine leere Liste ist nicht zulässig.Hinweise:
- Subdomains wie „a.beispiel.de“ sind ebenfalls zulässig.
- Die Einträge dürfen nur aus ASCII-Zeichen bestehen.
- Verwenden Sie die Punycode-Codierung für internationalisierte Domains.
- Subdomains der aufgeführten Domains werden ebenfalls berücksichtigt.
- Bei Anfragen ohne zugehörigen Frame der obersten Ebene (z.B. von ServiceWorker initiierte Anfragen) wird stattdessen die Domain des Initiators der Anfrage berücksichtigt.
-
urlFilter
String optional
Das Muster, das mit der URL der Netzwerkanfrage abgeglichen wird. Unterstützte Konstrukte:
*: Platzhalter, der einer beliebigen Anzahl von Zeichen entspricht.
| : Anker links/rechts: Wenn das Zeichen an einem der beiden Enden des Musters verwendet wird, gibt es den Anfang bzw. das Ende der URL an.
'||' : Anker für Domainname: Wenn am Anfang des Musters verwendet, gibt er den Beginn einer (Unter-)Domain der URL an.
^ : Trennzeichen: Entspricht allen Zeichen außer Buchstaben, Ziffern und den folgenden Zeichen:
_,-,.oder%. Dies entspricht auch dem Ende der URL.urlFilterbesteht daher aus den folgenden Teilen: (optionaler Anker links/Domainname) + Muster + (optionaler Anker rechts).Wenn nicht angegeben, werden alle URLs abgeglichen. Ein leerer String ist nicht zulässig.
Ein Muster, das mit
||*beginnt, ist nicht zulässig. Verwenden Sie stattdessen*.Hinweis: Es kann nur entweder
urlFilteroderregexFilterangegeben werden.Hinweis: Die
urlFilterdarf nur aus ASCII-Zeichen bestehen. Der Ausdruck wird mit einer URL abgeglichen, bei der der Host (im Fall internationalisierter Domains) im Punycode-Format codiert ist und alle anderen Nicht-ASCII-Zeichen als UTF-8-URL codiert sind. Wenn die Anfrage-URL beispielsweise http://abc.рф?q=ф lautet, wirdurlFiltermit der URL http://abc.xn--p1ai/?q=%D1%84 abgeglichen.
RuleConditionKeys
Enum
"urlFilter"
"regexFilter"
"isUrlFilterCaseSensitive"
"initiatorDomains"
"excludedInitiatorDomains"
"requestDomains"
"excludedRequestDomains"
"topDomains"
"excludedTopDomains"
„domains“
"excludedDomains"
"resourceTypes"
"excludedResourceTypes"
"requestMethods"
"excludedRequestMethods"
"domainType"
"tabIds"
"excludedTabIds"
"responseHeaders"
"excludedResponseHeaders"
Ruleset
Attribute
-
aktiviert
boolean
Gibt an, ob das Regelset standardmäßig aktiviert ist.
-
id
String
Ein nicht leerer String, der das Regelset eindeutig identifiziert. IDs, die mit „_“ beginnen, sind für die interne Verwendung reserviert.
-
Pfad
String
Der Pfad des JSON-Regelsatzes relativ zum Erweiterungsverzeichnis.
RulesMatchedDetails
Attribute
-
rulesMatchedInfo
Regeln, die dem angegebenen Filter entsprechen.
TabActionCountUpdate
Attribute
-
increment
Zahl
Der Wert, um den die Anzahl der Aktionen des Tabs erhöht werden soll. Negative Werte verringern die Anzahl.
-
tabId
Zahl
Der Tab, für den die Anzahl der Aktionen aktualisiert werden soll.
TestMatchOutcomeResult
Attribute
-
matchedRules
Die Regeln (falls vorhanden), die der hypothetischen Anfrage entsprechen.
TestMatchRequestDetails
Attribute
-
Initiator
String optional
Die Initiator-URL (falls vorhanden) für die hypothetische Anfrage.
-
method
RequestMethod optional
Standard-HTTP-Methode der hypothetischen Anfrage. Standardmäßig wird „get“ für HTTP-Anfragen verwendet. Für andere Anfragen wird dieser Parameter ignoriert.
-
responseHeaders
object optional
Chrome 129 und höherDie Header, die in einer hypothetischen Antwort enthalten wären, wenn die Anfrage nicht blockiert oder umgeleitet wird, bevor sie gesendet wird. Wird als Objekt dargestellt, das einen Header-Namen einer Liste von String-Werten zuordnet. Wenn nicht angegeben, würde die hypothetische Antwort leere Antwortheader zurückgeben, die mit Regeln übereinstimmen können, die auf das Nichtvorhandensein von Headern abgestimmt sind. Beispiel:
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]} -
tabId
number optional
Die ID des Tabs, auf dem die hypothetische Anfrage erfolgt. Muss nicht einer echten Tab-ID entsprechen. Der Standardwert ist -1. Das bedeutet, dass die Anfrage nicht mit einem Tab verknüpft ist.
-
topUrl
String optional
Chrome 145 und höherDie zugehörige URL des Frames der obersten Ebene (falls vorhanden) für die Anfrage.
-
Typ
Der Ressourcentyp der hypothetischen Anfrage.
-
URL
String
Die URL der hypothetischen Anfrage.
UnsupportedRegexReason
Beschreibt den Grund, warum ein bestimmter regulärer Ausdruck nicht unterstützt wird.
Enum
„syntaxError“
Der reguläre Ausdruck ist syntaktisch falsch oder verwendet Funktionen, die in der RE2-Syntax nicht verfügbar sind.
"memoryLimitExceeded"
Der reguläre Ausdruck überschreitet das Speicherlimit.
UpdateRuleOptions
Attribute
-
addRules
Rule[] optional
Regeln, die hinzugefügt werden sollen.
-
removeRuleIds
number[] optional
IDs der zu entfernenden Regeln. Ungültige IDs werden ignoriert.
UpdateRulesetOptions
Attribute
UpdateStaticRulesOptions
Attribute
URLTransform
Attribute
-
Fragment
String optional
Das neue Fragment für die Anfrage. Muss entweder leer sein (in diesem Fall wird das vorhandene Fragment gelöscht) oder mit „#“ beginnen.
-
Host
String optional
Der neue Host für die Anfrage.
-
Passwort
String optional
Das neue Passwort für die Anfrage.
-
Pfad
String optional
Der neue Pfad für die Anfrage. Wenn leer, wird der vorhandene Pfad gelöscht.
-
Port
String optional
Der neue Port für die Anfrage. Wenn leer, wird der vorhandene Port gelöscht.
-
Abfrage
String optional
Die neue Abfrage für die Anfrage. Muss entweder leer sein (in diesem Fall wird die vorhandene Abfrage gelöscht) oder mit „?“ beginnen.
-
queryTransform
QueryTransform optional
Schlüssel/Wert-Paare für Abfragen hinzufügen, entfernen oder ersetzen.
-
Schema
String optional
Das neue Schema für die Anfrage. Zulässige Werte sind „http“, „https“, „ftp“ und „chrome-extension“.
-
Nutzername
String optional
Der neue Nutzername für die Anfrage.
Attribute
DYNAMIC_RULESET_ID
Regelsatz-ID für die dynamischen Regeln, die von der Erweiterung hinzugefügt wurden.
Wert
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
Das Zeitintervall, in dem MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules-Anrufe getätigt werden können, in Minuten. Zusätzliche Aufrufe schlagen sofort fehl und runtime.lastError wird festgelegt. Hinweis: getMatchedRules-Aufrufe, die mit einer Nutzeraktion verknüpft sind, sind von der Kontingentbeschränkung ausgenommen.
Wert
10
GUARANTEED_MINIMUM_STATIC_RULES
Die Mindestanzahl statischer Regeln, die für eine Erweiterung in allen aktivierten statischen Regelsätzen garantiert werden. Alle Regeln, die dieses Limit überschreiten, werden auf das globale Limit für statische Regeln angerechnet.
Wert
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
Die Anzahl der Aufrufe von getMatchedRules innerhalb eines Zeitraums von GETMATCHEDRULES_QUOTA_INTERVAL.
Wert
20
MAX_NUMBER_OF_DYNAMIC_RULES
Die maximale Anzahl dynamischer Regeln, die eine Erweiterung hinzufügen kann.
Wert
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Die maximale Anzahl statischer Rulesets, die eine Erweiterung gleichzeitig aktivieren kann.
Wert
50
MAX_NUMBER_OF_REGEX_RULES
Die maximale Anzahl von Regeln für reguläre Ausdrücke, die eine Erweiterung hinzufügen kann. Dieses Limit wird separat für die dynamischen Regeln und die in der Datei mit den Regelressourcen angegebenen Regeln ausgewertet.
Wert
1.000
MAX_NUMBER_OF_SESSION_RULES
Die maximale Anzahl von regelspezifischen Regeln, die eine Erweiterung hinzufügen kann.
Wert
5.000
MAX_NUMBER_OF_STATIC_RULESETS
Die maximale Anzahl statischer Rulesets, die eine Erweiterung als Teil des Manifestschlüssels "rule_resources" angeben kann.
Wert
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Die maximale Anzahl von „unsicheren“ dynamischen Regeln, die eine Erweiterung hinzufügen kann.
Wert
5.000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Die maximale Anzahl von „unsicheren“ regelspezifischen Regeln, die eine Erweiterung hinzufügen kann.
Wert
5.000
SESSION_RULESET_ID
Regelsatz-ID für die von der Erweiterung hinzugefügten Regeln auf Sitzungsebene.
Wert
"_session"
Methoden
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
Gibt die Anzahl der statischen Regeln zurück, die eine Erweiterung aktivieren kann, bevor das globale Limit für statische Regeln erreicht wird.
Parameter
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(count: number) =& gt;void
-
Anzahl
Zahl
-
Ausgabe
-
Promise<number>
Chrome 91 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
Gibt die Liste der statischen Regeln in der angegebenen Ruleset zurück, die derzeit deaktiviert sind.
Parameter
-
Optionen
Gibt das abzufragende Regelset an.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(disabledRuleIds: number[]) =& gt;void
-
disabledRuleIds
number[]
-
Ausgabe
-
Promise<number[]>
Promise, das mit einer Liste von IDs aufgelöst wird, die den deaktivierten Regeln in diesem Regelsatz entsprechen.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Gibt die aktuelle Gruppe dynamischer Regeln für die Erweiterung zurück. Anrufer können die Liste der abgerufenen Regeln optional filtern, indem sie ein filter angeben.
Parameter
-
Filter
GetRulesFilter optional
Chrome 111 und höherEin Objekt zum Filtern der Liste der abgerufenen Regeln.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(rules: Rule[]) =& gt;void
-
Regeln
Regel[]
-
Ausgabe
-
Promise<Rule[]>
Chrome 91 und höherPromise, das mit dem Satz dynamischer Regeln aufgelöst wird. Das Promise kann bei vorübergehenden internen Fehlern abgelehnt werden.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
Gibt die IDs für die aktuelle Gruppe aktivierter statischer Regelsätze zurück.
Parameter
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(rulesetIds: string[]) =& gt;void
-
rulesetIds
String[]
-
Ausgabe
-
Promise<string[]>
Chrome 91 und höherPromise, das mit einer Liste von IDs aufgelöst wird, wobei jede ID einer aktivierten statischen
Rulesetentspricht.Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
Gibt alle Regeln zurück, die für die Erweiterung zutreffen. Anrufer können die Liste der übereinstimmenden Regeln optional filtern, indem sie eine filter angeben. Diese Methode ist nur für Erweiterungen mit der Berechtigung "declarativeNetRequestFeedback" oder der Berechtigung "activeTab" für die in filter angegebene tabId verfügbar. Hinweis: Regeln, die nicht mit einem aktiven Dokument verknüpft sind und vor mehr als fünf Minuten abgeglichen wurden, werden nicht zurückgegeben.
Parameter
-
Filter
MatchedRulesFilter optional
Ein Objekt zum Filtern der Liste der übereinstimmenden Regeln.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(details: RulesMatchedDetails) =& gt;void
-
Details
-
Ausgabe
-
Promise<RulesMatchedDetails>
Chrome 91 und höherPromise, das aufgelöst wird, sobald die Liste der übereinstimmenden Regeln abgerufen wurde. Im Fehlerfall wird das Promise abgelehnt. Das kann verschiedene Gründe haben, z. B. unzureichende Berechtigungen oder eine Überschreitung des Kontingents.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Gibt die aktuellen regelspezifischen Regeln für die Erweiterung zurück. Anrufer können die Liste der abgerufenen Regeln optional filtern, indem sie ein filter angeben.
Parameter
-
Filter
GetRulesFilter optional
Chrome 111 und höherEin Objekt zum Filtern der Liste der abgerufenen Regeln.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(rules: Rule[]) =& gt;void
-
Regeln
Regel[]
-
Ausgabe
-
Promise<Rule[]>
Chrome 91 und höherPromise, das mit den sitzungsbezogenen Regeln aufgelöst wird.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
Prüft, ob der angegebene reguläre Ausdruck als regexFilter-Regelbedingung unterstützt wird.
Parameter
-
regexOptions
Der zu prüfende reguläre Ausdruck.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(result: IsRegexSupportedResult) =& gt;void
-
Ergebnis
-
Ausgabe
-
Promise<IsRegexSupportedResult>
Chrome 91 und höherPromise, das mit Details aufgelöst wird, die angeben, ob der reguläre Ausdruck unterstützt wird, und wenn nicht, warum.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
Konfiguriert, ob die Anzahl der Aktionen für Tabs als Badge-Text der Erweiterungsaktion angezeigt werden soll, und bietet eine Möglichkeit, diese Anzahl zu erhöhen.
Parameter
-
Optionen
-
callback
Funktion optional
Chrome 89 und höherDer Parameter
callbacksieht so aus:() =& gt;void
Ausgabe
-
Promise<void>
Chrome 91 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
Prüft, ob eine der deklarativenNetRequest-Regeln der Erweiterung mit einer hypothetischen Anfrage übereinstimmen würde. Hinweis: Nur für entpackte Erweiterungen verfügbar, da diese Funktion nur während der Entwicklung von Erweiterungen verwendet werden soll.
Parameter
-
Anfrage
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(result: TestMatchOutcomeResult) =& gt;void
-
Ergebnis
-
Ausgabe
-
Promise<TestMatchOutcomeResult>
Promise, das mit den Details der übereinstimmenden Regeln aufgelöst wird.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Ändert die aktuellen dynamischen Regeln für die Erweiterung. Die Regeln mit den in options.removeRuleIds aufgeführten IDs werden zuerst entfernt und dann die in options.addRules angegebenen Regeln hinzugefügt. Hinweise:
- Diese Aktualisierung erfolgt als einzelner atomarer Vorgang: Entweder werden alle angegebenen Regeln hinzugefügt und entfernt oder es wird ein Fehler zurückgegeben.
- Diese Regeln bleiben über Browsersitzungen und Erweiterungsupdates hinweg erhalten.
- Statische Regeln, die als Teil des Erweiterungspakets angegeben wurden, können mit dieser Funktion nicht entfernt werden.
MAX_NUMBER_OF_DYNAMIC_RULESist die maximale Anzahl dynamischer Regeln, die eine Erweiterung hinzufügen kann. Die Anzahl der unsicheren Regeln darfMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULESnicht überschreiten.
Parameter
-
OptionenChrome 87 und höher
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() =& gt;void
Ausgabe
-
Promise<void>
Chrome 91 und höherPromise, das aufgelöst wird, sobald das Update abgeschlossen ist. Im Fehlerfall wird das Promise abgelehnt und es werden keine Änderungen am Regelsatz vorgenommen. Das kann verschiedene Gründe haben, z. B. ein ungültiges Regelformat, eine doppelte Regel-ID, eine Überschreitung des Regellimits oder interne Fehler.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
Aktualisiert die Menge der aktivierten statischen Regelsätze für die Erweiterung. Die Regelsätze mit den in options.disableRulesetIds aufgeführten IDs werden zuerst entfernt und dann die in options.enableRulesetIds aufgeführten Regelsätze hinzugefügt.
Die aktivierten statischen Regelsätze werden sitzungsübergreifend beibehalten, aber nicht bei Erweiterungsupdates. Das heißt, der Manifestschlüssel rule_resources bestimmt die aktivierten statischen Regelsätze bei jedem Erweiterungsupdate.
Parameter
-
OptionenChrome 87 und höher
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() =& gt;void
Ausgabe
-
Promise<void>
Chrome 91 und höherPromise, das aufgelöst wird, sobald das Update abgeschlossen ist. Im Fehlerfall wird das Promise abgelehnt und es werden keine Änderungen an den aktivierten Regelsätzen vorgenommen. Das kann verschiedene Gründe haben, z. B. ungültige Regelsatz-IDs, Überschreitung des Regelsatzlimits oder interne Fehler.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Ändert die aktuellen sitzungsbezogenen Regeln für die Erweiterung. Die Regeln mit den in options.removeRuleIds aufgeführten IDs werden zuerst entfernt und dann die in options.addRules angegebenen Regeln hinzugefügt. Hinweise:
- Diese Aktualisierung erfolgt als einzelner atomarer Vorgang: Entweder werden alle angegebenen Regeln hinzugefügt und entfernt oder es wird ein Fehler zurückgegeben.
- Diese Regeln werden nicht sitzungsübergreifend beibehalten und werden im Arbeitsspeicher gesichert.
MAX_NUMBER_OF_SESSION_RULESist die maximale Anzahl von Sitzungsregeln, die eine Erweiterung hinzufügen kann.
Parameter
-
Optionen
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() =& gt;void
Ausgabe
-
Promise<void>
Chrome 91 und höherPromise, das aufgelöst wird, sobald das Update abgeschlossen ist. Im Fehlerfall wird das Promise abgelehnt und es werden keine Änderungen am Regelsatz vorgenommen. Das kann verschiedene Gründe haben, z. B. ein ungültiges Regelformat, eine doppelte Regel-ID oder eine Überschreitung des Regellimits.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
Deaktiviert und aktiviert einzelne statische Regeln in einem Ruleset. Änderungen an Regeln, die zu einem deaktivierten Ruleset gehören, werden erst wirksam, wenn es wieder aktiviert wird.
Parameter
-
Optionen
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:() =& gt;void
Ausgabe
-
Promise<void>
Promise, das aufgelöst wird, wenn das Update abgeschlossen ist. Im Fehlerfall wird das Promise abgelehnt und es werden keine Änderungen an den aktivierten statischen Regeln vorgenommen.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
Ereignisse
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Wird ausgelöst, wenn eine Regel mit einer Anfrage übereinstimmt. Nur für entpackte Erweiterungen mit der Berechtigung "declarativeNetRequestFeedback" verfügbar, da sie nur für Debugging-Zwecke verwendet werden soll.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(info: MatchedRuleInfoDebug) =& gt;void
-
Info
-