declarativeNetRequest.RuleCondition

Details zur Bedingung, die bestimmt, ob eine Regel mit einer Anfrage übereinstimmt, als die condition-Eigenschaft von declarativeNetRequest.Rule.

Typ

Werte dieses Typs sind Objekte. Sie enthalten folgende Eigenschaften:

domainType Optional

Ein string. Gibt an, ob die Netzwerkanfrage First-Party oder Third-Party ist. Die Anfrage wird als First-Party betrachtet, wenn sie für dieselbe Domain wie das Dokument oder Subdokument ist, das die Anfrage initiiert. Andernfalls wird sie als Third-Party 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 entspricht nur Netzwerkanfragen, die von dieser Liste von Domains stammen.

excludedDomains Veraltet Optional

Ein Array von string. Verwenden Sie stattdessen excludedInitiatorDomains. Die Regel entspricht nicht Netzwerkanfragen, die von dieser Liste von Domains stammen.

initiatorDomains Optional

Ein Array von string. Die Regel entspricht nur Netzwerkanfragen, die von dieser Liste von Domains stammen. Wenn die Liste weggelassen wird, wird die Regel auf Anfragen aus allen Domains angewendet. Eine leere Liste ist nicht erlaubt. Eine kanonische Domain sollte verwendet werden. Dies entspricht dem Anfrager und nicht der Anfragen-URL.

excludedInitiatorDomains Optional

Ein Array von string. Die Regel entspricht nicht Netzwerkanfragen, die von dieser Liste von Domains stammen. Wenn die Liste leer ist oder weggelassen wird, werden keine Domains ausgeschlossen. Dies hat Vorrang vor initiatorDomains. Eine kanonische Domain sollte verwendet werden. Dies entspricht dem Anfrager und nicht der Anfragen-URL.

isUrlFilterCaseSensitive Optional

Ein boolean. Ob der urlFilter oder regexFilter (welcher auch immer angegeben ist) case-sensitive ist. Während es einen Konsens gibt, false als Standardwert über alle Browser hinweg gemäß WECG issue 269 zu verwenden, 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 Netzwerkanfragen-URL übereinzustimmen. Beachten Sie, dass:

requestDomains Optional

Ein Array von string. Die Regel entspricht nur Netzwerkanfragen, wenn die Domain mit einer aus dieser Liste übereinstimmt. Wenn die Liste weggelassen wird, wird die Regel auf Anfragen aus allen Domains angewendet. Eine leere Liste ist nicht erlaubt. Eine kanonische Domain sollte verwendet werden.

excludedRequestDomains Optional

Ein Array von string. Die Regel entspricht nicht Netzwerkanfragen, wenn die Domains mit einer aus dieser Liste übereinstimmen. Wenn die Liste leer ist 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 mit der Regel übereinstimmen. 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 mit der Regel nicht übereinstimmen. Nur eine von requestMethods und excludedRequestMethods sollte angegeben werden. Wenn keiner von beiden angegeben ist, werden alle Anfragemethoden abgeglichen.

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. Nur eine von resourceTypes und excludedResourceTypes sollte 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 Bedingung der Antwortheader in dieser Liste übereinstimmt (falls angegeben).

excludedResponseHeaders Optional

Ein Array von declarativeNetRequest.HeaderInfo. Die Regel stimmt nicht überein, wenn die Anfrage mit einer beliebigen Bedingung der Antwortheader 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 von tabs.Tab. id, die die Regel übereinstimmen sollte. 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 von tabs.Tab. id, mit der die Regel nicht übereinstimmen sollte. 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 Netzwerkanfragen-URL übereinstimmt. Unterstützte Konstrukte:

  • * : Platzhalter: Entspricht einer beliebigen Anzahl von Zeichen.
  • | : Linker oder rechter Anker: Wenn es an einem der Enden des Musters verwendet wird, gibt es den Anfang oder das Ende der URL an.
  • || : Anker für Domainnamen: Wenn es am Anfang des Musters verwendet wird, gibt es den Anfang eines (Sub-)Domains der URL an.
  • ^ : Trennzeichen: Dies entspricht allem außer einem Buchstaben, einer Zahl oder einem der Zeichen _, -, ., oder %. Das letzte ^ kann auch das Ende der URL anstelle eines Trennzeichens entsprechen.

urlFilter ist aus folgenden Teilen zusammengesetzt: (optionaler linker/Domain-Name-Anker) + Muster + (optional rechter Anker). Wenn weggelassen, werden alle URLs abgeglichen. Ein leerer String ist nicht erlaubt. Ein Muster, das mit ||* beginnt, ist nicht erlaubt. Verwenden Sie stattdessen *. Beachten Sie, dass:

  • Nur einer von urlFilter oder regexFilter kann angegeben werden.
  • Der urlFilter muss nur aus ASCII-Zeichen bestehen. Dies wird mit einer URL abgeglichen, bei der der Host im Punycode-Format (bei internationalisierten Domains) codiert ist und alle anderen nicht-ASCII-Zeichen in UTF-8 Prozent-kodiert sind. Zum Beispiel, wenn die Anfragen-URL http://abc.рф?q=ф ist, wird der urlFilter gegen die URL http://abc.xn--p1ai/?q=%D1%84 abgeglichen.

Kanonische Domain

Domains, die in initiatorDomains, excludedInitiatorDomains, requestDomains oder excludedRequestDomains angegeben sind, sollten Folgendes erfüllen:

  • Sub-Domains wie "a.example.com" sind erlaubt.
  • Die Einträge müssen nur aus kleinbuchstabigen ASCII-Zeichen bestehen.
  • Verwenden Sie Punycode Codierung 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 und in eckige Klammern gesetzt werden.

Um programmgesteuert die kanonische Domain für eine URL zu erzeugen, verwenden Sie die URL API und lesen deren hostname-Eigenschaft aus, d.h. new URL(url).hostname.

Beispielerweiterungen

Browser-Kompatibilität