chrome.declarativeNetRequest

Beschreibung

Die chrome.declarativeNetRequest API wird verwendet, um Netzwerkanfragen durch die Angabe deklarativer Regeln zu blockieren oder zu ändern. Dadurch können Erweiterungen Netzwerkanfragen ändern, ohne sie abzufangen und sich ihre Inhalte anzusehen, was für mehr Datenschutz sorgt.

Berechtigungen

declarativeNetRequest
declarativeNetRequestWithHostAccess

Die Berechtigungen „declarativeNetRequest“ und „declarativeNetRequestWithHostAccess“ bieten dieselben Funktionen. Der Unterschied besteht darin, wann Berechtigungen angefordert oder gewährt werden.

"declarativeNetRequest"
Löst bei der Installation eine Berechtigungswarnung aus, bietet aber impliziten Zugriff auf die Regeln allow, allowAllRequests und block. Verwenden Sie diese Option nach Möglichkeit, damit Sie keinen vollen Zugriff auf Hosts anfordern müssen.
"declarativeNetRequestFeedback"
Aktiviert Debugging-Funktionen für entpackte Erweiterungen, insbesondere getMatchedRules() und onRuleMatchedDebug.
"declarativeNetRequestWithHostAccess"
Bei der Installation wird keine Berechtigungswarnung angezeigt, aber Sie müssen Hostberechtigungen anfordern, bevor Sie eine Aktion auf einem Host ausführen können. Dies ist sinnvoll, wenn Sie deklarative Netzanfrageregeln in einer Erweiterung verwenden möchten, die bereits Hostberechtigungen hat, ohne zusätzliche Warnungen zu generieren.

Verfügbarkeit

Chrome 84 und höher

Manifest

Zusätzlich zu den oben beschriebenen Berechtigungen erfordern bestimmte Arten von Regelsätzen, insbesondere statische Regelsätze, die Deklaration des Manifestschlüssels "declarative_net_request". Dieser sollte ein Wörterbuch mit einem einzelnen Schlüssel namens "rule_resources" sein. Dieser Schlüssel ist ein Array mit Wörterbüchern des Typs Ruleset, wie im Folgenden dargestellt. Beachten Sie, dass der Name "Ruleset" nicht im JSON-Format des Manifests enthalten ist, da es sich nur um ein Array handelt. Statische Regelsätze werden weiter unten in diesem Dokument erläutert.

{
  "name": "My extension",
  ...

  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    }, {
      "id": "ruleset_2",
      "enabled": false,
      "path": "rules_2.json"
    }]
  },
  "permissions": [
    "declarativeNetRequest",
    "declarativeNetRequestFeedback",
  ],
  "host_permissions": [
    "http://www.blogger.com/*",
    "http://*.google.com/*"
  ],
  ...
}

Konzepte und Nutzung

Geben Sie einen oder mehrere Regelsätze an, um diese API zu verwenden. Ein Regelsatz enthält ein Array mit Regeln. Eine einzelne Regel führt eine der folgenden Aktionen aus:

  • Eine Netzwerkanfrage blockieren.
  • Führen Sie ein Upgrade des Schemas von http zu https durch.
  • Sie können verhindern, dass eine Anfrage blockiert wird, indem Sie übereinstimmende blockierte Regeln negieren.
  • Leiten Sie eine Netzwerkanfrage weiter.
  • Anfrage- oder Antwortheader ändern

Es gibt drei Arten von Regelsätzen, die auf leicht unterschiedliche Weise verwaltet werden.

Dynamisch
Sie bleiben über alle Browsersitzungen und Erweiterungen bestehen und werden mit JavaScript verwaltet, solange eine Erweiterung verwendet wird.
Sitzung
Wird gelöscht, wenn der Browser heruntergefahren und eine neue Version der Erweiterung installiert wird. Sitzungsregeln werden mit JavaScript verwaltet, solange eine Erweiterung verwendet wird.
Statisch
Gepackt, installiert und aktualisiert, wenn eine Erweiterung installiert oder aktualisiert wird. Statische Regeln werden in Regeldateien im JSON-Format gespeichert und in der Manifestdatei aufgeführt.

In den nächsten Abschnitten werden die Regelsatztypen ausführlich erläutert.

Dynamische und sitzungsbezogene Regelsätze

Dynamische Regelsätze und Sitzungsregeln werden mithilfe von JavaScript verwaltet, solange eine Erweiterung verwendet wird.

  • Dynamische Regeln bleiben über Browsersitzungen und Erweiterungsupgrades hinweg erhalten.
  • Sitzungsregeln werden gelöscht, wenn der Browser heruntergefahren und eine neue Version der Erweiterung installiert wird.

Es gibt jeweils nur einen dieser Regelsatztypen. Von einer Erweiterung können durch Aufrufen von updateDynamicRules() und updateSessionRules() dynamisch Regeln hinzugefügt oder entfernt werden, sofern die Regeln nicht überschritten werden. Informationen zu Regellimits finden Sie unter Regellimits. Ein entsprechendes Beispiel finden Sie unter Codebeispiele.

Statische Regelsätze

Im Gegensatz zu dynamischen und Sitzungsregeln werden statische Regeln gepackt, installiert und aktualisiert, wenn eine Erweiterung installiert oder aktualisiert wird. Sie werden in Regeldateien im JSON-Format gespeichert, die mit den Schlüsseln "declarative_net_request" und "rule_resources" wie oben beschrieben an die Erweiterung und in einem oder mehreren Ruleset-Wörterbüchern angegeben werden. Ein Ruleset-Wörterbuch enthält einen Pfad zur Regeldatei, eine ID für den in der Datei enthaltenen Regelsatz und Angaben dazu, ob der Regelsatz aktiviert oder deaktiviert ist. Die letzten beiden sind wichtig, wenn Sie einen Regelsatz programmatisch aktivieren oder deaktivieren.

{
  ...
  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    },
    ...
    ]
  }
  ...
}

Wenn Sie Regeldateien testen möchten, laden Sie die entpackte Erweiterung. Fehler und Warnungen zu ungültigen statischen Regeln werden nur für entpackte Erweiterungen angezeigt. Ungültige statische Regeln in gepackten Erweiterungen werden ignoriert.

Statische Regeln und Regelsätze aktivieren und deaktivieren

Sowohl einzelne statische Regeln als auch vollständige statische Regelsätze können zur Laufzeit aktiviert oder deaktiviert werden.

Die aktivierten statischen Regeln und Regelsätze werden über die Browsersitzungen hinweg beibehalten. Beide werden auch nicht bei Erweiterungsupdates beibehalten. Das bedeutet, dass nur die Regeln, die Sie in Ihren Regeldateien beibehalten haben, nach einem Update verfügbar sind.

Aus Leistungsgründen gelten außerdem Einschränkungen für die Anzahl der Regeln und Regelsätze, die gleichzeitig aktiviert werden können. Rufen Sie getAvailableStaticRuleCount() auf, um die Anzahl der zusätzlichen Regeln zu prüfen, die möglicherweise aktiviert werden. Informationen zu Regellimits finden Sie unter Regellimits.

Rufen Sie updateStaticRules() auf, um statische Regeln zu aktivieren oder zu deaktivieren. Diese Methode verwendet ein UpdateStaticRulesOptions-Objekt, das Arrays mit IDs mit Regeln enthält, die aktiviert oder deaktiviert werden sollen. Die IDs werden mit dem Schlüssel "id" des Ruleset-Wörterbuchs definiert.

Rufen Sie updateEnabledRulesets() auf, um statische rulesets zu aktivieren oder zu deaktivieren. Diese Methode verwendet ein UpdateRulesetOptions-Objekt, das Arrays mit IDs von Regelsätzen enthält, die aktiviert oder deaktiviert werden sollen. Die IDs werden mit dem Schlüssel "id" des Ruleset-Wörterbuchs definiert.

Build-Regeln

Unabhängig vom Typ beginnt eine Regel mit vier Feldern, wie unten dargestellt. Für die Schlüssel „"id"“ und „"priority"“ ist eine Zahl erforderlich. Die Schlüssel "action" und "condition" können jedoch mehrere Bedingungen zum Blockieren und Umleiten bereitstellen. Mit der folgenden Regel werden alle Skriptanfragen von "foo.com" an eine URL mit "abc" als Teilstring blockiert.

{
  "id" : 1,
  "priority": 1,
  "action" : { "type" : "block" },
  "condition" : {
    "urlFilter" : "abc",
    "initiatorDomains" : ["foo.com"],
    "resourceTypes" : ["script"]
  }
}

Mit urlFilter übereinstimmende Zeichen

Mit dem Schlüssel "condition" einer Regel kann ein "urlFilter"-Schlüssel auf URLs unter einer bestimmten Domain angewendet werden. Sie erstellen Muster mit Tokens für den Musterabgleich. Hier sind einige Beispiele.

urlFilter Übereinstimmungen Stimmt nicht überein mit
"abc" https://abcd.com
https://example.com/abcd
https://ab.com
"abc*d" https://abcd.com
https://example.com/abcxyzd
https://abc.com
"||a.example.com" https://a.example.com/
https://b.a.example.com/xyz
https://example.com/
"|https*" https://example.com http://example.com/
http://https.com
"example*^123|" https://example.com/123
http://abc.com/example?123
https://example.com/1234
https://abc.com/example0123

Regelpriorisierung

Regeln werden durch Anfragen ausgelöst, die von Webseiten gesendet werden. Wenn mehrere Regeln mit einer bestimmten Anfrage übereinstimmen, müssen die Regeln priorisiert werden. In diesem Abschnitt wird ihre Priorisierung erläutert. Die Priorisierung erfolgt in zwei Phasen.

  1. Die Priorität wird für Regeln innerhalb einer Erweiterung bestimmt.
  2. Wenn mehrere Erweiterungen eine Regel auf eine Anfrage anwenden können, wird die Priorität für alle Erweiterungen bestimmt, die einer bestimmten Anfrage entsprechen.

Ein Beispiel für eine solche Zuordnung: Die Regel, die eine bestimmte Erweiterung priorisiert, wird gegenüber den Regeln anderer Erweiterungen priorisiert.

Regelpriorisierung innerhalb einer Erweiterung

Innerhalb einer einzelnen Erweiterung wird die Priorisierung mithilfe des folgenden Prozesses festgelegt:

  1. Die Regel mit der höchsten vom Entwickler definierten Priorität (mit anderen Worten, das Feld "priority") wird zurückgegeben.
  2. Wenn es mehr als eine Regel mit der höchsten vom Entwickler definierten Priorität gibt, werden die Regeln mithilfe des Felds "action" in der folgenden Reihenfolge priorisiert:

    1. allow
    2. allowAllRequests
    3. block
    4. upgradeScheme
    5. redirect
  3. Wenn der Aktionstyp nicht block oder redirect ist, werden alle übereinstimmenden modifyHeaders-Regeln ausgewertet. Regeln mit einer vom Entwickler definierten Priorität, die niedriger als die für allow und allowAllRequests angegebene Priorität sind, werden ignoriert.

  4. Wenn mehrere Regeln denselben Header ändern, wird die Änderung durch das vom Entwickler definierte Feld "priority" und durch die angegebenen Vorgänge bestimmt.

    • Wenn eine Regel an einen Header angehängt wird, können Regeln mit niedrigerer Priorität nur an diesen Header angehängt werden. Festlegen und Entfernen sind nicht zulässig.
    • Wenn eine Regel einen Header festlegt, können Regeln mit niedrigerer Priorität nur an diesen Header angehängt werden. Andere Änderungen sind nicht zulässig.
    • Wenn eine Kopfzeile durch eine Regel entfernt wird, können Regeln mit niedrigerer Priorität den Header nicht weiter ändern.

Regelpriorisierung zwischen Erweiterungen

Wenn es nur für eine Erweiterung eine Regel gibt, die mit einer Anfrage übereinstimmt, wird diese Regel angewendet. Wenn jedoch mehr als eine Erweiterung einer Anfrage entspricht, wird so vorgegangen:

  1. Regeln werden mithilfe des Felds "action" in der folgenden Reihenfolge priorisiert:

    1. block
    2. redirect oder upgradeScheme
    3. allow oder allowAllRequests
  2. Wenn mehrere Regeln zutreffen, hat die zuletzt installierte Erweiterung Priorität.

Limits für Regeln

Das Laden und Auswerten von Regeln im Browser verursacht einen Leistungsaufwand. Daher gelten bei Verwendung der API einige Einschränkungen. Limits hängen von der Art der Regel ab, die Sie verwenden.

Statische Regeln

Statische Regeln sind die in Regeldateien, die in der Manifestdatei deklariert sind. Eine Erweiterung kann bis zu 100 statische rulesets als Teil des Manifestschlüssels "rule_resources" angeben, es können jedoch nur 50 dieser Regelsätze gleichzeitig aktiviert werden. Letzteres wird als MAX_NUMBER_OF_ENABLED_STATIC_RULESETS bezeichnet. Für diese Regelsätze werden insgesamt mindestens 30.000 Regeln garantiert. Dies wird als GUARANTEED_MINIMUM_STATIC_RULES bezeichnet.

Wie viele Regeln danach verfügbar sind, hängt davon ab, wie viele Regeln von allen Erweiterungen aktiviert werden, die auf dem Browser eines Nutzers installiert sind. Sie finden diese Nummer zur Laufzeit, indem Sie getAvailableStaticRuleCount() aufrufen. Ein entsprechendes Beispiel finden Sie unter Codebeispiele.

Sitzungsregeln

Eine Erweiterung kann bis zu 5.000 Sitzungsregeln haben. Diese wird als MAX_NUMBER_OF_SESSION_RULES bereitgestellt.

Vor Chrome 120 gab es ein Limit von 5.000 kombinierten dynamischen und Sitzungsregeln.

Dynamische Regeln

Eine Erweiterung kann mindestens 5.000 dynamische Regeln umfassen. Diese wird als MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES bereitgestellt.

Ab Chrome 121 ist ein höheres Limit von 30.000 Regeln für sichere dynamische Regeln verfügbar, die als MAX_NUMBER_OF_DYNAMIC_RULES dargestellt werden. Sichere Regeln werden als Regeln mit der Aktion block, allow, allowAllRequests oder upgradeScheme definiert. Alle unsicheren Regeln, die innerhalb des Limits von 5.000 hinzugefügt werden, werden ebenfalls auf dieses Limit angerechnet.

Vor Chrome 120 galt eine Gesamtbeschränkung von 5.000 dynamischen Regeln und Sitzungsregeln.

Regeln mit regulären Ausdrücken

Für alle Regeltypen können reguläre Ausdrücke verwendet werden, die Gesamtzahl der Regeln für reguläre Ausdrücke pro Typ darf jedoch 1.000 nicht überschreiten. Dies wird als MAX_NUMBER_OF_REGEX_RULES bezeichnet.

Außerdem muss jede Regel nach der Kompilierung kleiner als 2 KB sein. Dies korreliert in etwa mit der Komplexität der Regel. Wenn Sie versuchen, eine Regel zu laden, die diesen Grenzwert überschreitet, erhalten Sie eine Warnung wie die folgende und die Regel wird ignoriert.

rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.

Interaktionen mit Service Workern

Ein deklarativeNetRequest gilt nur für Anfragen, die den Netzwerkstack erreichen. Dazu gehören Antworten aus dem HTTP-Cache, aber möglicherweise keine Antworten, die den onfetch-Handler eines Service Workers durchlaufen. declarativeNetRequest wirkt sich nicht auf Antworten aus, die vom Service Worker generiert oder aus CacheStorage abgerufen wurden, aber Aufrufe von fetch() in einem Service Worker.

Über das Web zugängliche Ressourcen

Eine deklarativeNetRequest-Regel kann nicht von einer öffentlichen Ressourcenanfrage zu einer Ressource weiterleiten, die nicht über das Internet zugänglich ist. Das führt zu einem Fehler. Dies gilt auch dann, wenn die angegebene über das Web zugängliche Ressource der Weiterleitungserweiterung gehört. Verwenden Sie das "web_accessible_resources"-Array des Manifests, um Ressourcen für deklarativeNetRequest zu deklarieren.

Beispiele

Codebeispiele

Dynamische Regeln aktualisieren

Das folgende Beispiel zeigt, wie updateDynamicRules() aufgerufen wird. Die Vorgehensweise für updateSessionRules() ist dieselbe.

// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);

// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
  removeRuleIds: oldRuleIds,
  addRules: newRules
});

Statische Regelsätze aktualisieren

Das folgende Beispiel zeigt, wie Regelsätze unter Berücksichtigung der Anzahl der verfügbaren und der maximalen Anzahl aktivierter statischer Regelsätze aktiviert und deaktiviert werden. Dies ist der Fall, wenn die Anzahl der benötigten statischen Regeln die zulässige Anzahl überschreitet. Damit dies funktioniert, sollten einige Ihrer Regelsätze installiert sein und einige Regelsätze deaktiviert sein ("Enabled" in der Manifestdatei auf false setzen).

async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
  // Create the options structure for the call to updateEnabledRulesets()
  let options = { enableRulesetIds: enableRulesetIds }
  // Get the number of enabled static rules
  const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
  // Compare rule counts to determine if anything needs to be disabled so that
  // new rules can be enabled
  const proposedCount = enableRulesetIds.length;
  if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
    options.disableRulesetIds = disableCandidateIds
  }
  // Update the enabled static rules
  await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}

Regelbeispiele

Die folgenden Beispiele veranschaulichen, wie Chrome Regeln in einer Erweiterung priorisiert. Beim Überprüfen können Sie die Regeln für die Priorisierung in einem separaten Fenster öffnen.

Der Schlüssel „Priorität“

Für diese Beispiele ist eine Hostberechtigung für *://*.example.com/* erforderlich.

Um die Priorität einer bestimmten URL zu ermitteln, sehen Sie sich die (vom Entwickler definierten) Schlüssel "priority", "action" und "urlFilter" an. Diese Beispiele beziehen sich auf die unten gezeigte Beispielregeldatei.

Rufen Sie https://google.com auf.
Diese URL wird von zwei Regeln abgedeckt: die Regeln mit den IDs 1 und 4. Die Regel mit der ID 1 wird angewendet, weil "block" Aktionen eine höhere Priorität als "redirect" Aktionen haben. Die restlichen Regeln gelten nicht, da sie sich auf längere URLs beziehen.
Rufen Sie https://google.com/1234 auf.
Wegen der längeren URL stimmt jetzt zusätzlich zu den Regeln mit den IDs 1 und 4 auch die Regel mit der ID 2 überein. Die Regel mit der ID 2 wird angewendet, weil "allow" eine höhere Priorität als "block" und "redirect" hat.
Rufen Sie https://google.com/12345 auf.
Alle vier Regeln stimmen mit dieser URL überein. Die Regel mit der ID 3 gilt, weil ihre vom Entwickler definierte Priorität die höchste der Gruppe ist.
[
  {
    "id": 1,
    "priority": 1,
    "action": { "type": "block" },
    "condition": {"urlFilter": "google.com", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 2,
    "priority": 1,
    "action": { "type": "allow" },
    "condition": { "urlFilter": "google.com/123", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 3,
    "priority": 2,
    "action": { "type": "block" },
    "condition": { "urlFilter": "google.com/12345", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 4,
    "priority": 1,
    "action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
    "condition": { "urlFilter": "google.com", "resourceTypes": ["main_frame"] }
  },
]

Weiterleitungen

Im folgenden Beispiel ist eine Hostberechtigung für *://*.example.com/* erforderlich.

Das folgende Beispiel zeigt, wie eine Anfrage von beispiel.de an eine Seite innerhalb der Erweiterung selbst weitergeleitet wird. Der Erweiterungspfad „/a.jpg“ wird in „chrome-extension://EXTENSION_ID/a.jpg“ aufgelöst, wobei EXTENSION_ID die ID der Erweiterung ist. Damit dies funktioniert, sollte im Manifest /a.jpg als über das Web zugängliche Ressource deklariert werden.

{
  "id": 1,
  "priority": 1,
  "action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
  "condition": {
    "urlFilter": "https://www.example.com",
    "resourceTypes": ["main_frame"]
  }
}

Im folgenden Beispiel wird der Schlüssel "transform" für die Weiterleitung zu einer Subdomain von beispiel.de verwendet. Dabei wird ein Domainnamen-Anker („||“) verwendet, um Anfragen mit einem beliebigen Schema von beispiel.de abzufangen. Der Schlüssel "scheme" in "transform" gibt an, dass bei Weiterleitungen zur Subdomain immer „https“ verwendet wird.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "transform": { "scheme": "https", "host": "new.example.com" }
    }
  },
  "condition": {
    "urlFilter": "||example.com",
    "resourceTypes": ["main_frame"]
  }
}

Im folgenden Beispiel werden reguläre Ausdrücke verwendet, um eine Weiterleitung von https://www.abc.xyz.com/path zu https://abc.xyz.com/path durchzuführen. Im Schlüssel "regexFilter" sind Punkte maskiert und in der Erfassungsgruppe wird entweder „abc“ oder „def“ ausgewählt. Der Schlüssel "regexSubstitution" gibt die erste zurückgegebene Übereinstimmung mit dem regulären Ausdruck mit "\1" an. In diesem Fall wird "abc" von der weitergeleiteten URL erfasst und als Ersatz eingefügt.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "regexSubstitution": "https://\\1.xyz.com/"
    }
  },
  "condition": {
    "regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
    "resourceTypes": [
      "main_frame"
    ]
  }
}

Header

Im folgenden Beispiel werden alle Cookies sowohl aus einem Hauptframe als auch aus allen Subframes entfernt.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "modifyHeaders",
    "requestHeaders": [{ "header": "cookie", "operation": "remove" }]
  },
  "condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}

Typen

DomainType

Dies beschreibt, ob die Anfrage für den Frame, aus dem sie stammt, oder ein Drittanbieter ist. Eine Anfrage gilt als eigene Anfrage, wenn sie dieselbe Domain (eTLD+1) wie der Frame hat, aus dem die Anfrage stammt.

Enum

"firstParty"
Die Netzwerkanfrage bezieht sich auf den Erstanbieter des Frames, aus dem sie stammt.

"thirdParty"
Die Netzwerkanfrage ist ein Drittanbieter des Frames, aus dem sie stammt.

ExtensionActionOptions

Chrome 88 und höher

Attribute

  • displayActionCountAsBadgeText

    Boolescher Wert optional

    Gibt an, ob die Anzahl der Aktionen für eine Seite automatisch als Badgetext der Erweiterung angezeigt wird. Diese Einstellung bleibt über mehrere Sitzungen hinweg erhalten.

  • tabUpdate
    Chrome 89 und höher

    Details zum Anpassen der Anzahl der Aktionen des Tabs.

GetDisabledRuleIdsOptions

Chrome 111 und höher

Attribute

  • rulesetId

    String

    Die ID, die einem statischen Ruleset entspricht.

GetRulesFilter

Chrome 111 und höher

Attribute

  • ruleIds

    nummer[] optional

    Wenn angegeben, werden nur Regeln mit übereinstimmenden IDs einbezogen.

HeaderOperation

Chrome 86 und höher

Dies beschreibt die möglichen Vorgänge für die Regel "modifyHeaders".

Enum

"append"
Fügt einen neuen Eintrag für den angegebenen Header hinzu. Dieser Vorgang wird für Anfrageheader nicht unterstützt.

"set"
Legt einen neuen Wert für den angegebenen Header fest und entfernt alle vorhandenen Header mit demselben Namen.

"remove"
Entfernt alle Einträge für den angegebenen Header.

IsRegexSupportedResult

Chrome 87 oder höher

Attribute

  • isSupported

    boolean

  • reason

    Gibt den Grund an, warum der reguläre Ausdruck nicht unterstützt wird. Wird nur angegeben, wenn isSupported „false“ ist.

MatchedRule

Attribute

  • ruleId

    Zahl

    Die ID einer übereinstimmenden Regel.

  • rulesetId

    String

    ID des Ruleset, zu dem diese Regel gehört. Bei einer Regel aus der Gruppe dynamischer Regeln ist der Wert DYNAMIC_RULESET_ID.

MatchedRuleInfo

Attribute

  • Regel
  • tabId

    Zahl

    Die tabId des Tabs, von dem die Anfrage stammt, wenn der Tab noch aktiv ist. Andernfalls: -1.

  • timeStamp

    Zahl

    Der Zeitpunkt, zu dem die Regel abgeglichen wurde. Die Zeitstempel entsprechen der JavaScript-Konvention für Uhrzeiten, d.h. der Anzahl von Millisekunden seit der Epoche.

MatchedRuleInfoDebug

Attribute

MatchedRulesFilter

Attribute

  • minTimeStamp

    Nummer optional

    Wenn angegeben, werden nur Regeln nach dem angegebenen Zeitstempel abgeglichen.

  • tabId

    Nummer optional

    Wenn angegeben, werden nur Regeln für den angegebenen Tab abgeglichen. Stimmt mit Regeln überein, die mit keinem aktiven Tab verknüpft sind, wenn der Wert auf -1 gesetzt ist.

ModifyHeaderInfo

Chrome 86 und höher

Attribute

  • Header

    String

    Der Name des Headers, der geändert werden soll.

  • Vorgang

    Der Vorgang, der für einen Header ausgeführt werden soll.

  • value

    String optional

    Der neue Wert für den Header. Muss für append- und set-Vorgänge angegeben werden.

QueryKeyValue

Attribute

  • Schlüssel

    String

  • replaceOnly

    Boolescher Wert optional

    Chrome 94 und höher

    Bei „true“ wird der Abfrageschlüssel nur ersetzt, wenn er bereits vorhanden ist. Andernfalls wird der Schlüssel ebenfalls hinzugefügt, falls er fehlt. Die Standardeinstellung ist "false".

  • value

    String

QueryTransform

Attribute

  • addOrReplaceParams

    QueryKeyValue[] optional

    Die Liste der Schlüssel/Wert-Paare der Abfrage, die hinzugefügt oder ersetzt werden sollen.

  • removeParams

    string[] optional

    Die Liste der Abfrageschlüssel, die entfernt werden sollen.

Redirect

Attribute

  • extensionPath

    String optional

    Pfad relativ zum Verzeichnis der Erweiterung. Sollte mit „/“ beginnen.

  • regexSubstitution

    String optional

    Substitutionsmuster für Regeln, die einen regexFilter angeben. Die erste Übereinstimmung mit regexFilter in der URL wird durch dieses Muster ersetzt. Innerhalb von regexSubstitution können umgekehrte Escape-Ziffern (\1 bis \9) verwendet werden, um die entsprechenden Erfassungsgruppen einzufügen. \0 bezieht sich auf den gesamten übereinstimmenden Text.

  • transform

    URLTransform optional

    Durchzuführende URL-Transformationen.

  • url

    String optional

    Die Weiterleitungs-URL. Weiterleitungen an JavaScript-URLs sind nicht zulässig.

RegexOptions

Chrome 87 oder höher

Attribute

  • isCaseSensitive

    Boolescher Wert optional

    Gibt an, ob bei dem angegebenen regex zwischen Groß- und Kleinschreibung unterschieden wird. Der Standardwert ist „true“.

  • regex

    String

    Das reguläre Expresson, das geprüft werden soll.

  • requireCapturing

    Boolescher Wert optional

    Gibt an, ob für das angegebene regex eine Erfassung erforderlich ist. Die Erfassung ist nur für Weiterleitungsregeln erforderlich, die eine regexSubstition-Aktion angeben. Der Standardwert ist "false".

RequestDetails

Attribute

  • documentId

    String optional

    Chrome 106 oder höher

    Die eindeutige ID für das Dokument des Frames, wenn diese Anfrage für einen Frame bestimmt ist.

  • documentLifecycle
    Chrome 106 oder höher

    Der Lebenszyklus des Frames-Dokuments, wenn diese Anfrage für einen Frame ist.

  • frameId

    Zahl

    Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (type ist main_frame oder sub_frame), gibt frameId die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig.

  • frameType

    FrameType optional

    Chrome 106 oder höher

    Der Typ des Frames, wenn diese Anfrage für einen Frame ist.

  • Initiator

    String optional

    Der Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.

  • method

    String

    Standard-HTTP-Methode.

  • parentDocumentId

    String optional

    Chrome 106 oder höher

    Die eindeutige ID für das übergeordnete Dokument des Frames, wenn diese Anfrage für einen Frame bestimmt ist und ein übergeordnetes Element hat.

  • parentFrameId

    Zahl

    ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.

  • requestId

    String

    Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig.

  • tabId

    Zahl

    Die ID des Tabs, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.

  • Der Ressourcentyp der Anfrage.

  • url

    String

    Die URL der Anfrage.

RequestMethod

Chrome 91 und höher

Dies beschreibt die HTTP-Anfragemethode einer Netzwerkanfrage.

Enum

"get"

ResourceType

Dies beschreibt den Ressourcentyp der Netzwerkanfrage.

Enum

"main_frame"

"sub_frame"

"script"

"xmlhttprequest"

"ping"

"csp_report"

"media"

"websocket"

"webtransport"

Rule

Attribute

  • Aktion

    Die auszuführende Aktion bei einer Übereinstimmung mit dieser Regel.

  • Bedingung

    Die Bedingung, unter der diese Regel ausgelöst wird.

  • id

    Zahl

    Eine ID, die eine Regel eindeutig identifiziert. Obligatorisch und muss „≥ 1“ sein.

  • priorität

    Nummer optional

    Regelpriorität. Der Standardfaktor ist 1. Wenn angegeben, sollte >= 1 sein.

RuleAction

Attribute

  • weiterleiten

    Weiterleitung optional

    Beschreibt, wie die Weiterleitung erfolgen soll. Nur gültig für Weiterleitungsregeln.

  • requestHeaders

    ModifyHeaderInfo[] optional

    Chrome 86 und höher

    Die Anfrageheader, die für die Anfrage geändert werden sollen. Nur gültig, wenn RuleActionType auf „modifyHeaders“ gesetzt ist.

  • responseHeaders

    ModifyHeaderInfo[] optional

    Chrome 86 und höher

    Die Antwortheader, die für die Anfrage geändert werden sollen. Nur gültig, wenn RuleActionType auf „modifyHeaders“ gesetzt ist.

  • Die Art der auszuführenden Aktion.

RuleActionType

Beschreibt die Art der Aktion, die ausgeführt werden soll, wenn eine bestimmte RuleCondition übereinstimmt.

Enum

"block"
Blockieren Sie die Netzwerkanfrage.

"redirect"
Die Netzwerkanfrage weiterleiten.

"allow"
Netzwerkanfrage zulassen Die Anfrage wird nicht abgefangen, wenn es eine entsprechende Zulassungsregel gibt.

"upgradeScheme"
Ändern Sie das Schema der Netzwerkanfrage-URL auf https, wenn die Anfrage HTTP oder FTP ist.

"modifyHeaders"
Ändern Sie Anfrage-/Antwortheader aus der Netzwerkanfrage.

"allowAllRequests"
Alle Anfragen innerhalb einer Frame-Hierarchie zulassen, einschließlich der Frame-Anfrage selbst.

RuleCondition

Attribute

  • domainType

    DomainType optional

    Gibt an, ob es sich bei der Netzwerkanfrage um eine Erstanbieter- oder Drittanbieteranfrage an die Domain handelt, von der sie stammt. Wenn keine Angabe gemacht wird, werden alle Anfragen angenommen.

  • Domains

    string[] optional

    Seit Chrome 101 eingestellt

    Stattdessen initiatorDomains verwenden

    Die Regel gleicht nur Netzwerkanfragen ab, die aus der Liste der domains stammen.

  • excludedDomains

    string[] optional

    Seit Chrome 101 eingestellt

    Stattdessen excludedInitiatorDomains verwenden

    Die Regel stimmt nicht mit Netzwerkanfragen aus der Liste der excludedDomains überein.

  • excludedInitiatorDomains

    string[] optional

    Chrome 101 und höher

    Die Regel stimmt nicht mit Netzwerkanfragen aus der Liste der excludedInitiatorDomains überein. Wenn die Liste leer ist oder weggelassen wird, werden keine Domains ausgeschlossen. Dies hat Vorrang vor initiatorDomains.

    Hinweise:

    • Subdomains wie a.beispiel.de sind ebenfalls zulässig.
    • Die Einträge dürfen nur ASCII-Zeichen enthalten.
    • Punycode-Codierung für internationalisierte Domains verwenden
    • Dies stimmt mit dem Anfrageinitiator und nicht mit der Anfrage-URL überein.
    • Subdomains der aufgeführten Domains sind ebenfalls ausgeschlossen.
  • excludedRequestDomains

    string[] optional

    Chrome 101 und höher

    Die Regel gleicht keine Netzwerkanfragen ab, wenn die Domains mit einer in der Liste der excludedRequestDomains übereinstimmen. Wenn die Liste leer ist oder weggelassen wird, werden keine Domains ausgeschlossen. Dies hat Vorrang vor requestDomains.

    Hinweise:

    • Subdomains wie a.beispiel.de sind ebenfalls zulässig.
    • Die Einträge dürfen nur ASCII-Zeichen enthalten.
    • Punycode-Codierung für internationalisierte Domains verwenden
    • Subdomains der aufgeführten Domains sind ebenfalls ausgeschlossen.
  • excludedRequestMethods

    RequestMethod[] optional

    Chrome 91 und höher

    Liste der Anfragemethoden, bei denen die Regel nicht übereinstimmt. Es darf nur requestMethods oder excludedRequestMethods angegeben werden. Wenn keine von beiden angegeben ist, werden alle Anfragemethoden abgeglichen.

  • excludedResourceTypes

    ResourceType[] optional

    Liste der Ressourcentypen, für die die Regel nicht gilt. Es darf nur resourceTypes oder excludedResourceTypes angegeben werden. Wenn keiner von ihnen angegeben ist, werden alle Ressourcentypen außer „main_frame“ blockiert.

  • excludedTabIds

    nummer[] optional

    Chrome 92 und höher

    Liste von tabs.Tab.id, mit der die Regel nicht übereinstimmen soll. Die ID tabs.TAB_ID_NONE schließt Anfragen aus, die nicht von einem Tab stammen. Wird nur für Regeln auf Sitzungsebene unterstützt.

  • initiatorDomains

    string[] optional

    Chrome 101 und höher

    Die Regel gleicht nur Netzwerkanfragen ab, die aus der Liste der initiatorDomains stammen. Wird die Liste weggelassen, wird die Regel auf Anfragen von allen Domains angewendet. Eine leere Liste ist nicht zulässig.

    Hinweise:

    • Subdomains wie a.beispiel.de sind ebenfalls zulässig.
    • Die Einträge dürfen nur ASCII-Zeichen enthalten.
    • Punycode-Codierung für internationalisierte Domains verwenden
    • Dies stimmt mit dem Anfrageinitiator und nicht mit der Anfrage-URL überein.
    • Die Subdomains der aufgeführten Domains werden ebenfalls abgeglichen.
  • isUrlFilterCaseSensitive

    Boolescher Wert optional

    Gibt an, ob bei urlFilter oder regexFilter (je nachdem, was angegeben ist) die Groß-/Kleinschreibung zu beachten ist. Der Standardwert ist "false".

  • regexFilter

    String optional

    Regulärer Ausdruck für den Abgleich mit der Netzwerkanfrage-URL Dies entspricht der RE2-Syntax.

    Hinweis: Es kann nur urlFilter oder regexFilter angegeben werden.

    Hinweis: Der regexFilter darf nur ASCII-Zeichen enthalten. Sie wird mit einer URL abgeglichen, bei der der Host im Punycode-Format codiert ist (bei internationalisierten Domains) und alle anderen Nicht-ASCII-Zeichen in utf-8 codiert sind.

  • requestDomains

    string[] optional

    Chrome 101 und höher

    Die Regel gleicht nur Netzwerkanfragen ab, wenn die Domain mit einer aus der Liste der requestDomains übereinstimmt. Wird die Liste weggelassen, wird die Regel auf Anfragen von allen Domains angewendet. Eine leere Liste ist nicht zulässig.

    Hinweise:

    • Subdomains wie a.beispiel.de sind ebenfalls zulässig.
    • Die Einträge dürfen nur ASCII-Zeichen enthalten.
    • Punycode-Codierung für internationalisierte Domains verwenden
    • Die Subdomains der aufgeführten Domains werden ebenfalls abgeglichen.
  • requestMethods

    RequestMethod[] optional

    Chrome 91 und höher

    Liste der HTTP-Anfragemethoden, die mit der Regel übereinstimmen können. Eine leere Liste ist nicht zulässig.

    Hinweis: Wenn Sie eine requestMethods-Regelbedingung angeben, werden auch Nicht-HTTP(s)-Anfragen ausgeschlossen, excludedRequestMethods jedoch nicht.

  • resourceTypes

    ResourceType[] optional

    Liste der Ressourcentypen, denen die Regel entsprechen kann. Eine leere Liste ist nicht zulässig.

    Hinweis: Muss für allowAllRequests-Regeln angegeben werden und darf nur die Ressourcentypen sub_frame und main_frame enthalten.

  • tabIds

    nummer[] optional

    Chrome 92 und höher

    Liste von tabs.Tab.id, denen die Regel entsprechen soll. Die ID tabs.TAB_ID_NONE entspricht Anfragen, die nicht von einem Tab stammen. Eine leere Liste ist nicht zulässig. Wird nur für Regeln auf Sitzungsebene unterstützt.

  • urlFilter

    String optional

    Das Muster, das mit der Netzwerkanfrage-URL abgeglichen wird. Unterstützte Konstrukte:

    '*' : Platzhalter: Entspricht einer beliebigen Anzahl von Zeichen.

    '|' : Anker links/rechts: Gibt bei Verwendung an einem der Enden des Musters den Anfang bzw. das Ende der URL an.

    '||' : Anker des Domainnamens: Gibt den Anfang einer (Sub-)Domain der URL an, wenn er am Anfang des Musters verwendet wird.

    ^ : Trennzeichen: Dies entspricht alles außer einem Buchstaben, einer Zahl oder einem der folgenden Zeichen: _, -, . oder %. Dies entspricht auch dem Ende der URL.

    Daher besteht urlFilter aus den folgenden Teilen: (optionaler Linker/Domainname-Anker) + Muster + (optionaler rechter Anker).

    Wenn nicht angegeben, werden alle URLs abgeglichen. Ein leerer String ist nicht zulässig.

    Ein Muster, das mit ||* beginnt, ist nicht zulässig. Verwenden Sie stattdessen *.

    Hinweis: Es kann nur urlFilter oder regexFilter angegeben werden.

    Hinweis: Der urlFilter darf nur ASCII-Zeichen enthalten. Sie wird mit einer URL abgeglichen, bei der der Host im Punycode-Format codiert ist (bei internationalisierten Domains) und alle anderen Nicht-ASCII-Zeichen in utf-8 codiert sind. Wenn die Anfrage-URL beispielsweise http://abc.?q=Meldungen lautet, wird urlFilter mit der URL http://abc.xn--p1ai/?q=%D1%84 abgeglichen.

Ruleset

Attribute

  • aktiviert

    boolean

    Gibt an, ob der Regelsatz standardmäßig aktiviert ist.

  • id

    String

    Ein nicht leerer String, der den Regelsatz eindeutig identifiziert. IDs, die mit '_' beginnen, sind für die interne Verwendung reserviert.

  • Pfad

    String

    Der Pfad des JSON-Regelsatzes in Bezug auf das Erweiterungsverzeichnis.

RulesMatchedDetails

Attribute

  • rulesMatchedInfo

    Regeln, die dem angegebenen Filter entsprechen.

TabActionCountUpdate

Chrome 89 und höher

Attribute

  • increment

    Zahl

    Der Wert, um den der Aktionszähler des Tabs erhöht werden soll. Negative Werte verringern die Anzahl.

  • tabId

    Zahl

    Der Tab, für den die Anzahl der Aktionen aktualisiert werden soll.

TestMatchOutcomeResult

Chrome 103 und höher

Attribute

  • matchedRules

    Die Regeln (falls vorhanden), die der hypothetischen Anfrage entsprechen.

TestMatchRequestDetails

Chrome 103 und höher

Attribute

  • Initiator

    String optional

    Die Initiator-URL (falls vorhanden) für die hypothetische Anfrage.

  • method

    RequestMethod optional

    Standard-HTTP-Methode der hypothetischen Anfrage. Für HTTP-Anfragen ist die Standardeinstellung „get“. Bei Nicht-HTTP-Anfragen wird sie ignoriert.

  • tabId

    Nummer optional

    Die ID des Tabs, in dem die hypothetische Anfrage stattfindet. Muss nicht mit einer echten Tab-ID übereinstimmen. Der Standardwert ist -1, d. h. die Anfrage bezieht sich nicht auf einen Tab.

  • Der Ressourcentyp der hypothetischen Anfrage.

  • url

    String

    Die URL der hypothetischen Anfrage.

UnsupportedRegexReason

Chrome 87 oder höher

Beschreibt, warum ein bestimmter regulärer Ausdruck nicht unterstützt wird.

Enum

"syntaxError"
Der reguläre Ausdruck ist syntaktisch falsch oder verwendet Funktionen, die in der RE2-Syntax nicht verfügbar sind.

"memoryLimit exceeded"
Der reguläre Ausdruck überschreitet das Speicherlimit.

UpdateRuleOptions

Chrome 87 oder höher

Attribute

  • addRules

    Regel[] optional

    Hinzuzufügende Regeln.

  • removeRuleIds

    nummer[] optional

    IDs der zu entfernenden Regeln. Ungültige IDs werden ignoriert.

UpdateRulesetOptions

Chrome 87 oder höher

Attribute

  • disableRulesetIds

    string[] optional

    Die IDs für ein statisches Ruleset, das deaktiviert werden soll.

  • enableRulesetIds

    string[] optional

    Die IDs für ein statisches Ruleset, das aktiviert werden soll.

UpdateStaticRulesOptions

Chrome 111 und höher

Attribute

  • disableRuleIds

    nummer[] optional

    Satz von IDs, die den zu deaktivierenden Regeln in Ruleset entsprechen.

  • enableRuleIds

    nummer[] optional

    Satz von IDs, die den Regeln in der Ruleset entsprechen, die aktiviert werden sollen.

  • rulesetId

    String

    Die ID, die einem statischen Ruleset entspricht.

URLTransform

Attribute

  • fragment

    String optional

    Das neue Fragment für die Anfrage. Sollte entweder leer sein, in diesem Fall wird das vorhandene Fragment gelöscht, oder sollte mit "#" beginnen.

  • Gastgeber

    String optional

    Der neue Host für die Anfrage.

  • Passwort

    String optional

    Das neue Passwort für die Anfrage.

  • Pfad

    String optional

    Der neue Pfad für die Anfrage. Wenn das Feld leer ist, wird der vorhandene Pfad gelöscht.

  • Port

    String optional

    Der neue Port für die Anfrage. Wenn das Feld leer ist, wird der vorhandene Anschluss gelöscht.

  • Abfrage

    String optional

    Die neue Abfrage für die Anfrage. Sollte entweder leer sein, sodass die vorhandene Abfrage gelöscht wird, oder sollte mit „?“ beginnen.

  • queryTransform

    QueryTransform optional

    Schlüssel/Wert-Paare für Abfragen hinzufügen, entfernen oder ersetzen.

  • Schema

    String optional

    Das neue Schema für die Anfrage. Zulässige Werte sind „http“, „https“, „ftp“ und „chrome-extension“.

  • Nutzername

    String optional

    Der neue Nutzername für die Anfrage.

Attribute

DYNAMIC_RULESET_ID

Regelsatz-ID für die dynamischen Regeln, die von der Erweiterung hinzugefügt werden.

Wert

"_dynamic"

GETMATCHEDRULES_QUOTA_INTERVAL

Zeitintervall in Minuten, in dem MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules-Aufrufe ausgeführt werden können. Weitere Aufrufe schlagen sofort fehl und legen runtime.lastError fest. Hinweis: getMatchedRules-Aufrufe, die mit einer Nutzergeste verknüpft sind, sind vom Kontingent ausgenommen.

Wert

10

GUARANTEED_MINIMUM_STATIC_RULES

Chrome 89 und höher

Die Mindestanzahl von statischen Regeln, die einer Erweiterung in den aktivierten statischen Regelsätzen garantiert sind. Alle Regeln über diesem Limit werden auf das globale Limit für statische Regeln angerechnet.

Wert

30.000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

Gibt an, wie oft getMatchedRules innerhalb eines Zeitraums von GETMATCHEDRULES_QUOTA_INTERVAL aufgerufen werden kann.

Wert

20

MAX_NUMBER_OF_DYNAMIC_RULES

Die maximale Anzahl dynamischer Regeln, die eine Erweiterung hinzufügen kann.

Wert

30.000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Chrome 94 und höher

Die maximale Anzahl statischer Rulesets, die eine Erweiterung jederzeit aktivieren kann.

Wert

50

MAX_NUMBER_OF_REGEX_RULES

Maximale Anzahl von Regeln für reguläre Ausdrücke, die eine Erweiterung hinzufügen kann. Dieses Limit wird für die dynamischen und in der Regelressourcendatei angegebenen Regeln separat ausgewertet.

Wert

1.000

MAX_NUMBER_OF_SESSION_RULES

Chrome 120 oder höher

Die maximale Anzahl von Regeln auf Sitzungsebene, die eine Erweiterung hinzufügen kann.

Wert

5.000

MAX_NUMBER_OF_STATIC_RULESETS

Die maximale Anzahl statischer Rulesets, die eine Erweiterung als Teil des Manifestschlüssels „"rule_resources"“ angeben kann.

Wert

100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

Chrome 120 oder höher

Die maximale Anzahl „unsicherer“ dynamischer Regeln, die eine Erweiterung hinzufügen kann.

Wert

5.000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

Chrome 120 oder höher

Die maximale Anzahl „unsicherer“ Regeln auf Sitzungsebene, die eine Erweiterung hinzufügen kann.

Wert

5.000

SESSION_RULESET_ID

Chrome 90 oder höher

Regelsatz-ID für die von der Erweiterung hinzugefügten Regeln auf Sitzungsebene.

Wert

"_session"

Methoden

getAvailableStaticRuleCount()

Versprechen Chrome 89 oder höher
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
  callback?: function,
)

Gibt die Anzahl der statischen Regeln zurück, die eine Erweiterung aktivieren kann, bevor das globale Limit für statische Regeln erreicht ist.

Parameters

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    (count: number)=>void

    • Anzahl

      Zahl

Rückgaben

  • Versprechen<Zahl>

    Chrome 91 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

getDisabledRuleIds()

Versprechen Chrome 111 oder höher
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)

Gibt die Liste der statischen Regeln in der angegebenen Ruleset zurück, die derzeit deaktiviert sind.

Parameters

  • Gibt den abzufragenden Regelsatz an.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    (disabledRuleIds: number[])=>void

    • disabledRuleIds

      Nummer[]

Rückgaben

  • Promise<Zahl[]>

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

getDynamicRules()

Versprechen
chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
  callback?: function,
)

Gibt den aktuellen Satz dynamischer Regeln für die Erweiterung zurück Aufrufer können die Liste der abgerufenen Regeln optional filtern, indem sie eine filter angeben.

Parameters

  • Filter

    GetRulesFilter optional

    Chrome 111 und höher

    Ein Objekt zum Filtern der Liste der abgerufenen Regeln.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    (rules: Rule[])=>void

Rückgaben

  • Promise<Regel[]>

    Chrome 91 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

getEnabledRulesets()

Versprechen
chrome.declarativeNetRequest.getEnabledRulesets(
  callback?: function,
)

Gibt die IDs für den aktuellen Satz aktivierter statischer Regelsätze zurück.

Parameters

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    (rulesetIds: string[])=>void

    • rulesetIds

      String[]

Rückgaben

  • Versprechen<string[]>

    Chrome 91 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

getMatchedRules()

Versprechen
chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
  callback?: function,
)

Gibt alle Regeln zurück, die mit der Erweiterung übereinstimmen. Aufrufer können die Liste der übereinstimmenden Regeln optional filtern, indem sie eine filter angeben. Diese Methode ist nur für Erweiterungen mit der Berechtigung "declarativeNetRequestFeedback" oder für Erweiterungen mit der Berechtigung "activeTab" verfügbar, die für die in filter angegebene tabId gewährt wurden. Hinweis: Regeln, die nicht mit einem aktiven Dokument verknüpft sind und vor mehr als fünf Minuten eine Übereinstimmung gefunden haben, werden nicht zurückgegeben.

Parameters

Rückgaben

  • Chrome 91 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

getSessionRules()

Versprechen Chrome 90 oder höher
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
  callback?: function,
)

Gibt den aktuellen Satz von auf Sitzungsebene festgelegten Regeln für die Erweiterung zurück Aufrufer können die Liste der abgerufenen Regeln optional filtern, indem sie eine filter angeben.

Parameters

  • Filter

    GetRulesFilter optional

    Chrome 111 und höher

    Ein Objekt zum Filtern der Liste der abgerufenen Regeln.

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    (rules: Rule[])=>void

Rückgaben

  • Promise<Regel[]>

    Chrome 91 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

isRegexSupported()

Versprechen Chrome 87 oder höher
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)

Überprüft, ob der angegebene reguläre Ausdruck als regexFilter-Regelbedingung unterstützt wird.

Parameters

Rückgaben

  • Chrome 91 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

setExtensionActionOptions()

Versprechen Chrome 88 oder höher
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
  callback?: function,
)

Konfiguriert, ob die Anzahl der Aktionen für Tabs als Badgetext der Erweiterungsaktion angezeigt werden soll, und bietet eine Möglichkeit, die Anzahl der Aktionen zu erhöhen.

Parameters

  • callback

    Funktion optional

    Chrome 89 und höher

    Der Parameter callback sieht so aus:

    ()=>void

Rückgaben

  • Promise<void>

    Chrome 91 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

testMatchOutcome()

Versprechen Chrome 103 oder höher
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
  callback?: function,
)

Prüft, ob eine der declarativeNetRequest-Regeln der Erweiterung mit einer hypothetischen Anfrage übereinstimmt. Hinweis: Diese Option ist nur für entpackte Erweiterungen verfügbar, da sie nur während der Entwicklung von Erweiterungen verwendet werden soll.

Parameters

Rückgaben

  • Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

updateDynamicRules()

Versprechen
chrome.declarativeNetRequest.updateDynamicRules(
  options: UpdateRuleOptions,
  callback?: function,
)

Damit werden die aktuellen dynamischen Regeln für die Erweiterung geändert. Die Regeln mit den in options.removeRuleIds aufgeführten IDs werden zuerst entfernt. Anschließend werden die in options.addRules angegebenen Regeln hinzugefügt. Hinweise:

  • Diese Aktualisierung erfolgt als einzelner atomarer Vorgang: Es werden entweder alle angegebenen Regeln hinzugefügt und entfernt oder es wird ein Fehler zurückgegeben.
  • Diese Regeln werden über die Browsersitzung und über Erweiterungsupdates hinweg beibehalten.
  • Statische Regeln, die als Teil des Erweiterungspakets festgelegt sind, können mit dieser Funktion nicht entfernt werden.
  • MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES ist die maximale Anzahl kombinierter dynamischer Regeln und Sitzungsregeln, die eine Erweiterung hinzufügen kann.

Parameters

  • Chrome 87 oder höher
  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    ()=>void

Rückgaben

  • Promise<void>

    Chrome 91 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

updateEnabledRulesets()

Versprechen
chrome.declarativeNetRequest.updateEnabledRulesets(
  options: UpdateRulesetOptions,
  callback?: function,
)

Aktualisiert die Gruppe der aktivierten statischen Regelsätze für die Erweiterung. Die Regelsätze mit den IDs, die in options.disableRulesetIds aufgeführt sind, werden zuerst entfernt. Anschließend werden die in options.enableRulesetIds aufgeführten Regelsätze hinzugefügt. Die aktivierten statischen Regelsätze werden sitzungsübergreifend, aber nicht über Erweiterungsupdates hinweg beibehalten. Das heißt, der Manifestschlüssel rule_resources bestimmt die Gruppe der aktivierten statischen Regelsätze bei jedem Erweiterungsupdate.

Parameters

  • Chrome 87 oder höher
  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    ()=>void

Rückgaben

  • Promise<void>

    Chrome 91 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

updateSessionRules()

Versprechen Chrome 90 oder höher
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
  callback?: function,
)

Ändert den aktuellen Satz von Regeln auf Sitzungsebene für die Erweiterung. Die Regeln mit den in options.removeRuleIds aufgeführten IDs werden zuerst entfernt. Anschließend werden die in options.addRules angegebenen Regeln hinzugefügt. Hinweise:

  • Diese Aktualisierung erfolgt als einzelner atomarer Vorgang: Es werden entweder alle angegebenen Regeln hinzugefügt und entfernt oder es wird ein Fehler zurückgegeben.
  • Diese Regeln werden nicht sitzungsübergreifend beibehalten und werden im Arbeitsspeicher gestützt.
  • MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES ist die maximale Anzahl kombinierter dynamischer Regeln und Sitzungsregeln, die eine Erweiterung hinzufügen kann.

Parameters

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    ()=>void

Rückgaben

  • Promise<void>

    Chrome 91 und höher

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

updateStaticRules()

Versprechen Chrome 111 oder höher
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
  callback?: function,
)

Deaktiviert und aktiviert einzelne statische Regeln in einem Ruleset. Änderungen an Regeln, die zu einer deaktivierten Ruleset gehören, werden bei der nächsten Aktivierung wirksam.

Parameters

Rückgaben

  • Promise<void>

    Promise-Objekte werden in Manifest V3 und höher unterstützt, Callbacks werden jedoch aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide in einem Funktionsaufruf verwenden. Das Promise wird mit demselben Typ aufgelöst, der an den Callback übergeben wird.

Veranstaltungen

onRuleMatchedDebug

chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
  callback: function,
)

Wird ausgelöst, wenn eine Regel mit einer Anfrage übereinstimmt Nur für entpackte Erweiterungen mit der Berechtigung „"declarativeNetRequestFeedback"“ verfügbar, da sie nur zum Debugging verwendet werden soll.

Parameters