declarativeNetRequest.RuleCondition
Details der Bedingung, die bestimmt, ob eine Regel mit einer Anfrage ü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 Netzwerkanfrage erst- oder drittseitig ist. Die Anfrage wird als erstseitig betrachtet, wenn sie für dieselbe Domain wie das Dokument oder Unterdokument gilt, das die Anfrage initiiert. Andernfalls wird sie als drittseitig betrachtet. Wird sie 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 Netzwerkanfragen überein, die von dieser Liste von Domains stammen. excludedDomains
Veraltet Optional-
Ein Array von
string
. Verwenden Sie stattdessenexcludedInitiatorDomains
. Die Regel stimmt nicht mit Netzwerkanfragen überein, die von dieser Liste von Domains stammen. initiatorDomains
Optional-
Ein Array von
string
. Die Regel stimmt nur mit Netzwerkanfragen ü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 entspricht dem Anforderungsinitiator und nicht der Anforderungs-URL. excludedInitiatorDomains
Optional-
Ein Array von
string
. Die Regel stimmt nicht mit Netzwerkanfragen überein, die von dieser Liste von Domains stammen. Wenn die Liste leer oder weggelassen ist, wird keine Domain ausgeschlossen. Dies hat Vorrang vorinitiatorDomains
. Eine kanonische Domain sollte verwendet werden. Dies entspricht dem Anforderungsinitiator und nicht der Anforderungs-URL. isUrlFilterCaseSensitive
Optional-
Ein
boolean
. Ob derurlFilter
oderregexFilter
(je nachdem, welcher angegeben ist) groß-/kleinschreibungsempfindlich ist. Während Konsens besteht, standardmäßigfalse
in allen Browsern 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, der mit der Netzwerkanfrage-URL übereinstimmt. 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.
- Es kann nur entweder
urlFilter
oderregexFilter
angegeben werden. - Der
regexFilter
muss nur aus ASCII-Zeichen bestehen. Er wird mit einer URL abgeglichen, bei der der Host im Punycode-Format kodiert ist (im Falle internationalisierter Domains) und alle anderen nicht-ASCII-Zeichen im UTF-8 % kodiert sind.
requestDomains
Optional-
Ein Array von
string
. Die Regel stimmt nur mit Netzwerkanfragen überein, wenn die Domain mit einer aus 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 Netzwerkanfragen überein, wenn die Domain mit einer aus dieser Liste übereinstimmt. Wenn die Liste leer oder weggelassen ist, wird keine Domain ausgeschlossen. Dies hat Vorrang vorrequestDomains
. Eine kanonische Domain sollte verwendet werden. requestMethods
Optional-
Ein Array von
string
. Liste von HTTP-Anfragemethoden, mit denen die Regel übereinstimmt. Eine leere Liste ist nicht erlaubt. Die Angabe einerrequestMethods
-Regelbedingung schließt auch nicht-HTTP(s)-Anfragen aus, während die Angabe vonexcludedRequestMethods
dies nicht tut. excludedRequestMethods
Optional-
Ein Array von
string
. Liste von Anfragemethoden, mit denen die Regel nicht übereinstimmt. Es sollte nur einer von beiden,requestMethods
undexcludedRequestMethods
, angegeben werden. Wenn keiner von beiden angegeben ist, werden alle Anfragemethoden abgeglichen. resourceTypes
Optional-
Ein Array von
declarativeNetRequest.ResourceType
. Liste von 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 von Ressourcentypen, mit denen die Regel nicht übereinstimmt. Es sollte nur einer von beiden,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, wenn die Anfrage einer Bedingung für Antwort-Header in dieser Liste entspricht (falls angegeben). excludedResponseHeaders
Optional-
Ein Array von
declarativeNetRequest.HeaderInfo
. Die Regel stimmt nicht, wenn die Anfrage einer Bedingung für Antwort-Header in dieser Liste entspricht (falls angegeben). Wenn sowohlexcludedResponseHeaders
als auchresponseHeaders
angegeben sind, hat die EigenschaftexcludedResponseHeaders
Vorrang. tabIds
Optional-
Ein Array von
number
. Liste vontabs.Tab
.id
, die mit der Regel übereinstimmen 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 vontabs.Tab
.id
, die nicht mit der Regel übereinstimmen 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 Netzwerkanfrage-URL abgeglichen wird. Unterstützte Konstrukte:*
: Platzhalter: Entspricht einer beliebigen Anzahl von Zeichen.|
: Linker oder rechter Anker: Wenn am Anfang oder Ende des Musters verwendet, gibt es den Beginn oder das Ende der URL an.||
: Domainnamen-Anker: Wenn am Anfang des Musters verwendet, gibt es den Beginn einer (Unter-)Domain der URL an.^
: Trennzeichen: Dies entspricht allem außer einem Buchstaben, einer Ziffer oder einem der Zeichen_
,-
,.
, oder%
. Das letzte^
kann auch das Ende der URL anstelle eines Trennzeichens entsprechen.
Der
urlFilter
setzt sich aus den folgenden Teilen zusammen: (optional linker/Domainnamen-Anker) + Muster + (optional rechter Anker). Wird er weggelassen, werden alle URLs abgeglichen. Ein Leerzeichen ist nicht erlaubt. Ein Muster, das mit||*
beginnt, ist nicht erlaubt. Verwenden Sie stattdessen*
. Beachten Sie:- Es kann nur entweder
urlFilter
oderregexFilter
angegeben werden. - Der
urlFilter
muss nur aus ASCII-Zeichen bestehen. Dies wird mit einer URL abgeglichen, bei der der Host im Punycode-Format kodiert ist (im Falle internationalisierter Domains) und alle anderen nicht-ASCII-Zeichen im UTF-8 % kodiert sind. Zum Beispiel, wenn die Anforderungs-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 den folgenden Anforderungen genügen:
- Subdomains wie "a.example.com" sind erlaubt.
- Die Einträge müssen nur aus kleinbuchstabigen 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 eckigen Klammern stehen.
Um programmatisch die kanonische Domain für eine URL zu generieren, verwenden Sie die URL API und lesen Sie deren hostname
-Eigenschaft, z.B. new URL(url).hostname
.
Beispiel-Erweiterungen
Browser-Kompatibilität
BCD tables only load in the browser