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 stattdessen initiatorDomains. Die Regel stimmt nur mit Netzwerk-Anfragen überein, die von dieser Liste von Domains stammen.

excludedDomains Veraltet Optional

Ein Array von string. Verwenden Sie stattdessen excludedInitiatorDomains. 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 vor initiatorDomains. 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 der urlFilter oder regexFilter (welcher auch immer angegeben ist) case-sensitive ist. Während es einen Konsens gibt, in WECG issue 269 standardmäßig auf false zu setzen, war der Wert in älteren Versionen von Chrome und Safari true. 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) oder regexFilter](#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 vor requestDomains. 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 einer requestMethods-Bedingung schließt auch nicht-HTTP(s)-Anfragen aus, während das Angeben von excludedRequestMethods dies nicht tut.

excludedRequestMethods Optional

Ein Array von string. Liste der Anfragemethoden, die die Regel nicht überprüft. Es sollte nur einer der beiden requestMethods](#requestmethods) und excludedRequestMethods 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 beiden resourceTypes](#resourcetypes) und excludedResourceTypes 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 sowohl excludedResponseHeaders als auch responseHeaders angegeben sind, hat die excludedResponseHeaders-Eigenschaft Vorrang.

tabIds Optional

Ein Array von number. Liste der tabs.Tab. id, die die Regel überprüfen soll. Eine ID von tabs.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 der tabs.Tab. id, die die Regel nicht überprüfen soll. Eine ID von tabs.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 oder regexFilter 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-URL http://abc.рф?q=ф ist, wird der urlFilter gegen die URL http://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.

Beispielerweiterungen

Browser-Kompatibilität