declarativeNetRequest.RuleCondition
Details zur Bedingung, die bestimmt, ob eine Regel mit einer Anfrage übereinstimmt, als condition
-Eigenschaft der declarativeNetRequest.Rule
.
Typ
Werte dieses Typs sind Objekte. Sie enthalten folgende Eigenschaften:
domainType
Optional-
Ein
string
. Gibt an, ob die Netzwerk-Anfrage Erstanbieter oder Drittanbieter ist. Die Anfrage wird als Erstanbieter betrachtet, wenn sie für die gleiche Domain wie das Dokument oder Unterdokument ist, das die Anfrage initiiert. Andernfalls wird sie als Drittanbieter 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 stimmt nur mit Netzwerk-Anfragen überein, die von dieser Liste von Domains stammen. excludedDomains
Veraltet Optional-
Ein Array von
string
. Verwenden Sie stattdessenexcludedInitiatorDomains
. Die Regel stimmt nicht mit Netzwerk-Anfragen überein, die von dieser Liste von Domains stammen. initiatorDomains
Optional-
Ein Array von
string
. Die Regel stimmt nur mit Netzwerk-Anfragen überein, die von dieser Liste von Domains stammen. Wenn die Liste weggelassen wird, wird die Regel auf Anfragen von allen Domains angewendet. Eine leere Liste ist nicht erlaubt. Eine kanonische Domain sollte verwendet werden. Dies stimmt mit dem Initiator der Anfrage und nicht mit der Anfrage-URL überein. excludedInitiatorDomains
Optional-
Ein Array von
string
. Die Regel stimmt nicht mit Netzwerk-Anfragen überein, die von dieser Liste von Domains stammen. Wenn die Liste leer oder weggelassen wird, werden keine Domains ausgeschlossen. Dies hat Vorrang vorinitiatorDomains
. Eine kanonische Domain sollte verwendet werden. Dies stimmt mit dem Initiator der Anfrage und nicht mit der Anfrage-URL überein. isUrlFilterCaseSensitive
Optional-
Ein
boolean
. Ob derurlFilter
oderregexFilter
(welcher auch immer angegeben ist) case-sensitive ist. Während es einen Konsens gibt, in WECG issue 269 standardmäßig auffalse
zu setzen, 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 Netzwerk-Anfrage-URL übereinzustimmen. Beachten Sie:- Das unterstützte Format ist nicht stabil und variiert zwischen den Browsern, siehe "Regular expressions in DNR API (regexFilter)" in WECG issue 344 für Details.
- Es kann nur einer der beiden
[urlFilter
](#urlfilter) oderregexFilter
](#regexfilter) angegeben werden. - Der
regexFilter
muss nur aus ASCII-Zeichen bestehen. Dies wird gegen eine URL gematcht, bei der der Host im Punycode-Format kodiert ist (im Falle von internationalisierten Domains) und alle anderen Nicht-ASCII-Zeichen in UTF-8 percent-kodiert sind.
requestDomains
Optional-
Ein Array von
string
. Die Regel stimmt nur mit Netzwerk-Anfragen überein, wenn die Domain mit einer dieser Liste übereinstimmt. Wenn die Liste weggelassen wird, wird die Regel auf Anfragen von allen Domains angewendet. Eine leere Liste ist nicht erlaubt. Eine kanonische Domain sollte verwendet werden. excludedRequestDomains
Optional-
Ein Array von
string
. Die Regel stimmt nicht mit Netzwerk-Anfragen überein, wenn die Domain mit einer dieser Liste übereinstimmt. Wenn die Liste leer 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 die Regel überprüft. 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 die Regel nicht überprüft. Es sollte nur einer der beidenrequestMethods
](#requestmethods) undexcludedRequestMethods
angegeben werden. Wenn keiner von beiden angegeben ist, werden alle Anfragemethoden überprüft. 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. Es sollte nur einer der beidenresourceTypes
](#resourcetypes) undexcludedResourceTypes
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 Antwortheader-Bedingung in dieser Liste übereinstimmt (falls angegeben). excludedResponseHeaders
Optional-
Ein Array von
declarativeNetRequest.HeaderInfo
. Die Regel stimmt nicht überein, wenn die Anfrage mit einer beliebigen Antwortheader-Bedingung in dieser Liste übereinstimmt (falls angegeben). Wenn sowohlexcludedResponseHeaders
als auchresponseHeaders
angegeben sind, hat dieexcludedResponseHeaders
-Eigenschaft Vorrang. tabIds
Optional-
Ein Array von
number
. Liste dertabs.Tab
.id
, die die Regel überprüfen soll. 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 dertabs.Tab
.id
, die die Regel nicht überprüfen soll. 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 Netzwerk-Anfrage-URL übereinstimmt. Unterstützte Konstrukte:*
: Wildcard: Stimmt mit einer beliebigen Anzahl von Zeichen überein.|
: Linker oder rechter Anker: Wenn am Anfang oder Ende des Musters verwendet, gibt das den Anfang oder das Ende der URL an.||
: Domainname-Anker: Wenn am Anfang des Musters verwendet, gibt das den Start einer (Unter-)Domain der URL an.^
: Trennzeichen: Dies stimmt mit allem überein, außer mit Buchstaben, einer Ziffer oder einem der Zeichen_
,-
,.
, oder%
. Das letzte^
kann auch das Ende der URL statt eines Trennzeichens anzeigen.
Der
urlFilter
besteht aus folgenden Teilen: (optional linker/Domainname-Anker) + Muster + (optional rechter Anker). Wenn weggelassen, werden alle URLs überprüft. Ein leerer String ist nicht erlaubt. Ein Muster, das mit||*
beginnt, ist nicht erlaubt. Verwenden Sie stattdessen*
. Beachten Sie:- Es kann nur einer der beiden
urlFilter
oderregexFilter
angegeben werden. - Der
urlFilter
muss nur aus ASCII-Zeichen bestehen. Dies wird gegen eine URL gematcht, bei der der Host im Punycode-Format kodiert ist (im Falle von internationalisierten Domains) und alle anderen Nicht-ASCII-Zeichen in UTF-8 percent-kodiert sind. Beispielsweise wenn die Anfrage-URLhttp://abc.рф?q=ф
ist, wird derurlFilter
gegen die URLhttp://abc.xn--p1ai/?q=%D1%84
gematcht.
Kanonische Domain
Domains, die in initiatorDomains
, excludedInitiatorDomains
, requestDomains
oder excludedRequestDomains
angegeben sind, sollten den folgenden Anforderungen entsprechen:
- Sub-Domains wie "a.example.com" sind erlaubt.
- Die Einträge dürfen nur aus kleingeschriebenen ASCII-Zeichen bestehen.
- Verwenden Sie Punycode-Kodierung für internationalisierte Domains.
- IPv4-Adressen müssen als 4 durch Punkt getrennte Zahlen dargestellt werden.
- IPv6-Adressen sollten in ihrer kanonischen Form dargestellt und in eckige Klammern eingeschlossen werden.
Um die kanonische Domain für eine URL programmgesteuert zu erzeugen, verwenden Sie die URL API und lesen Sie ihre hostname
-Eigenschaft, z.B. new URL(url).hostname
.