declarativeNetRequest.RuleCondition
Details zu der Bedingung, die bestimmt, ob eine Regel mit einer Anforderung übereinstimmt, als condition
-Eigenschaft von declarativeNetRequest.Rule
.
Typ
Werte dieses Typs sind Objekte. Sie enthalten die folgenden Eigenschaften:
domainType
Optional-
Ein
string
. Gibt an, ob die Netzwerk-Anforderung von der gleichen oder einer anderen Domain stammt. Die Anforderung wird als von der gleichen Domain stammend betrachtet, wenn sie für dieselbe Domain wie das Dokument oder Sub-Dokument ist, das die Anforderung initiiert. Andernfalls wird sie als von einer anderen Domain stammend betrachtet. Wenn ausgelassen, werden alle Anforderungen akzeptiert. Mögliche Werte sind"firstParty"
und"thirdParty"
. domains
Veraltet Optional-
Ein Array von
string
. Nutzen Sie stattdesseninitiatorDomains
. Die Regel stimmt nur mit Netzwerk-Anforderungen überein, die von dieser Liste von Domains stammen. excludedDomains
Veraltet Optional-
Ein Array von
string
. Nutzen Sie stattdessenexcludedInitiatorDomains
. Die Regel stimmt nicht mit Netzwerk-Anforderungen überein, die von dieser Liste von Domains stammen. initiatorDomains
Optional-
Ein Array von
string
. Die Regel stimmt nur mit Netzwerk-Anforderungen überein, die von dieser Liste von Domains stammen. Wenn die Liste ausgelassen wird, wird die Regel auf Anforderungen von allen Domains angewendet. Eine leere Liste ist nicht zulässig. Eine kanonische Domain sollte verwendet werden. Dies stimmt mit dem Initiator der Anforderung überein und nicht mit der URL der Anforderung. excludedInitiatorDomains
Optional-
Ein Array von
string
. Die Regel stimmt nicht mit Netzwerk-Anforderungen überein, die von dieser Liste von Domains stammen. Wenn die Liste leer oder ausgelassen ist, sind keine Domains ausgeschlossen. Dies hat Vorrang vorinitiatorDomains
. Eine kanonische Domain sollte verwendet werden. Dies stimmt mit dem Initiator der Anforderung überein und nicht mit der URL der Anforderung. isUrlFilterCaseSensitive
Optional-
Ein
boolean
. Gibt an, ob derurlFilter
oderregexFilter
(welcher auch immer spezifiziert ist) groß- und kleinschreibungsempfindlich ist. Obwohl es einen Konsens gibt, standardmäßigfalse
in allen Browsern wie in WECG issue 269 festgelegt, war der Wert in (älteren) Versionen von Chrome und Safaritrue
. Für Details siehe Browser-Kompatibilität. regexFilter
Optional-
Ein
string
. Regulärer Ausdruck, der mit der Netzwerk-Anforderungs-URL abgeglichen wird. Beachten Sie, dass:- Das unterstützte Format ist nicht stabil und variiert je nach Browser, siehe "Regular expressions in DNR API (regexFilter)" in WECG issue 344 für Details.
- Es kann nur einer von
urlFilter
oderregexFilter
angegeben werden. - Der
regexFilter
muss nur aus ASCII-Zeichen bestehen. Dieser 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 prozentcodiert sind.
requestDomains
Optional-
Ein Array von
string
. Die Regel stimmt nur mit Netzwerk-Anforderungen überein, wenn die Domain mit einer aus dieser Liste übereinstimmt. Wenn die Liste ausgelassen wird, wird die Regel auf Anforderungen von allen Domains angewendet. Eine leere Liste ist nicht zulässig. Eine kanonische Domain sollte verwendet werden. excludedRequestDomains
Optional-
Ein Array von
string
. Die Regel stimmt nicht mit Netzwerk-Anforderungen überein, wenn die Domain mit einer aus dieser Liste übereinstimmt. Wenn die Liste leer oder ausgelassen ist, sind keine Domains ausgeschlossen. Dies hat Vorrang vorrequestDomains
. Eine kanonische Domain sollte verwendet werden. requestMethods
Optional-
Ein Array von
string
. Liste der HTTP-Anforderungsmethoden, mit denen die Regel übereinstimmt. Eine leere Liste ist nicht zulässig. Die Angabe einerrequestMethods
-Regelbedingung schließt auch Nicht-HTTP(s)-Anforderungen aus, während die Angabe vonexcludedRequestMethods
dies nicht tut. excludedRequestMethods
Optional-
Ein Array von
string
. Liste der Anforderungsmethoden, mit denen die Regel nicht übereinstimmt. Es sollte nur einer vonrequestMethods
undexcludedRequestMethods
angegeben werden. Wenn keiner von beiden angegeben ist, werden alle Anforderungsmethoden abgeglichen. resourceTypes
Optional-
Ein Array von
declarativeNetRequest.ResourceType
. Liste der Ressourcentypen, mit denen die Regel übereinstimmt. Eine leere Liste ist nicht zulässig. 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 vonresourceTypes
undexcludedResourceTypes
angegeben werden. Wenn keiner von beiden angegeben ist, sind alle Ressourcentypen außer"main_frame"
blockiert. responseHeaders
Optional-
Ein Array von
declarativeNetRequest.HeaderInfo
. Die Regel stimmt, wenn die Anforderung mit einer der Antwortheaderbedingungen in dieser Liste übereinstimmt (falls angegeben). excludedResponseHeaders
Optional-
Ein Array von
declarativeNetRequest.HeaderInfo
. Die Regel stimmt nicht, wenn die Anforderung mit einer der Antwortheaderbedingungen in dieser Liste übereinstimmt (falls angegeben). Wenn sowohlexcludedResponseHeaders
als auchresponseHeaders
angegeben sind, hat die EigenschaftexcludedResponseHeaders
Vorrang. tabIds
Optional-
Ein Array von
number
. Liste vontabs.Tab
.id
, mit der die Regel übereinstimmen soll. Eine ID vontabs.TAB_ID_NONE
stimmt mit Anforderungen überein, die nicht von einem Tab stammen. Eine leere Liste ist nicht zulässig. Nur für session-gebundene Regeln unterstützt. excludedTabIds
Optional-
Ein Array von
number
. Liste vontabs.Tab
.id
, mit der die Regel nicht übereinstimmen soll. Eine ID vontabs.TAB_ID_NONE
schließt Anforderungen aus, die nicht von einem Tab stammen. Nur für session-gebundene Regeln unterstützt. urlFilter
Optional-
Ein
string
. Das Muster, das mit der Netzwerk-Anforderungs-URL abgeglichen wird. Unterstütze Konstrukte:*
: Platzhalter: Stimmt mit einer beliebigen Anzahl von Zeichen überein.|
: Linker oder rechter Anker: Wenn am Anfang oder Ende des Musters verwendet, spezifiziert den Anfang oder das Ende der URL.||
: Domainnameanker: Wenn am Anfang des Musters verwendet, spezifiziert den Anfang einer (Unter-) Domain der URL.^
: Trennzeichen: Dies stimmt mit allem überein außer einem Buchstaben, einer Ziffer oder einem von_
,-
,.
, oder%
. Das letzte^
kann auch mit dem Ende der URL und nicht mit einem Trennzeichen übereinstimmen.
urlFilter
besteht aus den folgenden Teilen: (optional linker/Domainnameanker) + Muster + (optional rechter Anker). Wenn weggelassen, werden alle URLs abgeglichen. Ein leerer String ist nicht zulässig. Ein Muster, das mit||*
beginnt, ist nicht zulässig. Verwenden Sie stattdessen*
. Beachten Sie, dass:- Es kann nur einer von
urlFilter
oderregexFilter
angegeben werden. - Der
urlFilter
muss nur aus ASCII-Zeichen bestehen. Dieser wird mit einer URL verglichen, bei der der Host im Punycode-Format codiert ist (bei internationalisierten Domains) und alle anderen Nicht-ASCII-Zeichen in UTF-8 prozentcodiert sind. Zum Beispiel, wenn die Anforderungs-URLhttp://abc.рф?q=ф
ist, wird derurlFilter
mit der URLhttp://abc.xn--p1ai/?q=%D1%84
abgeglichen.
Kanonische Domain
Domains, die in initiatorDomains
, excludedInitiatorDomains
, requestDomains
oder excludedRequestDomains
angegeben sind, sollten den folgenden Anforderungen entsprechen:
- Subdomains wie "a.example.com" sind erlaubt.
- Die Einträge müssen aus nur kleineren ASCII-Zeichen bestehen.
- Verwenden Sie Punycode-Kodierung 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 werden und in eckige Klammern gesetzt werden.
Um die kanonische Domain für eine URL programmgesteuert zu erzeugen, nutzen Sie die URL API und lesen Sie ihre hostname
-Eigenschaft, z. B. new URL(url).hostname
.