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:
domainTypeOptional-
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". domainsVeraltet Optional-
Ein Array von
string. Verwenden Sie stattdesseninitiatorDomains. Die Regel stimmt nur mit Netzwerk-Anfragen überein, die von dieser Liste von Domains stammen. excludedDomainsVeraltet Optional-
Ein Array von
string. Verwenden Sie stattdessenexcludedInitiatorDomains. Die Regel stimmt nicht mit Netzwerk-Anfragen überein, die von dieser Liste von Domains stammen. initiatorDomainsOptional-
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. excludedInitiatorDomainsOptional-
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. isUrlFilterCaseSensitiveOptional-
Ein
boolean. Ob derurlFilteroderregexFilter(welcher auch immer angegeben ist) case-sensitive ist. Während es einen Konsens gibt, in WECG issue 269 standardmäßig auffalsezu setzen, war der Wert in älteren Versionen von Chrome und Safaritrue. Siehe Browser-Kompatibilität für Details. regexFilterOptional-
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
regexFiltermuss 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.
requestDomainsOptional-
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. excludedRequestDomainsOptional-
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. requestMethodsOptional-
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 vonexcludedRequestMethodsdies nicht tut. excludedRequestMethodsOptional-
Ein Array von
string. Liste der Anfragemethoden, die die Regel nicht überprüft. Es sollte nur einer der beidenrequestMethods](#requestmethods) undexcludedRequestMethodsangegeben werden. Wenn keiner von beiden angegeben ist, werden alle Anfragemethoden überprüft. resourceTypesOptional-
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. excludedResourceTypesOptional-
Ein Array von
declarativeNetRequest.ResourceType. Liste der Ressourcentypen, mit denen die Regel nicht übereinstimmt. Es sollte nur einer der beidenresourceTypes](#resourcetypes) undexcludedResourceTypesangegeben werden. Wenn keiner von beiden angegeben ist, werden alle Ressourcentypen außer"main_frame"blockiert. responseHeadersOptional-
Ein Array von
declarativeNetRequest.HeaderInfo. Die Regel stimmt überein, wenn die Anfrage mit einer beliebigen Antwortheader-Bedingung in dieser Liste übereinstimmt (falls angegeben). excludedResponseHeadersOptional-
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 sowohlexcludedResponseHeadersals auchresponseHeadersangegeben sind, hat dieexcludedResponseHeaders-Eigenschaft Vorrang. tabIdsOptional-
Ein Array von
number. Liste dertabs.Tab.id, die die Regel überprüfen soll. Eine ID vontabs.TAB_ID_NONEstimmt mit Anfragen überein, die nicht von einem Tab stammen. Eine leere Liste ist nicht erlaubt. Nur für sitzungsbezogene Regeln unterstützt. excludedTabIdsOptional-
Ein Array von
number. Liste dertabs.Tab.id, die die Regel nicht überprüfen soll. Eine ID vontabs.TAB_ID_NONEschließt Anfragen aus, die nicht von einem Tab stammen. Nur für sitzungsbezogene Regeln unterstützt. urlFilterOptional-
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
urlFilterbesteht 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
urlFilteroderregexFilterangegeben werden. - Der
urlFiltermuss 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 derurlFiltergegen die URLhttp://abc.xn--p1ai/?q=%D1%84gematcht.
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.
Beispielerweiterungen
Browser-Kompatibilität
Loading…