Beschreibung
Die chrome.declarativeNetRequest
API wird verwendet, um Netzwerkanfragen durch die Angabe deklarativer Regeln zu blockieren oder zu ändern. Dadurch können Erweiterungen Netzwerkanfragen ändern, ohne sie abzufangen und sich ihre Inhalte anzusehen, was für mehr Datenschutz sorgt.
Berechtigungen
declarativeNetRequest
declarativeNetRequestWithHostAccess
declarativeNetRequestFeedback
host_permissions
Verfügbarkeit
Manifest
Zusätzlich zu den oben beschriebenen Berechtigungen erfordern bestimmte Arten von Regelsätzen, insbesondere statische Regelsätze, die Deklaration des Manifestschlüssels "declarative_net_request"
. Dieser sollte ein Wörterbuch mit einem einzelnen Schlüssel namens "rule_resources"
sein. Dieser Schlüssel ist ein Array, das Wörterbücher vom Typ Ruleset
enthält, wie unten dargestellt. Beachten Sie, dass der Name "Ruleset" nicht im JSON-Format des Manifests enthalten ist, 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 einen oder mehrere Regelsätze an, um diese API zu verwenden. Ein Regelsatz enthält ein Array mit Regeln. Eine einzelne Regel führt eine der folgenden Aktionen aus:
- Eine Netzwerkanfrage blockieren.
- Führen Sie ein Upgrade des Schemas von http zu https durch.
- Sie können verhindern, dass eine Anfrage blockiert wird, indem Sie übereinstimmende blockierte Regeln negieren.
- Leiten Sie eine Netzwerkanfrage weiter.
- Anfrage- oder Antwortheader ändern
Es gibt drei Arten von Regelsätzen, die auf leicht unterschiedliche Weise verwaltet werden.
- Dynamisch
- Sie bleiben über alle Browsersitzungen und Erweiterungen bestehen und werden mit JavaScript verwaltet, solange eine Erweiterung verwendet wird.
- Sitzung
- Wird gelöscht, wenn der Browser heruntergefahren und eine neue Version der Erweiterung installiert wird. Sitzungsregeln werden mit JavaScript verwaltet, solange eine Erweiterung verwendet wird.
- Statisch
- Gepackt, installiert und aktualisiert, wenn eine Erweiterung installiert oder aktualisiert wird. Statische Regeln werden in Regeldateien im JSON-Format gespeichert und in der Manifestdatei aufgeführt.
In den nächsten Abschnitten werden die Regelsatztypen ausführlich erläutert.
Dynamische und sitzungsbezogene Regelsätze
Dynamische Regelsätze und Sitzungsregeln werden mithilfe von JavaScript verwaltet, solange eine Erweiterung verwendet wird.
- Dynamische Regeln bleiben über Browsersitzungen und Erweiterungsupgrades hinweg erhalten.
- Sitzungsregeln werden gelöscht, wenn der Browser heruntergefahren und eine neue Version der Erweiterung installiert wird.
Es gibt jeweils nur einen dieser Regelsatztypen. Von einer Erweiterung können durch Aufrufen von updateDynamicRules()
und updateSessionRules()
dynamisch Regeln hinzugefügt oder entfernt werden, sofern die Regeln nicht überschritten werden. Informationen zu Regellimits finden Sie unter Regellimits. Ein entsprechendes Beispiel finden Sie unter Codebeispiele.
Statische Regelsätze
Im Gegensatz zu dynamischen und Sitzungsregeln werden statische Regeln gepackt, installiert und aktualisiert, wenn eine Erweiterung installiert oder aktualisiert wird. Sie werden in Regeldateien im JSON-Format gespeichert, die mit den Schlüsseln "declarative_net_request"
und "rule_resources"
wie oben beschrieben an die Erweiterung und in einem oder mehreren Ruleset
-Wörterbüchern angegeben werden. Ein Ruleset
-Wörterbuch enthält einen Pfad zur Regeldatei, eine ID für den in der Datei enthaltenen Regelsatz und Angaben dazu, ob der Regelsatz aktiviert oder deaktiviert ist. Die letzten beiden sind wichtig, wenn Sie einen Regelsatz programmatisch aktivieren oder deaktivieren.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
Wenn Sie Regeldateien testen möchten, laden Sie die entpackte Erweiterung. 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 die Browsersitzungen hinweg beibehalten. Beide werden auch nicht bei Erweiterungsupdates beibehalten. Das bedeutet, dass nur die Regeln, die Sie in Ihren Regeldateien beibehalten haben, nach einem Update verfügbar sind.
Aus Leistungsgründen gelten außerdem Einschränkungen für die 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 möglicherweise aktiviert werden. Informationen zu Regellimits finden Sie unter Regellimits.
Rufen Sie updateStaticRules()
auf, um statische Regeln zu aktivieren oder zu deaktivieren. Diese Methode verwendet ein UpdateStaticRulesOptions
-Objekt, das Arrays mit IDs mit Regeln enthält, die aktiviert oder deaktiviert werden sollen. Die IDs werden mit dem Schlüssel "id"
des Ruleset
-Wörterbuchs definiert.
Rufen Sie updateEnabledRulesets()
auf, um statische rulesets 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
-Wörterbuchs definiert.
Build-Regeln
Unabhängig vom Typ beginnt eine Regel mit vier Feldern, wie unten dargestellt. Für die Schlüssel „"id"
“ und „"priority"
“ ist eine Zahl erforderlich. Die Schlüssel "action"
und "condition"
können jedoch mehrere Bedingungen zum Blockieren und Umleiten bereitstellen. Mit der folgenden Regel werden alle Skriptanfragen von "foo.com"
an eine URL mit "abc"
als Teilstring blockiert.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
Mit urlFilter übereinstimmende Zeichen
Mit dem Schlüssel "condition"
einer Regel kann ein "urlFilter"
-Schlüssel auf URLs unter einer bestimmten Domain angewendet werden. Sie erstellen Muster mit Tokens für den Musterabgleich. Unten sehen Sie einige Beispiele.
urlFilter |
Übereinstimmungen | Stimmt nicht überein mit |
---|---|---|
"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 ihre Priorisierung erläutert. Die Priorisierung erfolgt in zwei Phasen.
- Die Priorität wird für Regeln innerhalb einer Erweiterung bestimmt.
- Wenn mehrere Erweiterungen eine Regel auf eine Anfrage anwenden können, wird die Priorität für alle Erweiterungen bestimmt, die einer bestimmten Anfrage entsprechen.
Ein Beispiel für eine solche Zuordnung: Die Regel, die eine bestimmte Erweiterung priorisiert, wird gegenüber den Regeln anderer Erweiterungen priorisiert.
Regelpriorisierung innerhalb einer Erweiterung
Innerhalb einer einzelnen Erweiterung wird die Priorisierung mithilfe des folgenden Prozesses festgelegt:
- Die Regel mit der höchsten vom Entwickler definierten Priorität (mit anderen Worten, das Feld
"priority"
) wird zurückgegeben. Wenn es mehr als eine Regel mit der höchsten vom Entwickler definierten Priorität gibt, werden die Regeln mithilfe des Felds
"action"
in der folgenden Reihenfolge priorisiert:allow
allowAllRequests
block
upgradeScheme
redirect
Wenn der Aktionstyp nicht
block
oderredirect
ist, werden alle übereinstimmendenmodifyHeaders
-Regeln ausgewertet. Regeln mit einer vom Entwickler definierten Priorität, die niedriger als die fürallow
undallowAllRequests
angegebene Priorität sind, werden ignoriert.Wenn mehrere Regeln denselben Header ändern, wird die Änderung durch das vom Entwickler definierte Feld
"priority"
und durch 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. Festlegen und Entfernen sind nicht zulässig.
- Wenn eine Regel einen Header festlegt, können Regeln mit niedrigerer Priorität nur an diesen Header angehängt werden. Andere Änderungen sind nicht zulässig.
- Wenn eine Kopfzeile durch eine Regel entfernt wird, können Regeln mit niedrigerer Priorität den Header nicht weiter ändern.
Regelpriorisierung zwischen Erweiterungen
Wenn es nur für eine Erweiterung eine Regel gibt, die mit einer Anfrage übereinstimmt, wird diese Regel angewendet. Wenn jedoch mehr als eine Erweiterung einer Anfrage entspricht, wird so vorgegangen:
Regeln werden mithilfe des Felds
"action"
in der folgenden Reihenfolge priorisiert:block
redirect
oderupgradeScheme
allow
oderallowAllRequests
Wenn mehrere Regeln zutreffen, hat die zuletzt installierte Erweiterung Priorität.
Limits für Regeln
Das Laden und Auswerten von Regeln im Browser verursacht einen Leistungsaufwand. Daher gelten bei Verwendung der API einige Einschränkungen. Limits hängen von der Art der Regel ab, die Sie verwenden.
Statische Regeln
Statische Regeln sind die in Regeldateien, die in der Manifestdatei deklariert sind. Eine Erweiterung kann bis zu 50 statische rulesets als Teil des Manifestschlüssels „"rule_resources"
“ angeben, es können jedoch nur zehn dieser Regelsätze gleichzeitig aktiviert werden. Letzteres wird als MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
bezeichnet. Für diese Regelsätze werden insgesamt mindestens 30.000 Regeln garantiert. Dies wird als GUARANTEED_MINIMUM_STATIC_RULES
bezeichnet.
Wie viele Regeln danach verfügbar sind, hängt davon ab, wie viele Regeln von allen Erweiterungen aktiviert werden, die auf dem Browser eines Nutzers installiert sind. Sie finden diese Nummer zur Laufzeit, indem Sie getAvailableStaticRuleCount()
aufrufen. Ein entsprechendes Beispiel finden Sie unter Codebeispiele.
Dynamische Regeln und Sitzungsregeln
Die auf dynamische Regeln und Sitzungsregeln angewendeten Limits sind einfacher als statische Regeln. Beide dürfen nicht größer als 5.000 sein. Dies wird als MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
bezeichnet.
Regeln mit regulären Ausdrücken
Für alle Regeltypen können reguläre Ausdrücke verwendet werden, die Gesamtzahl der Regex-Regeln pro Typ darf jedoch 1.000 nicht überschreiten. Dies wird als MAX_NUMBER_OF_REGEX_RULES bezeichnet.
Außerdem muss jede Regel nach der Kompilierung kleiner als 2 KB sein. Dies korreliert in etwa mit der Komplexität der Regel. Wenn Sie versuchen, eine Regel zu laden, die diesen Grenzwert überschreitet, erhalten Sie eine Warnung wie die unten abgebildete und die Regel wird ignoriert.
rules_1.json: Rule with id 1 specified a more complext regex than allowed
as part of the "regexFilter" key.
Interaktionen mit Service Workern
Ein deklarativeNetRequest gilt nur für Anfragen, die den Netzwerkstack erreichen. Dazu gehören Antworten aus dem HTTP-Cache, aber möglicherweise keine 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 wurden, aber Aufrufe von fetch()
in einem Service Worker.
Über das Web zugängliche Ressourcen
Eine deklarativeNetRequest-Regel kann nicht von einer öffentlichen Ressourcenanfrage zu einer Ressource weiterleiten, die nicht über das Internet zugänglich ist. Das führt zu einem Fehler. Dies gilt auch dann, wenn die angegebene über das Web zugängliche Ressource der Weiterleitungserweiterung gehört. Verwenden Sie das "web_accessible_resources"
-Array des Manifests, um Ressourcen für deklarativeNetRequest zu deklarieren.
Beispiele
Codebeispiele
Dynamische Regeln aktualisieren
Das folgende Beispiel zeigt, wie updateDynamicRules()
aufgerufen wird. Die Vorgehensweise für updateSessionRules()
ist dieselbe.
// 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 Regelsätze unter Berücksichtigung der Anzahl der verfügbaren und der maximalen Anzahl aktivierter statischer Regelsätze aktiviert und deaktiviert werden. Dies ist der Fall, wenn die Anzahl der benötigten statischen Regeln die zulässige Anzahl überschreitet. Damit dies funktioniert, sollten einige Ihrer Regelsätze installiert sein und einige Regelsätze deaktiviert sein ("Enabled"
in der Manifestdatei auf false
setzen).
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. Beim Überprüfen können Sie die Regeln für die Priorisierung in einem separaten Fenster öffnen.
Der Schlüssel „Priorität“
Für diese Beispiele ist eine Hostberechtigung für *://*.example.com/*
erforderlich.
Um die Priorität einer bestimmten URL zu ermitteln, sehen Sie sich die (vom Entwickler definierten) Schlüssel "priority"
, "action"
und "urlFilter"
an. Diese Beispiele beziehen sich auf die unten gezeigte Beispielregeldatei.
- Rufen Sie https://google.com auf.
- Diese URL wird von zwei Regeln abgedeckt: die Regeln mit den IDs 1 und 4. Die Regel mit der ID 1 wird angewendet, weil
"block"
Aktionen eine höhere Priorität als"redirect"
Aktionen haben. Die restlichen Regeln gelten nicht, da sie sich auf längere URLs beziehen. - Rufen Sie https://google.com/1234 auf.
- Wegen der längeren URL stimmt jetzt zusätzlich zu den Regeln mit den IDs 1 und 4 auch die Regel mit der ID 2 überein. Die Regel mit der ID 2 wird angewendet, weil
"allow"
eine höhere Priorität als"block"
und"redirect"
hat. - Rufen Sie https://google.com/12345 auf.
- Alle vier Regeln stimmen mit dieser URL überein. Die Regel mit der ID 3 gilt, weil ihre vom Entwickler definierte Priorität die höchste 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
Im folgenden Beispiel ist eine Hostberechtigung für *://*.example.com/*
erforderlich.
Das folgende Beispiel zeigt, wie eine Anfrage von beispiel.de an eine Seite innerhalb der Erweiterung selbst weitergeleitet wird. Der Erweiterungspfad „/a.jpg
“ wird in „chrome-extension://EXTENSION_ID/a.jpg
“ aufgelöst, wobei EXTENSION_ID
die ID der Erweiterung ist. Damit dies funktioniert, sollte im Manifest /a.jpg
als über das Web zugä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 Beispiel wird der Schlüssel "transform"
für die Weiterleitung zu einer Subdomain von beispiel.de verwendet. Dabei wird ein Domainnamen-Anker („||“) verwendet, um Anfragen mit einem beliebigen Schema von beispiel.de 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 eine Weiterleitung von https://www.abc.xyz.com/path
zu https://abc.xyz.com/path
durchzuführen. Im Schlüssel "regexFilter"
sind Punkte maskiert und in der Erfassungsgruppe wird entweder „abc“ oder „def“ ausgewählt. Der Schlüssel "regexSubstitution"
gibt die erste zurückgegebene Übereinstimmung mit dem regulären Ausdruck mit "\1" an. In diesem Fall wird "abc" von der weitergeleiteten URL erfasst und als Ersatz 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 Subframes entfernt.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Typen
DomainType
Dies beschreibt, ob die Anfrage für den Frame, aus dem sie stammt, oder ein Drittanbieter ist. Eine Anfrage gilt als eigene Anfrage, wenn sie dieselbe Domain (eTLD+1) wie der Frame hat, aus dem die Anfrage stammt.
Enum
"firstParty"
Die Netzwerkanfrage bezieht sich auf den Erstanbieter des Frames, aus dem sie stammt.
"thirdParty"
Die Netzwerkanfrage ist ein Drittanbieter des Frames, aus dem sie stammt.
ExtensionActionOptions
Attribute
-
displayActionCountAsBadgeText
Boolescher Wert optional
Gibt an, ob die Anzahl der Aktionen für eine Seite automatisch als Badgetext der Erweiterung angezeigt wird. Diese Einstellung bleibt über mehrere Sitzungen hinweg erhalten.
-
tabUpdate
TabActionCountUpdate optional
Chrome 89 und höherDetails zum Anpassen der Anzahl der Aktionen des Tabs.
GetDisabledRuleIdsOptions
Attribute
-
rulesetId
String
Die ID, die einem statischen
Ruleset
entspricht.
GetRulesFilter
Attribute
-
ruleIds
nummer[] optional
Wenn angegeben, werden nur Regeln mit übereinstimmenden IDs einbezogen.
HeaderOperation
Dies beschreibt die möglichen Vorgänge für die Regel "modifyHeaders".
Enum
"append"
Fügt einen neuen Eintrag für den angegebenen Header hinzu. Dieser Vorgang wird für Anfrageheader nicht 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 übereinstimmenden Regel.
-
rulesetId
String
ID des
Ruleset
, zu dem diese Regel gehört. Bei einer Regel aus der Gruppe dynamischer Regeln ist der WertDYNAMIC_RULESET_ID
.
MatchedRuleInfo
Attribute
-
Regel
-
tabId
Zahl
Die tabId des Tabs, von dem die Anfrage stammt, wenn der Tab noch aktiv ist. Andernfalls: -1.
-
timeStamp
Zahl
Der Zeitpunkt, zu dem die Regel abgeglichen wurde. Die Zeitstempel entsprechen der JavaScript-Konvention für Uhrzeiten, d.h. der Anzahl von Millisekunden seit der Epoche.
MatchedRuleInfoDebug
Attribute
-
Request
Details zur Anfrage, für die die Regel gilt.
-
Regel
MatchedRulesFilter
Attribute
-
minTimeStamp
Nummer optional
Wenn angegeben, werden nur Regeln nach dem angegebenen Zeitstempel abgeglichen.
-
tabId
Nummer optional
Wenn angegeben, werden nur Regeln für den angegebenen Tab abgeglichen. Stimmt mit Regeln überein, die mit keinem aktiven Tab verknüpft sind, wenn der Wert auf -1 gesetzt ist.
ModifyHeaderInfo
Attribute
-
Header
String
Der Name des Headers, der geändert werden soll.
-
Vorgang
Der Vorgang, der für einen Header ausgeführt werden soll.
-
value
String optional
Der neue Wert für den Header. Muss für
append
- undset
-Vorgänge angegeben werden.
QueryKeyValue
Attribute
-
Schlüssel
String
-
replaceOnly
Boolescher Wert optional
Chrome 94 und höherBei „true“ wird der Abfrageschlüssel nur ersetzt, wenn er bereits vorhanden ist. Andernfalls wird der Schlüssel ebenfalls hinzugefügt, falls er fehlt. Die Standardeinstellung ist "false".
-
value
String
QueryTransform
Attribute
-
addOrReplaceParams
QueryKeyValue[] optional
Die Liste der Schlüssel/Wert-Paare der Abfrage, die hinzugefügt oder ersetzt werden sollen.
-
removeParams
string[] optional
Die Liste der Abfrageschlüssel, die entfernt werden sollen.
Redirect
Attribute
-
extensionPath
String optional
Pfad relativ zum Verzeichnis der Erweiterung. Sollte mit „/“ beginnen.
-
regexSubstitution
String optional
Substitutionsmuster für Regeln, die einen
regexFilter
angeben. Die erste Übereinstimmung mitregexFilter
in der URL wird durch dieses Muster ersetzt. Innerhalb vonregexSubstitution
können umgekehrte Escape-Ziffern (\1 bis \9) verwendet werden, um die entsprechenden Erfassungsgruppen einzufügen. \0 bezieht sich auf den gesamten übereinstimmenden Text. -
transform
URLTransform optional
Durchzuführende URL-Transformationen.
-
url
String optional
Die Weiterleitungs-URL. Weiterleitungen an JavaScript-URLs sind nicht zulässig.
RegexOptions
Attribute
-
isCaseSensitive
Boolescher Wert optional
Gibt an, ob bei dem angegebenen
regex
zwischen Groß- und Kleinschreibung unterschieden wird. Der Standardwert ist „true“. -
regex
String
Das reguläre Expresson, das geprüft werden soll.
-
requireCapturing
Boolescher Wert optional
Gibt an, ob für das angegebene
regex
eine Erfassung erforderlich ist. Die Erfassung ist nur für Weiterleitungsregeln erforderlich, die eineregexSubstition
-Aktion angeben. Der Standardwert ist "false".
RequestDetails
Attribute
-
documentId
String optional
Chrome 106 oder höherDie eindeutige ID für das Dokument des Frames, wenn diese Anfrage für einen Frame bestimmt ist.
-
documentLifecycle
DocumentLifecycle optional
Chrome 106 oder höherDer Lebenszyklus des Frames-Dokuments, wenn diese Anfrage für einen Frame ist.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameType
FrameType optional
Chrome 106 oder höherDer Typ des Frames, wenn diese Anfrage für einen Frame ist.
-
Initiator
String optional
Der Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 oder höherDie eindeutige ID für das übergeordnete Dokument des Frames, wenn diese Anfrage für einen Frame bestimmt ist und ein übergeordnetes Element hat.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. 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, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.
-
Typ
Der Ressourcentyp der Anfrage.
-
url
String
Die URL der Anfrage.
RequestMethod
Dies beschreibt die HTTP-Anfragemethode einer Netzwerkanfrage.
Enum
"get"
ResourceType
Dies beschreibt den Ressourcentyp der Netzwerkanfrage.
Enum
"main_frame"
"sub_frame"
"script"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"webtransport"
Rule
Attribute
-
Aktion
Die auszuführende Aktion bei einer Übereinstimmung mit dieser Regel.
-
Bedingung
Die Bedingung, unter der diese Regel ausgelöst wird.
-
id
Zahl
Eine ID, die eine Regel eindeutig identifiziert. Obligatorisch und muss „≥ 1“ sein.
-
priorität
Nummer optional
Regelpriorität. Der Standardfaktor ist 1. Wenn angegeben, sollte >= 1 sein.
RuleAction
Attribute
-
weiterleiten
Weiterleitung optional
Beschreibt, wie die Weiterleitung erfolgen soll. Nur gültig für Weiterleitungsregeln.
-
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“ gesetzt 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“ gesetzt 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"
Blockieren Sie die Netzwerkanfrage.
"redirect"
Die Netzwerkanfrage weiterleiten.
"allow"
Netzwerkanfrage zulassen Die Anfrage wird nicht abgefangen, wenn es eine entsprechende Zulassungsregel gibt.
"upgradeScheme"
Ändern Sie das Schema der Netzwerkanfrage-URL auf https, wenn die Anfrage HTTP oder FTP ist.
"modifyHeaders"
Ändern Sie Anfrage-/Antwortheader aus der Netzwerkanfrage.
"allowAllRequests"
Alle Anfragen innerhalb einer Frame-Hierarchie zulassen, einschließlich der Frame-Anfrage selbst.
RuleCondition
Attribute
-
domainType
DomainType optional
Gibt an, ob es sich bei der Netzwerkanfrage um eine Erstanbieter- oder Drittanbieteranfrage an die Domain handelt, von der sie stammt. Wenn keine Angabe gemacht wird, werden alle Anfragen angenommen.
-
Domains
string[] optional
Seit Chrome 101 eingestelltStattdessen
initiatorDomains
verwendenDie Regel gleicht nur Netzwerkanfragen ab, die aus der Liste der
domains
stammen. -
excludedDomains
string[] optional
Seit Chrome 101 eingestelltStattdessen
excludedInitiatorDomains
verwendenDie Regel stimmt nicht mit Netzwerkanfragen aus der Liste der
excludedDomains
überein. -
excludedInitiatorDomains
string[] optional
Chrome 101 und höherDie Regel stimmt nicht mit Netzwerkanfragen aus der Liste der
excludedInitiatorDomains
überein. 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 ASCII-Zeichen enthalten.
- Punycode-Codierung für internationalisierte Domains verwenden
- Dies stimmt mit dem Anfrageinitiator und nicht mit der Anfrage-URL überein.
- Subdomains der aufgeführten Domains sind ebenfalls ausgeschlossen.
-
excludedRequestDomains
string[] optional
Chrome 101 und höherDie Regel gleicht keine Netzwerkanfragen ab, wenn die Domains mit einer in der Liste der
excludedRequestDomains
übereinstimmen. 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 ASCII-Zeichen enthalten.
- Punycode-Codierung für internationalisierte Domains verwenden
- Subdomains der aufgeführten Domains sind ebenfalls ausgeschlossen.
-
excludedRequestMethods
RequestMethod[] optional
Chrome 91 und höherListe der Anfragemethoden, bei denen die Regel nicht übereinstimmt. Es darf nur
requestMethods
oderexcludedRequestMethods
angegeben werden. Wenn keine von beiden angegeben ist, werden alle Anfragemethoden abgeglichen. -
excludedResourceTypes
ResourceType[] optional
Liste der Ressourcentypen, für die die Regel nicht gilt. Es darf nur
resourceTypes
oderexcludedResourceTypes
angegeben werden. Wenn keiner von ihnen angegeben ist, werden alle Ressourcentypen außer „main_frame“ blockiert. -
excludedTabIds
nummer[] optional
Chrome 92 und höherListe von
tabs.Tab.id
, mit der die Regel nicht übereinstimmen soll. Die IDtabs.TAB_ID_NONE
schließt Anfragen aus, die nicht von einem Tab stammen. Wird nur für Regeln auf Sitzungsebene unterstützt. -
initiatorDomains
string[] optional
Chrome 101 und höherDie Regel gleicht nur Netzwerkanfragen ab, die aus der Liste der
initiatorDomains
stammen. Wird die Liste weggelassen, 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 ASCII-Zeichen enthalten.
- Punycode-Codierung für internationalisierte Domains verwenden
- Dies stimmt mit dem Anfrageinitiator und nicht mit der Anfrage-URL überein.
- Die Subdomains der aufgeführten Domains werden ebenfalls abgeglichen.
-
isUrlFilterCaseSensitive
Boolescher Wert optional
Gibt an, ob bei
urlFilter
oderregexFilter
(je nachdem, was angegeben ist) die Groß-/Kleinschreibung zu beachten ist. Der Standardwert ist "false". -
regexFilter
String optional
Regulärer Ausdruck für den Abgleich mit der Netzwerkanfrage-URL Dies entspricht der RE2-Syntax.
Hinweis: Es kann nur
urlFilter
oderregexFilter
angegeben werden.Hinweis: Der
regexFilter
darf nur ASCII-Zeichen enthalten. Sie wird mit einer URL abgeglichen, bei der der Host im Punycode-Format codiert ist (bei internationalisierten Domains) und alle anderen Nicht-ASCII-Zeichen in utf-8 codiert sind. -
requestDomains
string[] optional
Chrome 101 und höherDie Regel gleicht nur Netzwerkanfragen ab, wenn die Domain mit einer aus der Liste der
requestDomains
übereinstimmt. Wird die Liste weggelassen, 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 ASCII-Zeichen enthalten.
- Punycode-Codierung für internationalisierte Domains verwenden
- Die Subdomains der aufgeführten Domains werden ebenfalls abgeglichen.
-
requestMethods
RequestMethod[] optional
Chrome 91 und höherListe der HTTP-Anfragemethoden, die mit der Regel übereinstimmen können. Eine leere Liste ist nicht zulässig.
Hinweis: Wenn Sie eine
requestMethods
-Regelbedingung angeben, werden auch Nicht-HTTP(s)-Anfragen ausgeschlossen,excludedRequestMethods
jedoch nicht. -
resourceTypes
ResourceType[] optional
Liste der Ressourcentypen, denen die Regel entsprechen kann. Eine leere Liste ist nicht zulässig.
Hinweis: Muss für
allowAllRequests
-Regeln angegeben werden und darf nur die Ressourcentypensub_frame
undmain_frame
enthalten. -
tabIds
nummer[] optional
Chrome 92 und höherListe von
tabs.Tab.id
, denen die Regel entsprechen soll. Die IDtabs.TAB_ID_NONE
entspricht Anfragen, die nicht von einem Tab stammen. Eine leere Liste ist nicht zulässig. Wird nur für Regeln auf Sitzungsebene unterstützt. -
urlFilter
String optional
Das Muster, das mit der Netzwerkanfrage-URL abgeglichen wird. Unterstützte Konstrukte:
'*' : Platzhalter: Entspricht einer beliebigen Anzahl von Zeichen.
'|' : Anker links/rechts: Gibt bei Verwendung an einem der Enden des Musters den Anfang bzw. das Ende der URL an.
'||' : Anker des Domainnamens: Gibt den Anfang einer (Sub-)Domain der URL an, wenn er am Anfang des Musters verwendet wird.
^ : Trennzeichen: Dies entspricht alles außer einem Buchstaben, einer Zahl oder einem der folgenden Zeichen:
_
,-
,.
oder%
. Dies entspricht auch dem Ende der URL.Daher besteht
urlFilter
aus den folgenden Teilen: (optionaler Linker/Domainname-Anker) + Muster + (optionaler rechter Anker).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
urlFilter
oderregexFilter
angegeben werden.Hinweis: Der
urlFilter
darf nur ASCII-Zeichen enthalten. Sie wird mit einer URL abgeglichen, bei der der Host im Punycode-Format codiert ist (bei internationalisierten Domains) und alle anderen Nicht-ASCII-Zeichen in utf-8 codiert sind. Wenn die Anfrage-URL beispielsweise http://abc.?q=Meldungen lautet, wirdurlFilter
mit der URL http://abc.xn--p1ai/?q=%D1%84 abgeglichen.
Ruleset
Attribute
-
aktiviert
boolean
Gibt an, ob der Regelsatz standardmäßig aktiviert ist.
-
id
String
Ein nicht leerer String, der den Regelsatz eindeutig identifiziert. IDs, die mit '_' beginnen, sind für die interne Verwendung reserviert.
-
Pfad
String
Der Pfad des JSON-Regelsatzes in Bezug auf das Erweiterungsverzeichnis.
RulesMatchedDetails
Attribute
-
rulesMatchedInfo
Regeln, die dem angegebenen Filter entsprechen.
TabActionCountUpdate
Attribute
-
increment
Zahl
Der Wert, um den der Aktionszähler 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. Für HTTP-Anfragen ist die Standardeinstellung „get“. Bei Nicht-HTTP-Anfragen wird sie ignoriert.
-
tabId
Nummer optional
Die ID des Tabs, in dem die hypothetische Anfrage stattfindet. Muss nicht mit einer echten Tab-ID übereinstimmen. Der Standardwert ist -1, d. h. die Anfrage bezieht sich nicht auf einen Tab.
-
Typ
Der Ressourcentyp der hypothetischen Anfrage.
-
url
String
Die URL der hypothetischen Anfrage.
UnsupportedRegexReason
Beschreibt, 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.
"memoryLimit exceeded"
Der reguläre Ausdruck überschreitet das Speicherlimit.
UpdateRuleOptions
Attribute
-
addRules
Regel[] optional
Hinzuzufügende Regeln.
-
removeRuleIds
nummer[] 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. Sollte entweder leer sein, in diesem Fall wird das vorhandene Fragment gelöscht, oder sollte mit "#" beginnen.
-
Gastgeber
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 das Feld leer ist, wird der vorhandene Pfad gelöscht.
-
Port
String optional
Der neue Port für die Anfrage. Wenn das Feld leer ist, wird der vorhandene Anschluss gelöscht.
-
Abfrage
String optional
Die neue Abfrage für die Anfrage. Sollte entweder leer sein, sodass die vorhandene Abfrage gelöscht wird, oder sollte 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 werden.
Wert
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
Zeitintervall in Minuten, in dem MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
-Aufrufe ausgeführt werden können. Weitere Aufrufe schlagen sofort fehl und legen runtime.lastError
fest. Hinweis: getMatchedRules
-Aufrufe, die mit einer Nutzergeste verknüpft sind, sind vom Kontingent ausgenommen.
Wert
10
GUARANTEED_MINIMUM_STATIC_RULES
Die Mindestanzahl von statischen Regeln, die einer Erweiterung in den aktivierten statischen Regelsätzen garantiert sind. Alle Regeln über diesem Limit werden auf das globale Limit für statische Regeln angerechnet.
Wert
30.000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
Gibt an, wie oft getMatchedRules
innerhalb eines Zeitraums von GETMATCHEDRULES_QUOTA_INTERVAL
aufgerufen werden kann.
Wert
20
MAX_NUMBER_OF_DYNAMIC_RULES
Die maximale Anzahl dynamischer Regeln, die eine Erweiterung hinzufügen kann.
Wert
30.000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Die maximale Anzahl statischer Rulesets
, die eine Erweiterung jederzeit aktivieren kann.
Wert
50
MAX_NUMBER_OF_REGEX_RULES
Maximale Anzahl von Regeln für reguläre Ausdrücke, die eine Erweiterung hinzufügen kann. Dieses Limit wird für die dynamischen und in der Regelressourcendatei angegebenen Regeln separat ausgewertet.
Wert
1.000
MAX_NUMBER_OF_SESSION_RULES
Die maximale Anzahl von Regeln auf Sitzungsebene, 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 „unsicherer“ dynamischer Regeln, die eine Erweiterung hinzufügen kann.
Wert
5.000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Die maximale Anzahl „unsicherer“ Regeln auf Sitzungsebene, 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,
)
Gibt die Anzahl der statischen Regeln zurück, die eine Erweiterung aktivieren kann, bevor das globale Limit für statische Regeln erreicht ist.
Parameters
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(count: number)=>void
-
Anzahl
Zahl
-
Rückgaben
-
Versprechen<Zahl>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
)
Gibt die Liste der statischen Regeln in der angegebenen Ruleset
zurück, die derzeit deaktiviert sind.
Parameters
-
Optionen
Gibt den abzufragenden Regelsatz an.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(disabledRuleIds: number[])=>void
-
disabledRuleIds
Nummer[]
-
Rückgaben
-
Promise<Zahl[]>
Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
)
Gibt den aktuellen Satz dynamischer Regeln für die Erweiterung zurück Aufrufer können die Liste der abgerufenen Regeln optional filtern, indem sie eine filter
angeben.
Parameters
-
Filter
GetRulesFilter optional
Chrome 111 und höherEin Objekt zum Filtern der Liste der abgerufenen Regeln.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(rules: Rule[])=>void
-
Regeln
Regel[]
-
Rückgaben
-
Promise<Regel[]>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
)
Gibt die IDs für den aktuellen Satz aktivierter statischer Regelsätze zurück.
Parameters
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(rulesetIds: string[])=>void
-
rulesetIds
String[]
-
Rückgaben
-
Versprechen<string[]>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
)
Gibt alle Regeln zurück, die mit der Erweiterung übereinstimmen. Aufrufer 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 für Erweiterungen mit der Berechtigung "activeTab"
verfügbar, die für die in filter
angegebene tabId
gewährt wurden. Hinweis: Regeln, die nicht mit einem aktiven Dokument verknüpft sind und vor mehr als fünf Minuten eine Übereinstimmung gefunden haben, werden nicht zurückgegeben.
Parameters
-
Filter
MatchedRulesFilter optional
Ein Objekt zum Filtern der Liste der übereinstimmenden Regeln.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(details: RulesMatchedDetails)=>void
-
Details
-
Rückgaben
-
Promise<RulesMatchedDetails>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
)
Gibt den aktuellen Satz von auf Sitzungsebene festgelegten Regeln für die Erweiterung zurück Aufrufer können die Liste der abgerufenen Regeln optional filtern, indem sie eine filter
angeben.
Parameters
-
Filter
GetRulesFilter optional
Chrome 111 und höherEin Objekt zum Filtern der Liste der abgerufenen Regeln.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(rules: Rule[])=>void
-
Regeln
Regel[]
-
Rückgaben
-
Promise<Regel[]>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
)
Überprüft, ob der angegebene reguläre Ausdruck als regexFilter
-Regelbedingung unterstützt wird.
Parameters
-
regexOptions
Regulärer Ausdruck, der geprüft werden soll
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(result: IsRegexSupportedResult)=>void
-
Ergebnis
-
Rückgaben
-
Promise<IsRegexSupportedResult>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
)
Konfiguriert, ob die Anzahl der Aktionen für Tabs als Badgetext der Erweiterungsaktion angezeigt werden soll, und bietet eine Möglichkeit, die Anzahl der Aktionen zu erhöhen.
Parameters
-
Optionen
-
callback
Funktion optional
Chrome 89 und höherDer Parameter
callback
sieht so aus:()=>void
Rückgaben
-
Promise<void>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
)
Prüft, ob eine der declarativeNetRequest-Regeln der Erweiterung mit einer hypothetischen Anfrage übereinstimmt. Hinweis: Diese Option ist nur für entpackte Erweiterungen verfügbar, da sie nur während der Entwicklung von Erweiterungen verwendet werden soll.
Parameters
-
Request
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:(result: TestMatchOutcomeResult)=>void
-
Ergebnis
-
Rückgaben
-
Promise<TestMatchOutcomeResult>
Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
)
Damit werden die aktuellen dynamischen Regeln für die Erweiterung geändert. Die Regeln mit den in options.removeRuleIds
aufgeführten IDs werden zuerst entfernt. Anschließend werden die in options.addRules
angegebenen Regeln hinzugefügt. Hinweise:
- Diese Aktualisierung erfolgt als einzelner atomarer Vorgang: Es werden entweder alle angegebenen Regeln hinzugefügt und entfernt oder es wird ein Fehler zurückgegeben.
- Diese Regeln werden über die Browsersitzung und über Erweiterungsupdates hinweg beibehalten.
- Statische Regeln, die als Teil des Erweiterungspakets festgelegt sind, können mit dieser Funktion nicht entfernt werden.
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
ist die maximale Anzahl kombinierter dynamischer Regeln und Sitzungsregeln, die eine Erweiterung hinzufügen kann.
Parameters
-
OptionenChrome 87 oder höher
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:()=>void
Rückgaben
-
Promise<void>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
)
Aktualisiert die Gruppe der aktivierten statischen Regelsätze für die Erweiterung. Die Regelsätze mit den IDs, die in options.disableRulesetIds
aufgeführt sind, werden zuerst entfernt. Anschließend werden die in options.enableRulesetIds
aufgeführten Regelsätze hinzugefügt.
Die aktivierten statischen Regelsätze werden sitzungsübergreifend, aber nicht über Erweiterungsupdates hinweg beibehalten. Das heißt, der Manifestschlüssel rule_resources
bestimmt die Gruppe der aktivierten statischen Regelsätze bei jedem Erweiterungsupdate.
Parameters
-
OptionenChrome 87 oder höher
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:()=>void
Rückgaben
-
Promise<void>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
)
Ändert den aktuellen Satz von Regeln auf Sitzungsebene für die Erweiterung. Die Regeln mit den in options.removeRuleIds
aufgeführten IDs werden zuerst entfernt. Anschließend werden die in options.addRules
angegebenen Regeln hinzugefügt. Hinweise:
- Diese Aktualisierung erfolgt als einzelner atomarer Vorgang: Es werden entweder 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 gestützt.
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
ist die maximale Anzahl kombinierter dynamischer Regeln und Sitzungsregeln, die eine Erweiterung hinzufügen kann.
Parameters
-
Optionen
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:()=>void
Rückgaben
-
Promise<void>
Chrome 91 und höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
)
Deaktiviert und aktiviert einzelne statische Regeln in einem Ruleset
. Änderungen an Regeln, die zu einer deaktivierten Ruleset
gehören, werden bei der nächsten Aktivierung wirksam.
Parameters
-
Optionen
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:()=>void
Rückgaben
-
Promise<void>
Promise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
Veranstaltungen
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 zum Debugging verwendet werden soll.
Parameters
-
callback
Funktion
Der Parameter
callback
sieht so aus:(info: MatchedRuleInfoDebug)=>void
-
Info
-