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

excludedDomains Veraltet Optional

Ein Array von string. Nutzen Sie stattdessen excludedInitiatorDomains. 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 vor initiatorDomains. 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 der urlFilter oder regexFilter (welcher auch immer spezifiziert ist) groß- und kleinschreibungsempfindlich ist. Obwohl es einen Konsens gibt, standardmäßig false in allen Browsern wie in WECG issue 269 festgelegt, war der Wert in (älteren) Versionen von Chrome und Safari true. 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:

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 vor requestDomains. 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 einer requestMethods-Regelbedingung schließt auch Nicht-HTTP(s)-Anforderungen aus, während die Angabe von excludedRequestMethods dies nicht tut.

excludedRequestMethods Optional

Ein Array von string. Liste der Anforderungsmethoden, mit denen die Regel nicht übereinstimmt. Es sollte nur einer von requestMethods und excludedRequestMethods 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 von resourceTypes und excludedResourceTypes 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 sowohl excludedResponseHeaders als auch responseHeaders angegeben sind, hat die Eigenschaft excludedResponseHeaders Vorrang.

tabIds Optional

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

Beispielerweiterungen

Browser-Kompatibilität