chrome.webRequest

Beschreibung

Mit der chrome.webRequest API können Sie Traffic beobachten und analysieren sowie laufende Anfragen abfangen, blockieren oder ändern.

Berechtigungen

webRequest

Sie müssen die Berechtigung "webRequest" im Erweiterungsmanifest deklarieren, um die Web Request API zusammen mit den erforderlichen Hostberechtigungen verwenden zu können. Um eine Anfrage einer Unterressource abzufangen, muss die Erweiterung sowohl auf die angeforderte URL als auch auf ihren Initiator Zugriff haben. Beispiel:

{
  "name": "My extension",
  ...
  "permissions": [
    "webRequest"
  ],
  "host_permissions": [
    "*://*.google.com/*"
  ],
  ...
}

webRequestBlocking

Erforderlich zum Registrieren blockierender Event-Handler. Ab Manifest V3 ist dies nur für Erweiterungen verfügbar, die über eine Richtlinie installiert wurden.

webRequestAuthProvider

Erforderlich für die Verwendung der Methode onAuthRequired. Siehe Authentifizierung verarbeiten.

Konzepte und Nutzung

Lebenszyklus der Anfragen

Die Web Request API definiert eine Reihe von Ereignissen, die dem Lebenszyklus einer Webanfrage folgen. Sie können diese Ereignisse verwenden, um Traffic zu beobachten und zu analysieren. Mit bestimmten synchronen Ereignissen können Sie eine Anfrage abfangen, blockieren oder ändern.

Hier sehen Sie den Ereignislebenszyklus für erfolgreiche Anfragen, gefolgt von Ereignisdefinitionen:

Lebenszyklus einer Webanfrage aus Sicht der Webrequest API

onBeforeRequest (optional synchron)
Wird ausgelöst, wenn eine Anfrage kurz bevorsteht. Dieses Ereignis wird gesendet, bevor eine TCP-Verbindung hergestellt wird, und kann zum Abbrechen oder Weiterleiten von Anfragen verwendet werden.
onBeforeSendHeaders (optional synchron)
Wird ausgelöst, wenn eine Anfrage kurz bevorsteht und die ersten Header vorbereitet wurden. Mit dem Ereignis können Erweiterungen Anfrageheader (*) hinzufügen, ändern und löschen. Das Ereignis onBeforeSendHeaders wird an alle Abonnenten übergeben, sodass verschiedene Abonnenten versuchen können, die Anfrage zu ändern. Weitere Informationen dazu finden Sie im Abschnitt Implementierungsdetails. Dieses Ereignis kann zum Abbrechen der Anfrage verwendet werden.
onSendHeaders
Wird ausgelöst, nachdem alle Erweiterungen die Anfrageheader ändern konnten und stellt die endgültige (*)-Version dar. Das Ereignis wird ausgelöst, bevor die Header an das Netzwerk gesendet werden. Dieses Ereignis dient zur Information und wird asynchron verarbeitet. Das Ändern oder Abbrechen der Anfrage ist nicht möglich.
onHeadersReceived (optional synchron)
Wird jedes Mal ausgelöst, wenn ein HTTP(S)-Antwortheader empfangen wird. Aufgrund von Weiterleitungen und Authentifizierungsanfragen kann dies mehrmals pro Anfrage geschehen. Mit diesem Ereignis können Erweiterungen Antwortheader, z. B. eingehende Content-Type-Header, hinzufügen, ändern und löschen. Die Caching-Anweisungen werden verarbeitet, bevor dieses Ereignis ausgelöst wird. Eine Änderung von Headern wie „Cache-Control“ hat also keinen Einfluss auf den Cache des Browsers. Außerdem haben Sie die Möglichkeit, die Anfrage abzubrechen oder weiterzuleiten.
onAuthRequired (optional synchron)
Wird ausgelöst, wenn für eine Anfrage eine Authentifizierung des Nutzers erforderlich ist Dieses Ereignis kann synchron verarbeitet werden, um Anmeldedaten zur Authentifizierung bereitzustellen. Hinweis: Erweiterungen können ungültige Anmeldedaten zur Verfügung stellen. Achten Sie darauf, nicht in eine Endlosschleife zu gehen, indem Sie wiederholt ungültige Anmeldedaten angeben. Hiermit kann die Anfrage auch abgebrochen werden.
onBeforeRedirect
Wird ausgelöst, sobald eine Weiterleitung erfolgen soll Eine Weiterleitung kann durch einen HTTP-Antwortcode oder eine Erweiterung ausgelöst werden. Dieses Ereignis dient zur Information und wird asynchron verarbeitet. Sie können die Anfrage nicht ändern oder abbrechen.
onResponseStarted
Wird ausgelöst, wenn das erste Byte des Antworttexts empfangen wird. Bei HTTP-Anfragen bedeutet dies, dass die Statuszeile und die Antwortheader verfügbar sind. Dieses Ereignis dient der Information und wird asynchron verarbeitet. Sie können die Anfrage weder ändern noch abbrechen.
onCompleted
Wird ausgelöst, wenn eine Anfrage erfolgreich verarbeitet wurde.
onErrorOccurred
Wird ausgelöst, wenn eine Anfrage nicht verarbeitet werden konnte.

Die Web Request API sorgt dafür, dass bei jeder Anfrage entweder onCompleted oder onErrorOccurred als letztes Ereignis mit einer Ausnahme ausgelöst wird: Wenn eine Anfrage an eine data://-URL weitergeleitet wird, ist onBeforeRedirect das letzte gemeldete Ereignis.

* Die Web Request API stellt der Erweiterung eine Abstraktion des Netzwerkstacks bereit. Intern kann eine URL-Anfrage in mehrere HTTP-Anfragen aufgeteilt werden (z. B. um einzelne Bytebereiche aus einer großen Datei abzurufen) oder vom Netzwerkstack verarbeitet werden, ohne mit dem Netzwerk zu kommunizieren. Aus diesem Grund stellt die API nicht die endgültigen HTTP-Header bereit, die an das Netzwerk gesendet werden. Beispielsweise sind alle Header, die sich auf das Caching beziehen, für die Erweiterung nicht sichtbar.

Die folgenden Header werden derzeit für das onBeforeSendHeaders-Ereignis nicht bereitgestellt. Es kann nicht garantiert werden, dass diese Liste vollständig oder stabil ist.

  • Autorisierung
  • Cache-Control
  • Verbindung
  • Content-Length
  • Host
  • If-Modified-Since
  • If-None-Match
  • Wenn-Bereich
  • Teildaten
  • Pragma
  • Proxy-Autorisierung
  • Proxy-Verbindung
  • Transferverschlüsselung

Ab Chrome 79 wirken sich Änderungen an Anfrageheadern auf CORS-Prüfungen (Cross-Origin Resource Sharing) aus. Wenn geänderte Header für ursprungsübergreifende Anfragen die Kriterien nicht erfüllen, wird ein CORS-Preflight gesendet, um den Server zu fragen, ob solche Header akzeptiert werden können. Wenn Sie Header wirklich so ändern müssen, dass sie gegen das CORS-Protokoll verstoßen, müssen Sie 'extraHeaders' in opt_extraInfoSpec angeben. Andererseits können Änderungen an Antwortheadern nicht dazu beitragen, CORS-Prüfungen zu täuschen. Wenn Sie das CORS-Protokoll täuschen müssen, müssen Sie auch 'extraHeaders' für die Antwortänderungen angeben.

Ab Chrome 79 fängt die webRequest API CORS-Preflight-Anfragen und -Antworten standardmäßig nicht ab. Eine CORS-Preflight für eine Anfrage-URL ist für eine Erweiterung sichtbar, wenn ein Listener mit 'extraHeaders' in opt_extraInfoSpec für die Anfrage-URL angegeben ist. onBeforeRequest kann auch 'extraHeaders' aus Chrome 79 abrufen.

Ab Chrome 79 wird der folgende Anfrageheader nicht bereitgestellt und kann nicht ohne die Angabe von 'extraHeaders' in opt_extraInfoSpec geändert oder entfernt werden:

  • Ursprung

Wenn Sie ab Chrome 72 Antworten ändern müssen, bevor die Cross-Origin Read Blocking (CORB) die Antwort blockieren kann, müssen Sie 'extraHeaders' in opt_extraInfoSpec angeben.

Ab Chrome 72 werden die folgenden Anfrageheader nicht bereitgestellt und können nicht ohne 'extraHeaders' in opt_extraInfoSpec geändert oder entfernt werden:

  • Akzeptiersprache
  • Accept-Encoding
  • Verwiesen von:
  • Cookie

Ab Chrome 72 wird der Set-Cookie-Antwortheader nicht mehr angegeben und kann nicht ohne 'extraHeaders' in opt_extraInfoSpec geändert oder entfernt werden.

Ab Chrome 89 kann der Antwortheader X-Frame-Options nicht mehr effektiv geändert oder entfernt werden, ohne 'extraHeaders' in opt_extraInfoSpec anzugeben.

Die webRequest API stellt nur Anfragen zur Verfügung, für die die Erweiterung aufgrund ihrer Hostberechtigungen eine Leseberechtigung hat. Außerdem sind nur die folgenden Schemas verfügbar: http://, https://, ftp://, file://, ws:// (seit Chrome 58), wss:// (seit Chrome 58), urn: (seit Chrome 91) oder chrome-extension://. Außerdem werden sogar bestimmte Anfragen mit URLs, die eines der oben genannten Schemas verwenden, verborgen. Dazu gehören chrome-extension://other_extension_id, wobei other_extension_id nicht die ID der Erweiterung für die Verarbeitung der Anfrage ist, https://www.google.com/chrome und andere vertrauliche Anfragen, die für den Browser von zentraler Bedeutung sind. Außerdem werden synchrone XMLHttpRequests von Ihrer Erweiterung nicht blockiert, um Event-Handler zu blockieren, um Deadlocks zu verhindern. Beachten Sie, dass bei einigen der unterstützten Schemas die Menge der verfügbaren Ereignisse aufgrund der Beschaffenheit des entsprechenden Protokolls möglicherweise begrenzt ist. Für das „file:“-Schema dürfen beispielsweise nur onBeforeRequest, onResponseStarted, onCompleted und onErrorOccurred gesendet werden.

Ab Chrome 58 unterstützt die webRequest API das Abfangen der WebSocket-Handshakeanfrage. Da der Handshake über eine HTTP-Upgradeanfrage erfolgt, passt er zum HTTP-orientierten webRequest-Modell. Beachten Sie, dass die API Folgendes nicht abfängt:

  • Einzelne Nachrichten, die über eine bestehende WebSocket-Verbindung gesendet wurden.
  • WebSocket schließt Verbindung.

Weiterleitungen werden für WebSocket-Anfragen nicht unterstützt.

Ab Chrome 72 kann eine Erweiterung Anfragen nur dann abfangen, wenn sie Hostberechtigungen für die angeforderte URL und für den Anfrageinitiator hat.

Ab Chrome 96 unterstützt die webRequest API das Abfangen von WebTransport über eine HTTP/3-Handshakeanfrage. Da der Handshake über eine HTTP CONNECT-Anfrage erfolgt, passt sein Ablauf in das HTTP-orientierte webRequest-Modell. Hinweis:

  • Sobald die Sitzung eingerichtet ist, können Erweiterungen die Sitzung nicht mehr über die webRequest API beobachten oder eingreifen.
  • Änderungen an HTTP-Anfrageheadern in onBeforeSendHeaders werden ignoriert.
  • Weiterleitungen und Authentifizierungen werden in WebTransport über HTTP/3 nicht unterstützt.

Anfrage-IDs

Jede Anfrage wird durch eine Anfrage-ID identifiziert. Diese ID ist innerhalb einer Browsersitzung und im Kontext einer Erweiterung eindeutig. Sie bleibt während des Lebenszyklus einer Anfrage konstant und kann verwendet werden, um Ereignisse für dieselbe Anfrage abzugleichen. Im Falle einer HTTP-Weiterleitung oder HTTP-Authentifizierung werden einer Webanfrage mehrere HTTP-Anfragen zugeordnet.

Event-Listener registrieren

Um einen Event-Listener für eine Webanfrage zu registrieren, verwenden Sie eine Variante der üblichen addListener()-Funktion. Zusätzlich zur Angabe einer Callback-Funktion müssen Sie ein Filterargument angeben. Außerdem können Sie ein optionales zusätzliches Info-Argument angeben.

Die drei Argumente für addListener() der Web Request API haben die folgenden Definitionen:

var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];

Hier ein Beispiel für das Warten auf das Ereignis onBeforeRequest:

chrome.webRequest.onBeforeRequest.addListener(
    callback, filter, opt_extraInfoSpec);

Bei jedem addListener()-Aufruf ist als erster Parameter eine obligatorische Callback-Funktion erforderlich. Dieser Callback-Funktion wird ein Wörterbuch mit Informationen zur aktuellen URL-Anfrage übergeben. Die Informationen in diesem Wörterbuch hängen vom spezifischen Ereignistyp sowie vom Inhalt von opt_extraInfoSpec ab.

Wenn das optionale Array opt_extraInfoSpec den String 'blocking' enthält (nur bei bestimmten Ereignissen zulässig), wird die Callback-Funktion synchron verarbeitet. Das bedeutet, dass die Anfrage blockiert wird, bis die Callback-Funktion wiederkehrt. In diesem Fall kann der Callback eine webRequest.BlockingResponse zurückgeben, die den weiteren Lebenszyklus der Anfrage bestimmt. Je nach Kontext ermöglicht diese Antwort das Abbrechen oder Weiterleiten einer Anfrage (onBeforeRequest), das Abbrechen oder die Änderung von Headern (onBeforeSendHeaders, onHeadersReceived) und das Abbrechen einer Anfrage oder das Angeben von Authentifizierungsdaten (onAuthRequired).

Wenn das optionale Array opt_extraInfoSpec stattdessen den String 'asyncBlocking' enthält (nur für onAuthRequired zulässig), kann die Erweiterung webRequest.BlockingResponse asynchron generieren.

Mit dem filter webRequest.RequestFilter können Sie die Anfragen einschränken, für die Ereignisse in verschiedenen Dimensionen ausgelöst werden:

URLs
URL-Muster wie *://www.google.com/foo*bar.
Typen
Anfragetypen wie main_frame (ein Dokument, das für einen Frame auf oberster Ebene geladen wird), sub_frame (ein Dokument, das für einen eingebetteten Frame geladen wird) und image (ein Bild auf einer Website). Siehe webRequest.RequestFilter.
Tab ID
Die ID für einen Tab.
Fenster-ID
Die Kennung eines Fensters.

Je nach Ereignistyp können Sie in opt_extraInfoSpec Strings angeben, um zusätzliche Informationen zur Anfrage anzufordern. Sie wird verwendet, um detaillierte Informationen zu den Daten der Anfrage nur bei expliziter Anforderung bereitzustellen.

Authentifizierung

Zur Verarbeitung von Anfragen zur HTTP-Authentifizierung fügen Sie Ihrer Manifestdatei die Berechtigung "webRequestAuthProvider" hinzu:

{
  "permissions": [
    "webRequest",
    "webRequestAuthProvider"
  ]
}

Diese Berechtigung ist für eine Erweiterung, die eine Richtlinie installiert hat, mit der Berechtigung "webRequestBlocking" nicht erforderlich.

So geben Sie Anmeldedaten synchron an:

chrome.webRequest.onAuthRequired.addListener((details) => {
    return {
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    };
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['blocking']
);

So stellen Sie Anmeldedaten asynchron bereit:

chrome.webRequest.onAuthRequired.addListener((details, callback) => {
    callback({
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    });
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['asyncBlocking']
);

Implementierungsdetails

Bei der Entwicklung einer Erweiterung, die die Web Request API verwendet, können verschiedene Implementierungsdetails wichtig sein:

web_accessible_resources

Wenn eine Erweiterung webRequest APIs verwendet, um eine Anfrage einer öffentlichen Ressource an eine Ressource umzuleiten, die nicht über das Internet zugänglich ist, wird sie blockiert und führt zu einem Fehler. Dies gilt auch dann, wenn die nicht über das Web zugängliche Ressource der Weiterleitungserweiterung gehört. Um Ressourcen zur Verwendung mit deklarativenWebRequest-APIs zu deklarieren, muss das "web_accessible_resources"-Array wie hier dokumentiert im Manifest deklariert und ausgefüllt werden.

Konfliktlösung

In der aktuellen Implementierung der Web Request API gilt eine Anfrage als abgebrochen, wenn mindestens eine Erweiterung zum Abbrechen der Anfrage auffordert. Wenn eine Erweiterung eine Anfrage storniert, werden alle Erweiterungen durch ein onErrorOccurred-Ereignis benachrichtigt. Anfragen können jeweils nur von einer Erweiterung weitergeleitet oder ein Header geändert werden. Wenn mehr als eine Erweiterung versucht, die Anfrage zu ändern, hat die zuletzt installierte Erweiterung Vorrang. Alle anderen werden ignoriert. Eine Erweiterung wird nicht benachrichtigt, wenn ihre Änderungs- oder Weiterleitungsanweisung ignoriert wurde.

Caching

Chrome verwendet zwei Caches: einen Festplatten-Cache und einen sehr schnellen speicherinternen Cache. Die Lebensdauer eines speicherinternen Caches ist an die Lebensdauer eines Renderingprozesses angehängt, die in etwa einem Tab entspricht. Anfragen, die vom speicherinternen Cache beantwortet werden, sind für die Webanfrage-API nicht sichtbar. Wenn ein Anfrage-Handler sein Verhalten ändert (z. B. das Verhalten, gemäß dem Anfragen blockiert werden), wird dieses geänderte Verhalten bei einer einfachen Seitenaktualisierung möglicherweise nicht berücksichtigt. Damit die Verhaltensänderung durchgeführt wird, rufen Sie handlerBehaviorChanged() auf, um den speicherinternen Cache zu leeren. Sie sollten es jedoch nicht oft tun. Das Leeren des Cache ist ein sehr teurer Vorgang. Sie müssen handlerBehaviorChanged() nicht aufrufen, nachdem Sie einen Event-Listener registriert oder seine Registrierung aufgehoben haben.

Zeitstempel

Die Eigenschaft timestamp von Webanfrageereignissen ist nur intern konsistent. Wenn Sie ein Ereignis mit einem anderen vergleichen, erhalten Sie den korrekten Offset zwischen ihnen. Ein Vergleich mit der aktuellen Zeit in der Erweiterung (z. B. über (new Date()).getTime()) kann jedoch zu unerwarteten Ergebnissen führen.

Fehlerbehandlung

Wenn Sie versuchen, ein Ereignis mit ungültigen Argumenten zu registrieren, wird ein JavaScript-Fehler ausgegeben und der Event-Handler wird nicht registriert. Wenn während der Verarbeitung eines Ereignisses ein Fehler ausgegeben wird oder ein Event-Handler eine ungültige Blockierungsantwort zurückgibt, wird eine Fehlermeldung in der Konsole der Erweiterung protokolliert und der Handler für diese Anfrage ignoriert.

Beispiele

Das folgende Beispiel zeigt, wie alle Anfragen an www.evil.com blockiert werden:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

Da diese Funktion einen blockierenden Event-Handler verwendet, sind die Berechtigungen "webRequest" und "webRequestBlocking" in der Manifestdatei erforderlich.

Im folgenden Beispiel wird das gleiche Ziel effizienter erreicht, da Anfragen, die nicht auf www.evil.com ausgerichtet sind, nicht an die Erweiterung weitergeleitet werden müssen:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) { return {cancel: true}; },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);

Das folgende Beispiel zeigt, wie der User-Agent-Header aus allen Anfragen gelöscht wird:

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders.splice(i, 1);
        break;
      }
    }
    return {requestHeaders: details.requestHeaders};
  },
  {urls: ["<all_urls>"]},
  ["blocking", "requestHeaders"]
);

Wenn Sie die chrome.webRequest API testen möchten, installieren Sie das webRequest-Beispiel aus dem Repository chrome-extension-sample.

Typen

BlockingResponse

Gibt einen Wert für Event-Handler zurück, auf die das zusätzliche InfoSpec "blocking" angewendet wurde. Ermöglicht dem Event-Handler, Netzwerkanfragen zu ändern.

Attribute

  • authCredentials

    Objekt optional

    Wird nur als Antwort auf das Ereignis „onAuthRequired“ verwendet. Wenn festgelegt, erfolgt die Anfrage mit den angegebenen Anmeldedaten.

    • Passwort

      String

    • Nutzername

      String

  • Abbrechen

    Boolescher Wert optional

    Bei „true“ wird die Anfrage abgebrochen. Dadurch wird verhindert, dass die Anfrage gesendet wird. Dies kann als Antwort auf die Ereignisse onBeforeRequest, onBeforeSendHeaders, onHeadersReceived und onAuthRequired verwendet werden.

  • redirectUrl

    String optional

    Wird nur als Antwort auf die onBeforeRequest- und onHeadersReceived-Ereignisse verwendet. Wenn festgelegt, wird verhindert, dass die ursprüngliche Anfrage gesendet/abgeschlossen wird, und wird stattdessen an die angegebene URL weitergeleitet. Weiterleitungen zu Nicht-HTTP-Schemata wie data: sind zulässig. Von einer Weiterleitungsaktion initiierte Weiterleitungen verwenden die ursprüngliche Anfragemethode für die Weiterleitung, mit einer Ausnahme: Wenn die Weiterleitung in der onHeadersReceived-Phase initiiert wird, wird die Weiterleitung mit der GET-Methode ausgeführt. Weiterleitungen von URLs mit dem Schema ws:// und wss:// werden ignoriert.

  • requestHeaders

    HttpHeaders optional

    Wird nur als Antwort auf das Ereignis „onBeforeSendHeaders“ verwendet. Wenn festgelegt, wird die Anfrage stattdessen mit diesen Anfrageheadern gesendet.

  • responseHeaders

    HttpHeaders optional

    Wird nur als Antwort auf das onHeadersReceived-Ereignis verwendet. Wenn festgelegt, wird davon ausgegangen, dass der Server stattdessen mit diesen Antwortheadern geantwortet hat. Geben Sie nur responseHeaders zurück, wenn Sie die Header wirklich ändern möchten, um die Anzahl der Konflikte zu begrenzen. Nur eine Erweiterung kann responseHeaders pro Anfrage ändern.

FormDataItem

Chrome 66 und höher

Enthält Daten, die in Formulardaten übergeben werden. In URL-codierten Formen wird sie als String gespeichert, wenn es sich bei den Daten um einen utf-8-String handelt, andernfalls als ArrayBuffer. Für Formulardaten ist es ArrayBuffer. Wenn Formulardaten das Hochladen einer Datei darstellen, ist es eine Zeichenfolge mit Dateiname, wenn der Dateiname angegeben ist.

Enum

ArrayBuffer

String

HttpHeaders

Ein Array von HTTP-Headern. Jeder Header wird als Wörterbuch dargestellt, das die Schlüssel name und entweder value oder binaryValue enthält.

Typ

Objekt[]

Attribute

  • binaryValue

    nummer[] optional

    Wert des HTTP-Headers, wenn er nicht durch UTF-8 dargestellt werden kann; gespeichert als einzelne Bytewerte (0...255).

  • name

    String

    Name des HTTP-Headers.

  • value

    String optional

    Wert des HTTP-Headers, wenn er durch UTF-8 dargestellt werden kann.

IgnoredActionType

Chrome 70 oder höher

Enum

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44 und höher

Enum

"responseHeaders"
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.

"blocking"
Gibt an, dass die Anfrage blockiert wird, bis die Callback-Funktion zurückgegeben wird.

"asyncBlocking"
Gibt an, dass die Callback-Funktion asynchron verarbeitet wird.

"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.

OnBeforeRedirectOptions

Chrome 44 und höher

Enum

"responseHeaders"
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.

"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.

OnBeforeRequestOptions

Chrome 44 und höher

Enum

"blocking"
Gibt an, dass die Anfrage blockiert wird, bis die Callback-Funktion zurückgegeben wird.

"requestBody"
Gibt an, dass der Anfragetext in das Ereignis aufgenommen werden soll.

"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.

OnBeforeSendHeadersOptions

Chrome 44 und höher

Enum

"requestHeaders"
Gibt an, dass der Anfrageheader im Ereignis enthalten sein soll.

"blocking"
Gibt an, dass die Anfrage blockiert wird, bis die Callback-Funktion zurückgegeben wird.

"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.

OnCompletedOptions

Chrome 44 und höher

Enum

"responseHeaders"
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.

"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.

OnErrorOccurredOptions

Chrome 79 und höher

Wert

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 und höher

Enum

"blocking"
Gibt an, dass die Anfrage blockiert wird, bis die Callback-Funktion zurückgegeben wird.

"responseHeaders"
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.

"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.

OnResponseStartedOptions

Chrome 44 und höher

Enum

"responseHeaders"
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.

"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.

OnSendHeadersOptions

Chrome 44 und höher

Enum

"requestHeaders"
Gibt an, dass der Anfrageheader im Ereignis enthalten sein soll.

"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.

RequestFilter

Ein Objekt, das Filter beschreibt, die auf webRequest-Ereignisse angewendet werden sollen.

Attribute

  • tabId

    Nummer optional

  • Typen

    ResourceType[] optional

    Eine Liste der Anfragetypen. Anfragen, die keinem der Typen entsprechen, werden herausgefiltert.

  • urls

    String[]

    Eine Liste mit URLs oder URL-Mustern. Anfragen, die keiner der URLs entsprechen, werden herausgefiltert.

  • windowId

    Nummer optional

ResourceType

Chrome 44 und höher

Enum

"main_frame"
Gibt die Ressource als Hauptframe an.

"sub_frame"
Gibt die Ressource als Subframe an.

"stylesheet"
Gibt die Ressource als Stylesheet an.

"script"
Gibt die Ressource als Skript an.

"image"
Gibt die Ressource als Bild an.

"font"
Gibt die Ressource als Schriftart an.

"object"
Gibt die Ressource als Objekt an.

"xmlhttprequest"
Gibt die Ressource als XMLHttpRequest an.

"ping"
Gibt die Ressource als Ping an.

"csp_report"
Gibt die Ressource als Bericht zur Content Security Policy (CSP) an.

"media"
Gibt die Ressource als Medienobjekt an.

"websocket"
Gibt die Ressource als WebSocket an.

"webbundle"
Gibt die Ressource als WebBundle an.

"other"
Gibt die Ressource als Typ an, der nicht unter den aufgeführten Typen enthalten ist.

UploadData

Enthält Daten, die in einer URL-Anfrage hochgeladen wurden.

Attribute

  • Bytes

    Beliebig optional

    Ein ArrayBuffer mit einer Kopie der Daten.

  • Datei

    String optional

    Ein String mit dem Pfad und Namen der Datei.

Attribute

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

Die maximale Häufigkeit, mit der handlerBehaviorChanged pro kontinuierlichem Intervall von 10 Minuten aufgerufen werden kann. handlerBehaviorChanged ist ein teurer Funktionsaufruf, der nicht oft aufgerufen werden sollte.

Wert

20

Methoden

handlerBehaviorChanged()

Versprechen
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)

Muss aufgerufen werden, wenn sich das Verhalten der webRequest-Handler geändert hat, um eine falsche Verarbeitung aufgrund von Caching zu verhindern. Dieser Funktionsaufruf ist teuer. Rufen Sie nicht so oft an.

Parameters

  • callback

    Funktion optional

    Der Parameter callback sieht so aus:

    ()=>void

Rückgaben

  • Promise<void>

    Chrome 116 oder 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.

Veranstaltungen

onActionIgnored

Chrome 70 oder höher
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

Wird ausgelöst, wenn die von einer Erweiterung vorgeschlagene Änderung an einer Netzwerkanfrage ignoriert wird. Das kann bei Konflikten mit anderen Erweiterungen der Fall sein.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (details: object)=>void

    • Details

      Objekt

      • Die vorgeschlagene Aktion, die ignoriert wurde.

      • requestId

        String

        Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.

onAuthRequired

chrome.webRequest.onAuthRequired.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnAuthRequiredOptions[],
)

Wird ausgelöst, wenn ein Authentifizierungsfehler empfangen wird Der Listener hat drei Möglichkeiten: Er kann Anmeldedaten zur Authentifizierung angeben, die Anfrage abbrechen und die Fehlerseite anzeigen oder er kann bei der Identitätsbestätigung keine Aktion durchführen. Wenn falsche Anmeldedaten angegeben werden, kann dieser Vorgang für dieselbe Anfrage mehrmals aufgerufen werden. Hinweis: Im extraInfoSpec-Parameter darf nur der Modus 'blocking' oder 'asyncBlocking' angegeben werden.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (details: object,asyncCallback?: function)=>BlockingResponse|undefined

    • Details

      Objekt

      • Herausforderer

        Objekt

        Der Server, der eine Authentifizierung anfordert.

        • Gastgeber

          String

        • Port

          Zahl

      • documentId

        String

        Chrome 106 oder höher

        Die UUID des Dokuments, das die Anfrage stellt.

      • Chrome 106 oder höher

        Der Lebenszyklus des Dokuments.

      • 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.

      • Chrome 106 oder höher

        Der Frame-Typ, in dem die Anfrage aufgetreten ist.

      • Initiator

        String optional

        Chrome 63 und höher

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

      • isProxy

        boolean

        „True“ für Proxy-Authenticate, „false“ für WWW-Authenticate.

      • method

        String

        Standard-HTTP-Methode.

      • parentDocumentId

        String optional

        Chrome 106 oder höher

        Die UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.

      • 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.

      • Bereich

        String optional

        Der vom Server bereitgestellte Authentifizierungsbereich, falls vorhanden.

      • requestId

        String

        Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.

      • responseHeaders

        HttpHeaders optional

        Die HTTP-Antwortheader, die mit dieser Antwort empfangen wurden.

      • Schema

        String

        Das Authentifizierungsschema, z.B. Basic oder Digest.

      • statusCode

        Zahl

        Chrome 43 und höher

        Vom Server zurückgegebener Standard-HTTP-Statuscode.

      • statusLine

        String

        HTTP-Statuszeile der Antwort oder der String „HTTP/0.9 200 OK“ für HTTP/0.9-Antworten (d.h. Antworten ohne Statuszeile) oder ein leerer String, wenn keine Header vorhanden sind.

      • 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.

      • timeStamp

        Zahl

        Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.

      • Wie die angeforderte Ressource verwendet wird.

      • url

        String

    • asyncCallback

      Funktion optional

      Chrome 58 und höher

      Der Parameter asyncCallback sieht so aus:

      (response: BlockingResponse)=>void

    • Gibt zurück

      BlockingResponse|nicht definiert

      Wenn im Parameter "extraInfoSpec" "blocking" angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.

  • Filter
  • extraInfoSpec

onBeforeRedirect

chrome.webRequest.onBeforeRedirect.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRedirectOptions[],
)

Wird ausgelöst, wenn eine vom Server initiierte Weiterleitung stattfindet

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (details: object)=>void

    • Details

      Objekt

      • documentId

        String

        Chrome 106 oder höher

        Die UUID des Dokuments, das die Anfrage stellt.

      • Chrome 106 oder höher

        Der Lebenszyklus des Dokuments.

      • 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.

      • Chrome 106 oder höher

        Der Frame-Typ, in dem die Anfrage aufgetreten ist.

      • fromCache

        boolean

        Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.

      • Initiator

        String optional

        Chrome 63 und höher

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

      • ip

        String optional

        Die IP-Adresse des Servers, an die die Anfrage tatsächlich gesendet wurde. Beachten Sie, dass es sich um eine literale IPv6-Adresse handeln kann.

      • method

        String

        Standard-HTTP-Methode.

      • parentDocumentId

        String optional

        Chrome 106 oder höher

        Die UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.

      • 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.

      • redirectUrl

        String

        Die neue URL.

      • requestId

        String

        Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.

      • responseHeaders

        HttpHeaders optional

        Die HTTP-Antwortheader, die mit dieser Weiterleitung empfangen wurden.

      • statusCode

        Zahl

        Vom Server zurückgegebener Standard-HTTP-Statuscode.

      • statusLine

        String

        HTTP-Statuszeile der Antwort oder der String „HTTP/0.9 200 OK“ für HTTP/0.9-Antworten (d.h. Antworten ohne Statuszeile) oder ein leerer String, wenn keine Header vorhanden sind.

      • 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.

      • timeStamp

        Zahl

        Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.

      • Wie die angeforderte Ressource verwendet wird.

      • url

        String

  • Filter
  • extraInfoSpec

onBeforeRequest

chrome.webRequest.onBeforeRequest.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRequestOptions[],
)

Wird ausgelöst, wenn eine Anfrage kurz bevorsteht.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (details: object)=>BlockingResponse|undefined

    • Details

      Objekt

      • documentId

        String optional

        Chrome 106 oder höher

        Die UUID des Dokuments, das die Anfrage stellt.

      • documentLifecycle
        Chrome 106 oder höher

        Der Lebenszyklus des Dokuments.

      • 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
        Chrome 106 oder höher

        Der Frame-Typ, in dem die Anfrage aufgetreten ist.

      • Initiator

        String optional

        Chrome 63 und höher

        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 UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.

      • 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.

      • requestBody

        Objekt optional

        Enthält die HTTP-Anfragetextdaten. Wird nur angegeben, wenn zusätzlicheInfoSpec „requestBody“ enthält.

        • error

          String optional

          Fehler beim Abrufen von Anfragetextdaten.

        • formData

          Objekt optional

          Wenn die Anfragemethode POST ist und der Text aus einer Sequenz von in UTF8 codierten Schlüssel/Wert-Paaren besteht, die entweder als multipart/form-data oder application/x-www-form-urlEncrypt codiert sind, ist dieses Wörterbuch vorhanden und enthält für jeden Schlüssel die Liste aller Werte für den jeweiligen Schlüssel. Falls die Daten einen anderen Medientyp haben oder falsch formatiert sind, ist das Wörterbuch nicht vorhanden. Ein Beispielwert dieses Wörterbuchs ist {'key': ['value1', 'value2']}.

        • Roh

          UploadData[] optional

          Wenn die Anfragemethode PUT oder POST lautet und der Textkörper noch nicht in formData geparst wurde, sind die nicht geparsten Elemente des Anfragetexts in diesem Array enthalten.

      • requestId

        String

        Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.

      • 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.

      • timeStamp

        Zahl

        Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.

      • Wie die angeforderte Ressource verwendet wird.

      • url

        String

    • Gibt zurück

      BlockingResponse|nicht definiert

      Wenn im Parameter "extraInfoSpec" "blocking" angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.

  • Filter
  • extraInfoSpec

onBeforeSendHeaders

chrome.webRequest.onBeforeSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeSendHeadersOptions[],
)

Wird vor dem Senden einer HTTP-Anfrage ausgelöst, sobald die Anfrageheader verfügbar sind Dieser Fehler kann auftreten, nachdem eine TCP-Verbindung zum Server hergestellt wurde, aber bevor HTTP-Daten gesendet werden.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (details: object)=>BlockingResponse|undefined

    • Details

      Objekt

      • documentId

        String

        Chrome 106 oder höher

        Die UUID des Dokuments, das die Anfrage stellt.

      • Chrome 106 oder höher

        Der Lebenszyklus des Dokuments.

      • 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.

      • Chrome 106 oder höher

        Der Frame-Typ, in dem die Anfrage aufgetreten ist.

      • Initiator

        String optional

        Chrome 63 und höher

        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 UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.

      • 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.

      • requestHeaders

        HttpHeaders optional

        Die HTTP-Anfrageheader, die mit dieser Anfrage gesendet werden.

      • requestId

        String

        Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.

      • 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.

      • timeStamp

        Zahl

        Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.

      • Wie die angeforderte Ressource verwendet wird.

      • url

        String

    • Gibt zurück

      BlockingResponse|nicht definiert

      Wenn im Parameter "extraInfoSpec" "blocking" angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.

  • Filter
  • extraInfoSpec

onCompleted

chrome.webRequest.onCompleted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnCompletedOptions[],
)

Wird ausgelöst, wenn eine Anfrage abgeschlossen ist

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (details: object)=>void

    • Details

      Objekt

      • documentId

        String

        Chrome 106 oder höher

        Die UUID des Dokuments, das die Anfrage stellt.

      • Chrome 106 oder höher

        Der Lebenszyklus des Dokuments.

      • 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.

      • Chrome 106 oder höher

        Der Frame-Typ, in dem die Anfrage aufgetreten ist.

      • fromCache

        boolean

        Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.

      • Initiator

        String optional

        Chrome 63 und höher

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

      • ip

        String optional

        Die IP-Adresse des Servers, an die die Anfrage tatsächlich gesendet wurde. Beachten Sie, dass es sich um eine literale IPv6-Adresse handeln kann.

      • method

        String

        Standard-HTTP-Methode.

      • parentDocumentId

        String optional

        Chrome 106 oder höher

        Die UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.

      • 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. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.

      • responseHeaders

        HttpHeaders optional

        Die HTTP-Antwortheader, die mit dieser Antwort empfangen wurden.

      • statusCode

        Zahl

        Vom Server zurückgegebener Standard-HTTP-Statuscode.

      • statusLine

        String

        HTTP-Statuszeile der Antwort oder der String „HTTP/0.9 200 OK“ für HTTP/0.9-Antworten (d.h. Antworten ohne Statuszeile) oder ein leerer String, wenn keine Header vorhanden sind.

      • 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.

      • timeStamp

        Zahl

        Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.

      • Wie die angeforderte Ressource verwendet wird.

      • url

        String

  • Filter
  • extraInfoSpec

    OnCompletedOptions[] optional

onErrorOccurred

chrome.webRequest.onErrorOccurred.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnErrorOccurredOptions[],
)

Wird ausgelöst, wenn ein Fehler auftritt

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (details: object)=>void

    • Details

      Objekt

      • documentId

        String

        Chrome 106 oder höher

        Die UUID des Dokuments, das die Anfrage stellt. Dieser Wert ist nicht vorhanden, wenn die Anfrage die Navigation in einem Frame ist.

      • Chrome 106 oder höher

        Der Lebenszyklus des Dokuments.

      • error

        String

        Die Fehlerbeschreibung. Dieser String ist nicht abwärtskompatibel zwischen Releases. Sie dürfen den Inhalt nicht parsen und darauf reagieren.

      • 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.

      • Chrome 106 oder höher

        Der Frame-Typ, in dem die Anfrage aufgetreten ist.

      • fromCache

        boolean

        Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.

      • Initiator

        String optional

        Chrome 63 und höher

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

      • ip

        String optional

        Die IP-Adresse des Servers, an die die Anfrage tatsächlich gesendet wurde. Beachten Sie, dass es sich um eine literale IPv6-Adresse handeln kann.

      • method

        String

        Standard-HTTP-Methode.

      • parentDocumentId

        String optional

        Chrome 106 oder höher

        Die UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.

      • 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. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.

      • 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.

      • timeStamp

        Zahl

        Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.

      • Wie die angeforderte Ressource verwendet wird.

      • url

        String

  • Filter
  • extraInfoSpec

onHeadersReceived

chrome.webRequest.onHeadersReceived.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnHeadersReceivedOptions[],
)

Wird ausgelöst, wenn die HTTP-Antwortheader einer Anfrage empfangen wurden

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (details: object)=>BlockingResponse|undefined

    • Details

      Objekt

      • documentId

        String

        Chrome 106 oder höher

        Die UUID des Dokuments, das die Anfrage stellt.

      • Chrome 106 oder höher

        Der Lebenszyklus des Dokuments.

      • 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.

      • Chrome 106 oder höher

        Der Frame-Typ, in dem die Anfrage aufgetreten ist.

      • Initiator

        String optional

        Chrome 63 und höher

        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 UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.

      • 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. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.

      • responseHeaders

        HttpHeaders optional

        Die HTTP-Antwortheader, die mit dieser Antwort empfangen wurden.

      • statusCode

        Zahl

        Chrome 43 und höher

        Vom Server zurückgegebener Standard-HTTP-Statuscode.

      • statusLine

        String

        HTTP-Statuszeile der Antwort oder der String „HTTP/0.9 200 OK“ für HTTP/0.9-Antworten (d.h. Antworten ohne Statuszeile).

      • 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.

      • timeStamp

        Zahl

        Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.

      • Wie die angeforderte Ressource verwendet wird.

      • url

        String

    • Gibt zurück

      BlockingResponse|nicht definiert

      Wenn im Parameter "extraInfoSpec" "blocking" angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.

  • Filter
  • extraInfoSpec

onResponseStarted

chrome.webRequest.onResponseStarted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnResponseStartedOptions[],
)

Wird ausgelöst, wenn das erste Byte des Antworttexts empfangen wird. Bei HTTP-Anfragen bedeutet dies, dass die Statuszeile und die Antwortheader verfügbar sind.

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (details: object)=>void

    • Details

      Objekt

      • documentId

        String

        Chrome 106 oder höher

        Die UUID des Dokuments, das die Anfrage stellt.

      • Chrome 106 oder höher

        Der Lebenszyklus des Dokuments.

      • 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.

      • Chrome 106 oder höher

        Der Frame-Typ, in dem die Anfrage aufgetreten ist.

      • fromCache

        boolean

        Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.

      • Initiator

        String optional

        Chrome 63 und höher

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

      • ip

        String optional

        Die IP-Adresse des Servers, an die die Anfrage tatsächlich gesendet wurde. Beachten Sie, dass es sich um eine literale IPv6-Adresse handeln kann.

      • method

        String

        Standard-HTTP-Methode.

      • parentDocumentId

        String optional

        Chrome 106 oder höher

        Die UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.

      • 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. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.

      • responseHeaders

        HttpHeaders optional

        Die HTTP-Antwortheader, die mit dieser Antwort empfangen wurden.

      • statusCode

        Zahl

        Vom Server zurückgegebener Standard-HTTP-Statuscode.

      • statusLine

        String

        HTTP-Statuszeile der Antwort oder der String „HTTP/0.9 200 OK“ für HTTP/0.9-Antworten (d.h. Antworten ohne Statuszeile) oder ein leerer String, wenn keine Header vorhanden sind.

      • 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.

      • timeStamp

        Zahl

        Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.

      • Wie die angeforderte Ressource verwendet wird.

      • url

        String

  • Filter
  • extraInfoSpec

onSendHeaders

chrome.webRequest.onSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnSendHeadersOptions[],
)

Wird ausgelöst, kurz bevor eine Anfrage an den Server gesendet wird (Änderungen an vorherigen onBeforeSendHeaders-Callbacks sind zu dem Zeitpunkt sichtbar, zu dem onSendHeaders ausgelöst wird).

Parameters

  • callback

    Funktion

    Der Parameter callback sieht so aus:

    (details: object)=>void

    • Details

      Objekt

      • documentId

        String

        Chrome 106 oder höher

        Die UUID des Dokuments, das die Anfrage stellt.

      • Chrome 106 oder höher

        Der Lebenszyklus des Dokuments.

      • 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.

      • Chrome 106 oder höher

        Der Frame-Typ, in dem die Anfrage aufgetreten ist.

      • Initiator

        String optional

        Chrome 63 und höher

        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 UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.

      • 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.

      • requestHeaders

        HttpHeaders optional

        Die HTTP-Anfrageheader, die mit dieser Anfrage gesendet wurden.

      • requestId

        String

        Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.

      • 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.

      • timeStamp

        Zahl

        Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.

      • Wie die angeforderte Ressource verwendet wird.

      • url

        String

  • Filter
  • extraInfoSpec