declarativeNetRequest.RuleCondition
Details zur Bedingung, die bestimmt, ob eine Regel mit einer Anfrage übereinstimmt, als die condition
-Eigenschaft von declarativeNetRequest.Rule
.
Typ
Werte dieses Typs sind Objekte. Sie enthalten folgende Eigenschaften:
domainType
Optional-
Ein
string
. Gibt an, ob die Netzwerkanfrage First-Party oder Third-Party ist. Die Anfrage wird als First-Party betrachtet, wenn sie für dieselbe Domain wie das Dokument oder Subdokument ist, das die Anfrage initiiert. Andernfalls wird sie als Third-Party betrachtet. Wenn weggelassen, werden alle Anfragen akzeptiert. Mögliche Werte sind"firstParty"
und"thirdParty"
. domains
Veraltet Optional-
Ein Array von
string
. Verwenden Sie stattdesseninitiatorDomains
. Die Regel entspricht nur Netzwerkanfragen, die von dieser Liste von Domains stammen. excludedDomains
Veraltet Optional-
Ein Array von
string
. Verwenden Sie stattdessenexcludedInitiatorDomains
. Die Regel entspricht nicht Netzwerkanfragen, die von dieser Liste von Domains stammen. initiatorDomains
Optional-
Ein Array von
string
. Die Regel entspricht nur Netzwerkanfragen, die von dieser Liste von Domains stammen. Wenn die Liste weggelassen wird, wird die Regel auf Anfragen aus allen Domains angewendet. Eine leere Liste ist nicht erlaubt. Eine kanonische Domain sollte verwendet werden. Dies entspricht dem Anfrager und nicht der Anfragen-URL. excludedInitiatorDomains
Optional-
Ein Array von
string
. Die Regel entspricht nicht Netzwerkanfragen, die von dieser Liste von Domains stammen. Wenn die Liste leer ist oder weggelassen wird, werden keine Domains ausgeschlossen. Dies hat Vorrang vorinitiatorDomains
. Eine kanonische Domain sollte verwendet werden. Dies entspricht dem Anfrager und nicht der Anfragen-URL. isUrlFilterCaseSensitive
Optional-
Ein
boolean
. Ob derurlFilter
oderregexFilter
(welcher auch immer angegeben ist) case-sensitive ist. Während es einen Konsens gibt,false
als Standardwert über alle Browser hinweg gemäß WECG issue 269 zu verwenden, war der Wert in (älteren) Versionen von Chrome und Safaritrue
. Siehe Browser-Kompatibilität für Details. regexFilter
Optional-
Ein
string
. Regulärer Ausdruck, um mit der Netzwerkanfragen-URL übereinzustimmen. Beachten Sie, dass:- Das unterstützte Format ist nicht stabil und variiert zwischen Browsern, siehe "Regular expressions in DNR API (regexFilter)" in WECG issue 344 für Details.
- Nur einer von
urlFilter
oderregexFilter
kann angegeben werden. - Der
regexFilter
muss nur aus ASCII-Zeichen bestehen. Dies wird mit einer URL abgeglichen, bei der der Host im Punycode-Format (bei internationalisierten Domains) codiert ist und alle anderen nicht-ASCII-Zeichen in UTF-8 Prozent-kodiert sind.
requestDomains
Optional-
Ein Array von
string
. Die Regel entspricht nur Netzwerkanfragen, wenn die Domain mit einer aus dieser Liste übereinstimmt. Wenn die Liste weggelassen wird, wird die Regel auf Anfragen aus allen Domains angewendet. Eine leere Liste ist nicht erlaubt. Eine kanonische Domain sollte verwendet werden. excludedRequestDomains
Optional-
Ein Array von
string
. Die Regel entspricht nicht Netzwerkanfragen, wenn die Domains mit einer aus dieser Liste übereinstimmen. Wenn die Liste leer ist oder weggelassen wird, werden keine Domains ausgeschlossen. Dies hat Vorrang vorrequestDomains
. Eine kanonische Domain sollte verwendet werden. requestMethods
Optional-
Ein Array von
string
. Liste der HTTP-Anfragemethoden, die mit der Regel übereinstimmen. Eine leere Liste ist nicht erlaubt. Das Angeben einerrequestMethods
-Bedingung schließt auch nicht-http(s)-Anfragen aus, während das Angeben vonexcludedRequestMethods
dies nicht tut. excludedRequestMethods
Optional-
Ein Array von
string
. Liste der Anfragemethoden, die mit der Regel nicht übereinstimmen. Nur eine vonrequestMethods
undexcludedRequestMethods
sollte angegeben werden. Wenn keiner von beiden angegeben ist, werden alle Anfragemethoden abgeglichen. resourceTypes
Optional-
Ein Array von
declarativeNetRequest.ResourceType
. Liste der Ressourcentypen, mit denen die Regel übereinstimmt. Eine leere Liste ist nicht erlaubt. Dies muss für"allowAllRequests"
-Regeln angegeben werden und darf nur die Ressourcentypen"sub_frame"
und"main_frame"
enthalten. excludedResourceTypes
Optional-
Ein Array von
declarativeNetRequest.ResourceType
. Liste der Ressourcentypen, mit denen die Regel nicht übereinstimmt. Nur eine vonresourceTypes
undexcludedResourceTypes
sollte angegeben werden. Wenn keiner von beiden angegeben ist, werden alle Ressourcentypen außer"main_frame"
blockiert. responseHeaders
Optional-
Ein Array von
declarativeNetRequest.HeaderInfo
. Die Regel stimmt überein, wenn die Anfrage mit einer beliebigen Bedingung der Antwortheader in dieser Liste übereinstimmt (falls angegeben). excludedResponseHeaders
Optional-
Ein Array von
declarativeNetRequest.HeaderInfo
. Die Regel stimmt nicht überein, wenn die Anfrage mit einer beliebigen Bedingung der Antwortheader in dieser Liste übereinstimmt (falls angegeben). Wenn sowohlexcludedResponseHeaders
als auchresponseHeaders
angegeben sind, hat dieexcludedResponseHeaders
-Eigenschaft Vorrang. tabIds
Optional-
Ein Array von
number
. Liste vontabs.Tab
.id
, die die Regel übereinstimmen sollte. Eine ID vontabs.TAB_ID_NONE
stimmt mit Anfragen überein, die nicht von einem Tab stammen. Eine leere Liste ist nicht erlaubt. Nur für sitzungsbezogene Regeln unterstützt. excludedTabIds
Optional-
Ein Array von
number
. Liste vontabs.Tab
.id
, mit der die Regel nicht übereinstimmen sollte. Eine ID vontabs.TAB_ID_NONE
schließt Anfragen aus, die nicht von einem Tab stammen. Nur für sitzungsbezogene Regeln unterstützt. urlFilter
Optional-
Ein
string
. Das Muster, das mit der Netzwerkanfragen-URL übereinstimmt. Unterstützte Konstrukte:*
: Platzhalter: Entspricht einer beliebigen Anzahl von Zeichen.|
: Linker oder rechter Anker: Wenn es an einem der Enden des Musters verwendet wird, gibt es den Anfang oder das Ende der URL an.||
: Anker für Domainnamen: Wenn es am Anfang des Musters verwendet wird, gibt es den Anfang eines (Sub-)Domains der URL an.^
: Trennzeichen: Dies entspricht allem außer einem Buchstaben, einer Zahl oder einem der Zeichen_
,-
,.
, oder%
. Das letzte^
kann auch das Ende der URL anstelle eines Trennzeichens entsprechen.
urlFilter
ist aus folgenden Teilen zusammengesetzt: (optionaler linker/Domain-Name-Anker) + Muster + (optional rechter Anker). Wenn weggelassen, werden alle URLs abgeglichen. Ein leerer String ist nicht erlaubt. Ein Muster, das mit||*
beginnt, ist nicht erlaubt. Verwenden Sie stattdessen*
. Beachten Sie, dass:- Nur einer von
urlFilter
oderregexFilter
kann angegeben werden. - Der
urlFilter
muss nur aus ASCII-Zeichen bestehen. Dies wird mit einer URL abgeglichen, bei der der Host im Punycode-Format (bei internationalisierten Domains) codiert ist und alle anderen nicht-ASCII-Zeichen in UTF-8 Prozent-kodiert sind. Zum Beispiel, wenn die Anfragen-URLhttp://abc.рф?q=ф
ist, wird derurlFilter
gegen die URLhttp://abc.xn--p1ai/?q=%D1%84
abgeglichen.
Kanonische Domain
Domains, die in initiatorDomains
, excludedInitiatorDomains
, requestDomains
oder excludedRequestDomains
angegeben sind, sollten Folgendes erfüllen:
- Sub-Domains wie "a.example.com" sind erlaubt.
- Die Einträge müssen nur aus kleinbuchstabigen ASCII-Zeichen bestehen.
- Verwenden Sie Punycode Codierung für internationalisierte Domains.
- IPv4-Adressen müssen als 4 Zahlen dargestellt werden, die durch einen Punkt getrennt sind.
- IPv6-Adressen sollten in ihrer kanonischen Form dargestellt und in eckige Klammern gesetzt werden.
Um programmgesteuert die kanonische Domain für eine URL zu erzeugen, verwenden Sie die URL API und lesen deren hostname
-Eigenschaft aus, d.h. new URL(url).hostname
.