Beschreibung
Mit der chrome.webRequest
API können Sie den Traffic beobachten und analysieren sowie Anfragen während der Übertragung abfangen, blockieren oder ändern.
Berechtigungen
webRequest
Sie müssen die Berechtigung "webRequest"
im Erweiterungsmanifest deklarieren, um die Webanfrage-API zusammen mit den erforderlichen Hostberechtigungen verwenden zu können. Damit eine Erweiterung eine Anfrage für eine untergeordnete Ressource abfangen kann, muss sie Zugriff auf die angeforderte URL und den Initiator haben. Beispiel:
{ "name": "My extension", ... "permissions": [ "webRequest" ], "host_permissions": [ "*://*.google.com/*" ], ... }
webRequestBlocking
Erforderlich, um blockierende Event-Handler zu registrieren. Ab Manifest V3 ist dies nur für Erweiterungen verfügbar, die über Richtlinien installiert wurden.
webRequestAuthProvider
Erforderlich für die Verwendung der Methode onAuthRequired
. Weitere Informationen finden Sie unter Authentifizierung verarbeiten.
Konzepte und Verwendung
Lebenszyklus von Anfragen
Die Web Request API definiert eine Reihe von Ereignissen, die dem Lebenszyklus einer Webanfrage folgen. Mit diesen Ereignissen können Sie den Traffic beobachten und analysieren. Bei bestimmten synchronen Ereignissen können Sie eine Anfrage abfangen, blockieren oder ändern.
Hier sehen Sie den Ereignislebenszyklus für erfolgreiche Anfragen, gefolgt von Ereignisdefinitionen:
onBeforeRequest
(optional synchron)- Wird ausgelöst, wenn eine Anfrage bevorsteht. Dieses Ereignis wird gesendet, bevor eine TCP-Verbindung hergestellt wird. Es kann verwendet werden, um Anfragen abzubrechen oder umzuleiten.
onBeforeSendHeaders
(optional synchron)- Wird ausgelöst, wenn eine Anfrage bevorsteht und die ersten Header vorbereitet wurden. Mit dem Ereignis können Erweiterungen Anfrageheader hinzufügen, ändern und löschen (*). Das
onBeforeSendHeaders
-Ereignis wird an alle Abonnenten übergeben. Daher können verschiedene Abonnenten versuchen, die Anfrage zu ändern. Weitere Informationen dazu, wie dies gehandhabt wird, finden Sie im Abschnitt Implementierungsdetails. Mit diesem Ereignis kann die Anfrage abgebrochen werden. onSendHeaders
- Wird ausgelöst, nachdem alle Erweiterungen die Anfrageheader geändert haben. Es wird die endgültige Version (*) angezeigt. Das Ereignis wird ausgelöst, bevor die Header an das Netzwerk gesendet werden. Dieses Ereignis dient nur zur Information und wird asynchron verarbeitet. Sie können die Anfrage nicht ändern oder stornieren.
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 wie eingehende Content-Type-Header hinzufügen, ändern und löschen. Die Caching-Anweisungen werden verarbeitet, bevor dieses Ereignis ausgelöst wird. Das Ändern von Headern wie „Cache-Control“ hat also keinen Einfluss auf den Cache des Browsers. Außerdem können Sie die Anfrage abbrechen oder umleiten.
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 für die Authentifizierung bereitzustellen. Beachten Sie, dass Erweiterungen möglicherweise ungültige Anmeldedaten liefern. Achten Sie darauf, keine Endlosschleife zu verursachen, indem Sie wiederholt ungültige Anmeldedaten eingeben. Dies kann auch zum Abbrechen der Anfrage verwendet werden.
onBeforeRedirect
- Wird ausgelöst, wenn eine Weiterleitung ausgeführt werden soll. Eine Weiterleitung kann durch einen HTTP-Antwortcode oder durch eine Erweiterung ausgelöst werden. Dieses Ereignis dient zu Informationszwecken und wird asynchron verarbeitet. Sie können die Anfrage nicht ändern oder stornieren.
onResponseStarted
- Wird ausgelöst, wenn das erste Byte des Antwortinhalts empfangen wird. Bei HTTP-Anfragen bedeutet das, dass die Statuszeile und die Antwortheader verfügbar sind. Dieses Ereignis dient zu Informationszwecken und wird asynchron verarbeitet. Die Anfrage kann nicht geändert oder storniert werden.
onCompleted
- Wird ausgelöst, wenn eine Anfrage erfolgreich verarbeitet wurde.
onErrorOccurred
- wird ausgelöst, wenn eine Anfrage nicht erfolgreich verarbeitet werden konnte.
Die Web Request API garantiert, dass für jede Anfrage entweder onCompleted
oder onErrorOccurred
als letztes Ereignis ausgelöst wird. Eine Ausnahme: Wenn eine Anfrage zu einer data://
-URL weitergeleitet wird, ist onBeforeRedirect
das letzte gemeldete Ereignis.
* Die Webanfrage-API bietet eine Abstraktion des Netzwerkstacks für die Erweiterung. Intern kann eine URL-Anfrage in mehrere HTTP-Anfragen aufgeteilt werden (z. B. um einzelne Bytebereiche aus einer großen Datei abzurufen) oder vom Netzwerk-Stack verarbeitet werden, ohne dass eine Kommunikation mit dem Netzwerk erfolgt. 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 unsichtbar.
Die folgenden Header werden derzeit nicht für das onBeforeSendHeaders
-Ereignis bereitgestellt. Diese Liste ist möglicherweise nicht vollständig und kann sich ändern.
- Autorisierung
- Cache-Control
- Verbindung
- Content-Length
- Host
- If-Modified-Since
- If-None-Match
- If-Range
- Teildaten
- Pragma
- Proxy-Authorization
- Proxy-Verbindung
- Transfer-Encoding
Ab Chrome 79 wirken sich Änderungen am Anfrageheader auf CORS-Prüfungen (Cross-Origin Resource Sharing) aus. Wenn modifizierte Header für Cross-Origin-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 so ändern müssen, dass das CORS-Protokoll verletzt wird, müssen Sie 'extraHeaders'
in opt_extraInfoSpec
angeben. Antwortheader-Änderungen können hingegen nicht verwendet werden, um CORS-Prüfungen zu umgehen. Wenn Sie das CORS-Protokoll umgehen müssen, müssen Sie auch 'extraHeaders'
für die Antwortänderungen angeben.
Ab Chrome 79 werden CORS-Preflight-Anfragen und ‑Antworten standardmäßig nicht von der webRequest API abgefangen. Ein CORS-Preflight für eine Anfrage-URL ist für eine Erweiterung sichtbar, wenn für die Anfrage-URL ein Listener mit 'extraHeaders'
in opt_extraInfoSpec
angegeben ist. onBeforeRequest
kann auch 'extraHeaders'
aus Chrome 79 übernehmen.
Ab Chrome 79 wird der folgende Anfrageheader nicht bereitgestellt und kann nicht geändert oder entfernt werden, ohne 'extraHeaders'
in opt_extraInfoSpec
anzugeben:
- Ursprung
Ab Chrome 72 müssen Sie 'extraHeaders'
in opt_extraInfoSpec
angeben, wenn Sie Antworten ändern müssen, bevor Cross-Origin Read Blocking (CORB) die Antwort blockieren kann.
Ab Chrome 72 werden die folgenden Anfrageheader nicht bereitgestellt und können nicht geändert oder entfernt werden, ohne 'extraHeaders'
in opt_extraInfoSpec
anzugeben:
- Accept-Language
- Accept-Encoding
- Referer
- Cookie
Ab Chrome 72 wird der Antwortheader Set-Cookie
nicht bereitgestellt und kann nicht geändert oder entfernt werden, ohne 'extraHeaders'
in opt_extraInfoSpec
anzugeben.
Ab Chrome 89 kann der Antwortheader X-Frame-Options
nicht effektiv geändert oder entfernt werden, ohne 'extraHeaders'
in opt_extraInfoSpec
anzugeben.
Die webRequest API macht nur Anfragen verfügbar, die die Erweiterung aufgrund ihrer Hostberechtigungen sehen darf. Außerdem sind nur die folgenden Schemas zugänglich: http://
, https://
, ftp://
, file://
, ws://
(seit Chrome 58), wss://
(seit Chrome 58), urn:
(seit Chrome 91) oder chrome-extension://
. Außerdem werden auch bestimmte Anfragen mit URLs, die eines der oben genannten Schemas verwenden, ausgeblendet. Dazu gehören chrome-extension://other_extension_id
, wenn other_extension_id
nicht die ID der Erweiterung ist, die die Anfrage verarbeiten soll, https://www.google.com/chrome
und andere sensible Anfragen, die für die Browserfunktionen von zentraler Bedeutung sind. Auch synchrone XMLHttpRequests aus Ihrer Erweiterung werden vor blockierenden Ereignishandlern verborgen, um Deadlocks zu verhindern. Bei einigen der unterstützten Schemas ist die Anzahl der verfügbaren Ereignisse aufgrund der Art des entsprechenden Protokolls möglicherweise begrenzt. Für das Dateischema dürfen beispielsweise nur onBeforeRequest
, onResponseStarted
, onCompleted
und onErrorOccurred
gesendet werden.
Ab Chrome 58 unterstützt die webRequest API das Abfangen der WebSocket-Handshake-Anfrage. Da der Handshake über eine HTTP-Upgrade-Anfrage erfolgt, passt sein Ablauf in das HTTP-orientierte webRequest-Modell. Die API fängt nicht ab:
- Einzelne Nachrichten, die über eine bestehende WebSocket-Verbindung gesendet werden.
- WebSocket schließt die Verbindung.
Weiterleitungen werden für WebSocket-Anfragen nicht unterstützt.
Ab Chrome 72 kann eine Erweiterung eine Anfrage nur dann abfangen, wenn sie Hostberechtigungen für die angeforderte URL und den Initiator der Anfrage hat.
Ab Chrome 96 unterstützt die webRequest API das Abfangen der WebTransport-Handshake-Anfrage über HTTP/3. 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 in sie eingreifen.
- Das Ändern von HTTP-Anfrageheadern in
onBeforeSendHeaders
wird ignoriert. - Weiterleitungen und Authentifizierungen werden bei WebTransport über HTTP/3 nicht unterstützt.
Anfrage-IDs
Jede Anfrage wird durch eine Anfrage-ID identifiziert. Diese ID ist innerhalb einer Browsersitzung und des Kontexts einer Erweiterung eindeutig. Sie bleibt während des Lebenszyklus einer Anfrage konstant und kann verwendet werden, um Ereignisse für dieselbe Anfrage abzugleichen. Bei HTTP-Weiterleitung oder HTTP-Authentifizierung werden mehrere HTTP-Anfragen einer Webanfrage 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 und optional ein Argument für zusätzliche Informationen angeben.
Die drei Argumente für addListener()
der Webanfrage-API haben die folgenden Definitionen:
var callback = function(details) {...}; var filter = {...}; var opt_extraInfoSpec = [...];
Hier sehen Sie ein Beispiel für das Abhören des onBeforeRequest
-Ereignisses:
chrome.webRequest.onBeforeRequest.addListener( callback, filter, opt_extraInfoSpec);
Für jeden addListener()
-Aufruf ist eine obligatorische Callback-Funktion als erster Parameter erforderlich. An diese Callback-Funktion wird ein Dictionary mit Informationen zur aktuellen URL-Anfrage übergeben. Die Informationen in diesem Dictionary hängen vom jeweiligen Ereignistyp und vom Inhalt von opt_extraInfoSpec
ab.
Wenn das optionale opt_extraInfoSpec
-Array den String 'blocking'
enthält (nur für bestimmte Ereignisse zulässig), wird die Callback-Funktion synchron verarbeitet. Das bedeutet, dass die Anfrage blockiert wird, bis die Callback-Funktion zurückgegeben wird. In diesem Fall kann der Callback ein webRequest.BlockingResponse
zurückgeben, das den weiteren Lebenszyklus der Anfrage bestimmt. Je nach Kontext kann mit dieser Antwort eine Anfrage abgebrochen oder umgeleitet (onBeforeRequest
), eine Anfrage abgebrochen oder Header geändert (onBeforeSendHeaders
, onHeadersReceived
) und eine Anfrage abgebrochen oder Anmeldedaten bereitgestellt (onAuthRequired
) werden.
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 webRequest.RequestFilter
filter
lassen sich die Anfragen, für die Ereignisse ausgelöst werden, in verschiedenen Dimensionen einschränken:
- URLs
- URL-Muster wie
*://www.google.com/foo*bar
. - Typen
- Anfragetypen wie
main_frame
(ein Dokument, das für einen Frame der obersten Ebene geladen wird),sub_frame
(ein Dokument, das für einen eingebetteten Frame geladen wird) undimage
(ein Bild auf einer Website). Weitere Informationen finden Sie unterwebRequest.RequestFilter
. - Tab ID
- Die Kennung für einen Tab.
- Fenster-ID
- Die Kennung für ein Fenster.
Je nach Ereignistyp können Sie in opt_extraInfoSpec
Strings angeben, um zusätzliche Informationen zur Anfrage zu erhalten. Diese wird verwendet, um detaillierte Informationen zu den Daten der Anfrage nur dann bereitzustellen, wenn dies ausdrücklich angefordert wird.
Authentifizierung verarbeiten
Wenn Sie Anfragen für die HTTP-Authentifizierung verarbeiten möchten, fügen Sie die Berechtigung "webRequestAuthProvider"
in Ihre Manifestdatei ein:
{ "permissions": [ "webRequest", "webRequestAuthProvider" ] }
Diese Berechtigung ist nicht für eine Erweiterung mit installierter Richtlinie und der Berechtigung "webRequestBlocking"
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 geben Sie Anmeldedaten asynchron an:
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, sind einige Implementierungsdetails wichtig:
web_accessible_resources
Wenn eine Erweiterung webRequest-APIs verwendet, um eine Anfrage für eine öffentliche Ressource an eine Ressource weiterzuleiten, die nicht über das Web zugänglich ist, wird sie blockiert und es wird ein Fehler ausgegeben. Das gilt auch dann, wenn die Ressource, auf die nicht über das Web zugegriffen werden kann, der weiterleitenden Erweiterung gehört. Wenn Sie Ressourcen für die Verwendung mit deklarativenWebRequest-APIs deklarieren möchten, muss das "web_accessible_resources"
-Array im Manifest deklariert und gefüllt werden, wie hier dokumentiert.
Konfliktlösung
In der aktuellen Implementierung der Webanfrage-API wird eine Anfrage als abgebrochen betrachtet, wenn mindestens eine Erweiterung die Anfrage abbricht. Wenn eine Erweiterung eine Anfrage abbricht, werden alle Erweiterungen durch ein onErrorOccurred
-Ereignis benachrichtigt. Es kann jeweils nur eine Erweiterung eine Anfrage weiterleiten oder einen Header ändern. Wenn mehrere Erweiterungen versuchen, die Anfrage zu ändern, wird nur die zuletzt installierte Erweiterung berücksichtigt. Eine Erweiterung wird nicht benachrichtigt, wenn ihre Anweisung zum Ändern oder Weiterleiten ignoriert wurde.
Caching
Chrome verwendet zwei Caches: einen Cache auf der Festplatte und einen sehr schnellen Cache im Arbeitsspeicher. Die Lebensdauer eines In-Memory-Caches ist an die Lebensdauer eines Rendering-Prozesses gebunden, der in etwa einem Tab entspricht. Anfragen, die aus dem In-Memory-Cache beantwortet werden, sind für die Web Request API nicht sichtbar. Wenn ein Request-Handler sein Verhalten ändert (z. B. das Verhalten, nach dem Anfragen blockiert werden), wird dieses geänderte Verhalten möglicherweise nicht durch einfaches Aktualisieren der Seite berücksichtigt. Rufen Sie handlerBehaviorChanged()
auf, um den In-Memory-Cache zu leeren, damit die Verhaltensänderung übernommen wird. Sie sollten das aber nicht oft tun, da das Leeren des Cache ein sehr aufwendiger Vorgang ist. Sie müssen handlerBehaviorChanged()
nicht aufrufen, nachdem Sie einen Ereignis-Listener registriert oder die Registrierung aufgehoben haben.
Zeitstempel
Die timestamp
-Property von Webanfrageereignissen ist nur intern konsistent. Wenn Sie ein Ereignis mit einem anderen Ereignis vergleichen, erhalten Sie den richtigen Offset zwischen den beiden Ereignissen. Wenn Sie sie jedoch mit der aktuellen Zeit in der Erweiterung vergleichen (z. B. über (new Date()).getTime()
), kann das 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 beim Verarbeiten eines Ereignisses ein Fehler auftritt oder ein Ereignishandler eine ungültige blockierende Antwort zurückgibt, wird eine Fehlermeldung in der Konsole Ihrer Erweiterung protokolliert und der Handler wird für diese Anfrage ignoriert.
Beispiele
Im folgenden Beispiel wird gezeigt, 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 für diese Funktion ein blockierender Ereignis-Handler verwendet wird, sind sowohl die Berechtigung "webRequest"
als auch die Berechtigung "webRequestBlocking"
in der Manifestdatei erforderlich.
Im folgenden Beispiel wird dasselbe Ziel auf effizientere Weise 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"] );
Im folgenden Beispiel wird gezeigt, 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 ausprobieren möchten, installieren Sie das webRequest-Beispiel aus dem Repository chrome-extension-samples.
Typen
BlockingResponse
Gibt den Wert für Event-Handler zurück, auf die „blocking“ extraInfoSpec angewendet wird. Ermöglicht dem Event-Handler, Netzwerkanfragen zu ändern.
Attribute
- authCredentials
object optional
Wird nur als Reaktion auf das Ereignis „onAuthRequired“ verwendet. Falls festgelegt, wird die Anfrage mit den angegebenen Anmeldedaten gestellt.
- Passwort
String
- Nutzername
String
-
- Abbrechen
boolean optional
Wenn „true“, wird die Anfrage abgebrochen. Dadurch wird verhindert, dass die Anfrage gesendet wird. Diese kann als Antwort auf die Ereignisse „onBeforeRequest“, „onBeforeSendHeaders“, „onHeadersReceived“ und „onAuthRequired“ verwendet werden.
- redirectUrl
String optional
Wird nur als Reaktion auf die Ereignisse „onBeforeRequest“ und „onHeadersReceived“ verwendet. Wenn diese Option festgelegt ist, wird verhindert, dass die ursprüngliche Anfrage gesendet/abgeschlossen wird. Stattdessen wird sie an die angegebene URL weitergeleitet. Weiterleitungen zu Nicht-HTTP-Schemata wie
data:
sind zulässig. Bei Weiterleitungen, die durch eine Weiterleitungsaktion initiiert werden, wird die ursprüngliche Anfragemethode für die Weiterleitung verwendet. Eine Ausnahme: Wenn die Weiterleitung in der Phase „onHeadersReceived“ initiiert wird, erfolgt die Weiterleitung mit der GET-Methode. Weiterleitungen von URLs mit den Schemasws://
undwss://
werden ignoriert. - requestHeaders
HttpHeaders optional
Wird nur als Reaktion auf das Ereignis „onBeforeSendHeaders“ verwendet. Wenn diese festgelegt sind, wird die Anfrage stattdessen mit diesen Anfrageheadern gesendet.
- responseHeaders
HttpHeaders optional
Wird nur als Reaktion auf das Ereignis „onHeadersReceived“ verwendet. Wenn festgelegt, wird davon ausgegangen, dass der Server stattdessen mit diesen Antwortheadern geantwortet hat. Geben Sie
responseHeaders
nur zurück, wenn Sie die Header wirklich ändern möchten, um die Anzahl der Konflikte zu begrenzen (nur eine Erweiterung darfresponseHeaders
für jede Anfrage ändern).
FormDataItem
Enthält Daten, die in Formulardaten übergeben werden. Bei URL-codierten Formularen werden Daten als String gespeichert, wenn es sich um UTF-8-Strings handelt, andernfalls als ArrayBuffer. Für Formulardaten ist es ArrayBuffer. Wenn „form-data“ das Hochladen einer Datei darstellt, ist es ein String mit dem Dateinamen, sofern der Dateiname angegeben ist.
Enum
ArrayBuffer
String
HttpHeaders
Ein Array von HTTP-Headern. Jeder Header wird als Dictionary mit den Schlüsseln name
und entweder value
oder binaryValue
dargestellt.
Typ
object[]
Attribute
- binaryValue
number[] optional
Wert des HTTP-Headers, wenn er nicht durch UTF-8 dargestellt werden kann. Er wird als einzelne Byte-Werte (0–255) gespeichert.
- name
String
Name des HTTP-Headers.
- Wert
String optional
Wert des HTTP-Headers, wenn er durch UTF-8 dargestellt werden kann.
IgnoredActionType
Enum
"redirect"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
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 gegen Cross-Origin Resource Sharing (CORS) verstoßen können.
OnBeforeRedirectOptions
Enum
„responseHeaders“
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.
„extraHeaders“
Gibt an, dass Header gegen Cross-Origin Resource Sharing (CORS) verstoßen können.
OnBeforeRequestOptions
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 gegen Cross-Origin Resource Sharing (CORS) verstoßen können.
OnBeforeSendHeadersOptions
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 gegen Cross-Origin Resource Sharing (CORS) verstoßen können.
OnCompletedOptions
Enum
„responseHeaders“
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.
„extraHeaders“
Gibt an, dass Header gegen Cross-Origin Resource Sharing (CORS) verstoßen können.
OnErrorOccurredOptions
Wert
"extraHeaders"
OnHeadersReceivedOptions
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 gegen Cross-Origin Resource Sharing (CORS) verstoßen können.
OnResponseStartedOptions
Enum
„responseHeaders“
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.
„extraHeaders“
Gibt an, dass Header gegen Cross-Origin Resource Sharing (CORS) verstoßen können.
OnSendHeadersOptions
Enum
"requestHeaders"
Gibt an, dass der Anfrageheader im Ereignis enthalten sein soll.
„extraHeaders“
Gibt an, dass Header gegen Cross-Origin Resource Sharing (CORS) verstoßen können.
RequestFilter
Ein Objekt, das Filter für webRequest-Ereignisse beschreibt.
Attribute
- tabId
number optional
- Typen
ResourceType[] optional
Eine Liste mit Anfragetypen. Anfragen, die keinem der Typen entsprechen, werden herausgefiltert.
- URLs
String[]
Eine Liste von URLs oder URL-Mustern. Anfragen, die keiner der URLs entsprechen, werden herausgefiltert.
- windowId
number optional
ResourceType
Enum
„main_frame“
Gibt die Ressource als Hauptframe an.
„sub_frame“
Gibt die Ressource als untergeordneten Frame 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 CSP-Bericht (Content Security Policy) an.
„media“
Gibt die Ressource als Media-Objekt an.
websocket
Gibt die Ressource als WebSocket an.
„webbundle“
Gibt die Ressource als WebBundle an.
„other“
Gibt die Ressource als einen Typ an, der nicht in den aufgeführten Typen enthalten ist.
UploadData
Enthält Daten, die in einer URL-Anfrage hochgeladen wurden.
Attribute
- Byte
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 Anzahl von Aufrufen von handlerBehaviorChanged
in einem fortlaufenden Intervall von 10 Minuten. handlerBehaviorChanged
ist ein aufwendiger Funktionsaufruf, der nicht oft aufgerufen werden sollte.
Wert
20
Methoden
handlerBehaviorChanged()
chrome.webRequest.handlerBehaviorChanged(): Promise<void>
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 sie nicht oft auf.
Ausgabe
-
Promise<void>
Chrome 116 und höher
Ereignisse
onActionIgnored
chrome.webRequest.onActionIgnored.addListener(
callback: function,
)
Wird ausgelöst, wenn die vorgeschlagene Änderung einer Netzwerkanfrage durch eine Erweiterung ignoriert wird. Das kann passieren, wenn es Konflikte mit anderen Erweiterungen gibt.
Parameter
- callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
- Details
Objekt
- Aktion
Die vorgeschlagene Aktion, die ignoriert wurde.
- requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. Daher können sie verwendet werden, um verschiedene Ereignisse derselben Anfrage in Beziehung zu setzen.
-
-
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 für die Authentifizierung angeben, die Anfrage abbrechen und die Fehlerseite anzeigen oder keine Maßnahmen in Bezug auf die Challenge ergreifen. Wenn ungültige Nutzeranmeldedaten angegeben werden, kann diese Funktion für dieselbe Anfrage mehrmals aufgerufen werden. Hinweis: Im Parameter extraInfoSpec
muss nur einer der Modi 'blocking'
oder 'asyncBlocking'
angegeben werden.
Parameter
- callback
Funktion
Der Parameter
callback
sieht so aus:(details: object, asyncCallback?: function) => BlockingResponse | undefined
- Details
Objekt
- Herausforderer
Objekt
Der Server, der die Authentifizierung anfordert.
- Host
String
- Port
Zahl
-
- documentId
String
Chrome 106 und höherDie UUID des Dokuments, das die Anfrage stellt.
- documentLifecycleChrome 106 und höher
Die Lebenszyklusphase des Dokuments.
- frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt. Ein positiver Wert gibt die ID eines Unterframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Unter-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. - frameTypeChrome 106 und höher
Der Typ des Frames, in dem die Anfrage gestellt wurde.
- Initiator
String optional
Chrome 63 und höherDer Ursprung, von dem die Anfrage initiiert wurde. Das ändert sich auch durch Weiterleitungen nicht. Wenn es sich um einen undurchsichtigen Ursprung handelt, 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 und höherDie UUID des übergeordneten Dokuments, zu dem dieser Frame gehört. Dieser Wert wird nicht festgelegt, wenn es kein übergeordnetes Element gibt.
- parentFrameId
Zahl
ID des Frames, der den Frame umschließt, der die Anfrage gesendet hat. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
- Bereich
String optional
Der vom Server bereitgestellte Authentifizierungsbereich, sofern vorhanden.
- requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. Daher können sie verwendet werden, um verschiedene Ereignisse derselben Anfrage in Beziehung zu setzen.
- responseHeaders
HttpHeaders optional
Die HTTP-Antwortheader, die zusammen mit dieser Antwort empfangen wurden.
- Schema
String
Das Authentifizierungsschema, z.B. „Basic“ oder „Digest“.
- statusCode
Zahl
Chrome 43 und höherStandard-HTTP-Statuscode, der vom Server zurückgegeben wird.
- 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, auf dem die Anfrage erfolgt. Auf -1 gesetzt, wenn die Anfrage nicht mit einem Tab zusammenhängt.
- timeStamp
Zahl
Die Zeit, zu der dieses Signal ausgelöst wird, in Millisekunden seit der Epoche.
- Typ
Wie die angeforderte Ressource verwendet wird.
- URL
String
-
- asyncCallback
Funktion optional
Chrome 58 und höherDer Parameter
asyncCallback
sieht so aus:(response: BlockingResponse) => void
- Antwort
-
- Gibt zurück
BlockingResponse | undefined
Wenn „blocking“ im Parameter „extraInfoSpec“ angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.
-
- filtern
- extraInfoSpec
OnAuthRequiredOptions[] optional
onBeforeRedirect
chrome.webRequest.onBeforeRedirect.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRedirectOptions[],
)
Wird ausgelöst, wenn eine vom Server initiierte Weiterleitung bevorsteht.
Parameter
- callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
- Details
Objekt
- documentId
String
Chrome 106 und höherDie UUID des Dokuments, das die Anfrage stellt.
- documentLifecycleChrome 106 und höher
Die Lebenszyklusphase des Dokuments.
- frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt. Ein positiver Wert gibt die ID eines Unterframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Unter-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. - frameTypeChrome 106 und höher
Der Typ des Frames, in dem die Anfrage gestellt wurde.
- fromCache
boolean
Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.
- Initiator
String optional
Chrome 63 und höherDer Ursprung, von dem die Anfrage initiiert wurde. Das ändert sich auch durch Weiterleitungen nicht. Wenn es sich um einen undurchsichtigen Ursprung handelt, wird der String „null“ verwendet.
- ip
String optional
Die Server-IP-Adresse, an die die Anfrage tatsächlich gesendet wurde. Es kann sich um eine Literal-IPv6-Adresse handeln.
- method
String
Standard-HTTP-Methode.
- parentDocumentId
String optional
Chrome 106 und höherDie UUID des übergeordneten Dokuments, zu dem dieser Frame gehört. Dieser Wert wird nicht festgelegt, wenn es kein übergeordnetes Element gibt.
- parentFrameId
Zahl
ID des Frames, der den Frame umschließt, der die Anfrage gesendet hat. 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. Daher können sie verwendet werden, um verschiedene Ereignisse derselben Anfrage in Beziehung zu setzen.
- responseHeaders
HttpHeaders optional
Die HTTP-Antwortheader, die zusammen mit dieser Weiterleitung empfangen wurden.
- statusCode
Zahl
Standard-HTTP-Statuscode, der vom Server zurückgegeben wird.
- 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, auf dem die Anfrage erfolgt. Auf -1 gesetzt, wenn die Anfrage nicht mit einem Tab zusammenhängt.
- timeStamp
Zahl
Die Zeit, zu der dieses Signal ausgelöst wird, in Millisekunden seit der Epoche.
- Typ
Wie die angeforderte Ressource verwendet wird.
- URL
String
-
-
- filtern
- extraInfoSpec
OnBeforeRedirectOptions[] optional
onBeforeRequest
chrome.webRequest.onBeforeRequest.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRequestOptions[],
)
Wird ausgelöst, wenn eine Anfrage bevorsteht.
Parameter
- callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => BlockingResponse | undefined
- Details
Objekt
- documentId
String optional
Chrome 106 und höherDie UUID des Dokuments, das die Anfrage stellt.
- documentLifecycle
extensionTypes.DocumentLifecycle optional
Chrome 106 und höherDie Lebenszyklusphase des Dokuments.
- frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt. Ein positiver Wert gibt die ID eines Unterframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Unter-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. - frameType
extensionTypes.FrameType optional
Chrome 106 und höherDer Typ des Frames, in dem die Anfrage gestellt wurde.
- Initiator
String optional
Chrome 63 und höherDer Ursprung, von dem die Anfrage initiiert wurde. Das ändert sich auch durch Weiterleitungen nicht. Wenn es sich um einen undurchsichtigen Ursprung handelt, wird der String „null“ verwendet.
- method
String
Standard-HTTP-Methode.
- parentDocumentId
String optional
Chrome 106 und höherDie UUID des übergeordneten Dokuments, zu dem dieser Frame gehört. Dieser Wert wird nicht festgelegt, wenn es kein übergeordnetes Element gibt.
- parentFrameId
Zahl
ID des Frames, der den Frame umschließt, der die Anfrage gesendet hat. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
- requestBody
object optional
Enthält die Daten des HTTP-Anfragetexts. Wird nur bereitgestellt, wenn „extraInfoSpec“ „requestBody“ enthält.
- Fehler
String optional
Fehler beim Abrufen von Daten für den Anfragetext.
- formData
object optional
Wenn die Anfragemethode POST ist und der Textkörper eine Folge von Schlüssel/Wert-Paaren ist, die in UTF8 codiert sind, entweder als „multipart/form-data“ oder „application/x-www-form-urlencoded“, ist dieses Dictionary vorhanden und enthält für jeden Schlüssel die Liste aller Werte für diesen Schlüssel. Wenn die Daten einen anderen Medientyp haben oder fehlerhaft sind, ist das Dictionary nicht vorhanden. Ein Beispielwert für dieses Dictionary ist {'key': ['value1', 'value2']}.
- Roh
UploadData[] optional
Wenn die Anfragemethode PUT oder POST ist und der Text nicht bereits in „formData“ geparst wurde, enthält dieses Array die nicht geparsten Elemente des Anfragetexts.
-
- requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. Daher können sie verwendet werden, um verschiedene Ereignisse derselben Anfrage in Beziehung zu setzen.
- tabId
Zahl
Die ID des Tabs, auf dem die Anfrage erfolgt. Auf -1 gesetzt, wenn die Anfrage nicht mit einem Tab zusammenhängt.
- timeStamp
Zahl
Die Zeit, zu der dieses Signal ausgelöst wird, in Millisekunden seit der Epoche.
- Typ
Wie die angeforderte Ressource verwendet wird.
- URL
String
-
- Gibt zurück
BlockingResponse | undefined
Wenn „blocking“ im Parameter „extraInfoSpec“ angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.
-
- filtern
- extraInfoSpec
OnBeforeRequestOptions[] optional
onBeforeSendHeaders
chrome.webRequest.onBeforeSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeSendHeadersOptions[],
)
Wird ausgelöst, bevor eine HTTP-Anfrage gesendet wird, sobald die Anfrageheader verfügbar sind. Dies kann nach dem Herstellen einer TCP-Verbindung zum Server, aber vor dem Senden von HTTP-Daten auftreten.
Parameter
- callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => BlockingResponse | undefined
- Details
Objekt
- documentId
String
Chrome 106 und höherDie UUID des Dokuments, das die Anfrage stellt.
- documentLifecycleChrome 106 und höher
Die Lebenszyklusphase des Dokuments.
- frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt. Ein positiver Wert gibt die ID eines Unterframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Unter-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. - frameTypeChrome 106 und höher
Der Typ des Frames, in dem die Anfrage gestellt wurde.
- Initiator
String optional
Chrome 63 und höherDer Ursprung, von dem die Anfrage initiiert wurde. Das ändert sich auch durch Weiterleitungen nicht. Wenn es sich um einen undurchsichtigen Ursprung handelt, wird der String „null“ verwendet.
- method
String
Standard-HTTP-Methode.
- parentDocumentId
String optional
Chrome 106 und höherDie UUID des übergeordneten Dokuments, zu dem dieser Frame gehört. Dieser Wert wird nicht festgelegt, wenn es kein übergeordnetes Element gibt.
- parentFrameId
Zahl
ID des Frames, der den Frame umschließt, der die Anfrage gesendet hat. 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. Daher können sie verwendet werden, um verschiedene Ereignisse derselben Anfrage in Beziehung zu setzen.
- tabId
Zahl
Die ID des Tabs, auf dem die Anfrage erfolgt. Auf -1 gesetzt, wenn die Anfrage nicht mit einem Tab zusammenhängt.
- timeStamp
Zahl
Die Zeit, zu der dieses Signal ausgelöst wird, in Millisekunden seit der Epoche.
- Typ
Wie die angeforderte Ressource verwendet wird.
- URL
String
-
- Gibt zurück
BlockingResponse | undefined
Wenn „blocking“ im Parameter „extraInfoSpec“ angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.
-
- filtern
- extraInfoSpec
OnBeforeSendHeadersOptions[] optional
onCompleted
chrome.webRequest.onCompleted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnCompletedOptions[],
)
Wird ausgelöst, wenn eine Anfrage abgeschlossen ist.
Parameter
- callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
- Details
Objekt
- documentId
String
Chrome 106 und höherDie UUID des Dokuments, das die Anfrage stellt.
- documentLifecycleChrome 106 und höher
Die Lebenszyklusphase des Dokuments.
- frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt. Ein positiver Wert gibt die ID eines Unterframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Unter-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. - frameTypeChrome 106 und höher
Der Typ des Frames, in dem die Anfrage gestellt wurde.
- fromCache
boolean
Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.
- Initiator
String optional
Chrome 63 und höherDer Ursprung, von dem die Anfrage initiiert wurde. Das ändert sich auch durch Weiterleitungen nicht. Wenn es sich um einen undurchsichtigen Ursprung handelt, wird der String „null“ verwendet.
- ip
String optional
Die Server-IP-Adresse, an die die Anfrage tatsächlich gesendet wurde. Es kann sich um eine Literal-IPv6-Adresse handeln.
- method
String
Standard-HTTP-Methode.
- parentDocumentId
String optional
Chrome 106 und höherDie UUID des übergeordneten Dokuments, zu dem dieser Frame gehört. Dieser Wert wird nicht festgelegt, wenn es kein übergeordnetes Element gibt.
- parentFrameId
Zahl
ID des Frames, der den Frame umschließt, der die Anfrage gesendet hat. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
- requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. Daher können sie verwendet werden, um verschiedene Ereignisse derselben Anfrage in Beziehung zu setzen.
- responseHeaders
HttpHeaders optional
Die HTTP-Antwortheader, die zusammen mit dieser Antwort empfangen wurden.
- statusCode
Zahl
Standard-HTTP-Statuscode, der vom Server zurückgegeben wird.
- 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, auf dem die Anfrage erfolgt. Auf -1 gesetzt, wenn die Anfrage nicht mit einem Tab zusammenhängt.
- timeStamp
Zahl
Die Zeit, zu der dieses Signal ausgelöst wird, in Millisekunden seit der Epoche.
- Typ
Wie die angeforderte Ressource verwendet wird.
- URL
String
-
-
- filtern
- extraInfoSpec
OnCompletedOptions[] optional
onErrorOccurred
chrome.webRequest.onErrorOccurred.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnErrorOccurredOptions[],
)
Wird ausgelöst, wenn ein Fehler auftritt.
Parameter
- callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
- Details
Objekt
- documentId
String
Chrome 106 und höherDie UUID des Dokuments, das die Anfrage stellt. Dieser Wert ist nicht vorhanden, wenn die Anfrage eine Navigation eines Frames ist.
- documentLifecycleChrome 106 und höher
Die Lebenszyklusphase des Dokuments.
- Fehler
String
Die Fehlerbeschreibung. Es wird nicht garantiert, dass dieser String zwischen den Releases abwärtskompatibel bleibt. Sie dürfen den Inhalt nicht parsen und darauf basierende Aktionen ausführen.
- frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt. Ein positiver Wert gibt die ID eines Unterframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Unter-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. - frameTypeChrome 106 und höher
Der Typ des Frames, in dem die Anfrage gestellt wurde.
- fromCache
boolean
Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.
- Initiator
String optional
Chrome 63 und höherDer Ursprung, von dem die Anfrage initiiert wurde. Das ändert sich auch durch Weiterleitungen nicht. Wenn es sich um einen undurchsichtigen Ursprung handelt, wird der String „null“ verwendet.
- ip
String optional
Die Server-IP-Adresse, an die die Anfrage tatsächlich gesendet wurde. Es kann sich um eine Literal-IPv6-Adresse handeln.
- method
String
Standard-HTTP-Methode.
- parentDocumentId
String optional
Chrome 106 und höherDie UUID des übergeordneten Dokuments, zu dem dieser Frame gehört. Dieser Wert wird nicht festgelegt, wenn es kein übergeordnetes Element gibt.
- parentFrameId
Zahl
ID des Frames, der den Frame umschließt, der die Anfrage gesendet hat. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
- requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. Daher können sie verwendet werden, um verschiedene Ereignisse derselben Anfrage in Beziehung zu setzen.
- tabId
Zahl
Die ID des Tabs, auf dem die Anfrage erfolgt. Auf -1 gesetzt, wenn die Anfrage nicht mit einem Tab zusammenhängt.
- timeStamp
Zahl
Die Zeit, zu der dieses Signal ausgelöst wird, in Millisekunden seit der Epoche.
- Typ
Wie die angeforderte Ressource verwendet wird.
- URL
String
-
-
- filtern
- extraInfoSpec
OnErrorOccurredOptions[] optional
onHeadersReceived
chrome.webRequest.onHeadersReceived.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnHeadersReceivedOptions[],
)
Wird ausgelöst, wenn die HTTP-Antwortheader einer Anfrage empfangen wurden.
Parameter
- callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => BlockingResponse | undefined
- Details
Objekt
- documentId
String
Chrome 106 und höherDie UUID des Dokuments, das die Anfrage stellt.
- documentLifecycleChrome 106 und höher
Die Lebenszyklusphase des Dokuments.
- frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt. Ein positiver Wert gibt die ID eines Unterframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Unter-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. - frameTypeChrome 106 und höher
Der Typ des Frames, in dem die Anfrage gestellt wurde.
- Initiator
String optional
Chrome 63 und höherDer Ursprung, von dem die Anfrage initiiert wurde. Das ändert sich auch durch Weiterleitungen nicht. Wenn es sich um einen undurchsichtigen Ursprung handelt, wird der String „null“ verwendet.
- method
String
Standard-HTTP-Methode.
- parentDocumentId
String optional
Chrome 106 und höherDie UUID des übergeordneten Dokuments, zu dem dieser Frame gehört. Dieser Wert wird nicht festgelegt, wenn es kein übergeordnetes Element gibt.
- parentFrameId
Zahl
ID des Frames, der den Frame umschließt, der die Anfrage gesendet hat. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
- requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. Daher können sie verwendet werden, um verschiedene Ereignisse derselben Anfrage in Beziehung zu setzen.
- responseHeaders
HttpHeaders optional
Die HTTP-Antwortheader, die mit dieser Antwort empfangen wurden.
- statusCode
Zahl
Chrome 43 und höherStandard-HTTP-Statuscode, der vom Server zurückgegeben wird.
- 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, auf dem die Anfrage erfolgt. Auf -1 gesetzt, wenn die Anfrage nicht mit einem Tab zusammenhängt.
- timeStamp
Zahl
Die Zeit, zu der dieses Signal ausgelöst wird, in Millisekunden seit der Epoche.
- Typ
Wie die angeforderte Ressource verwendet wird.
- URL
String
-
- Gibt zurück
BlockingResponse | undefined
Wenn „blocking“ im Parameter „extraInfoSpec“ angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.
-
- filtern
- extraInfoSpec
OnHeadersReceivedOptions[] optional
onResponseStarted
chrome.webRequest.onResponseStarted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnResponseStartedOptions[],
)
Wird ausgelöst, wenn das erste Byte des Antwortinhalts empfangen wird. Bei HTTP-Anfragen bedeutet das, dass die Statuszeile und die Antwortheader verfügbar sind.
Parameter
- callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
- Details
Objekt
- documentId
String
Chrome 106 und höherDie UUID des Dokuments, das die Anfrage stellt.
- documentLifecycleChrome 106 und höher
Die Lebenszyklusphase des Dokuments.
- frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt. Ein positiver Wert gibt die ID eines Unterframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Unter-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. - frameTypeChrome 106 und höher
Der Typ des Frames, in dem die Anfrage gestellt wurde.
- fromCache
boolean
Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.
- Initiator
String optional
Chrome 63 und höherDer Ursprung, von dem die Anfrage initiiert wurde. Das ändert sich auch durch Weiterleitungen nicht. Wenn es sich um einen undurchsichtigen Ursprung handelt, wird der String „null“ verwendet.
- ip
String optional
Die Server-IP-Adresse, an die die Anfrage tatsächlich gesendet wurde. Es kann sich um eine Literal-IPv6-Adresse handeln.
- method
String
Standard-HTTP-Methode.
- parentDocumentId
String optional
Chrome 106 und höherDie UUID des übergeordneten Dokuments, zu dem dieser Frame gehört. Dieser Wert wird nicht festgelegt, wenn es kein übergeordnetes Element gibt.
- parentFrameId
Zahl
ID des Frames, der den Frame umschließt, der die Anfrage gesendet hat. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
- requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. Daher können sie verwendet werden, um verschiedene Ereignisse derselben Anfrage in Beziehung zu setzen.
- responseHeaders
HttpHeaders optional
Die HTTP-Antwortheader, die zusammen mit dieser Antwort empfangen wurden.
- statusCode
Zahl
Standard-HTTP-Statuscode, der vom Server zurückgegeben wird.
- 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, auf dem die Anfrage erfolgt. Auf -1 gesetzt, wenn die Anfrage nicht mit einem Tab zusammenhängt.
- timeStamp
Zahl
Die Zeit, zu der dieses Signal ausgelöst wird, in Millisekunden seit der Epoche.
- Typ
Wie die angeforderte Ressource verwendet wird.
- URL
String
-
-
- filtern
- extraInfoSpec
OnResponseStartedOptions[] optional
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 sichtbar, wenn onSendHeaders ausgelöst wird.
Parameter
- callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
- Details
Objekt
- documentId
String
Chrome 106 und höherDie UUID des Dokuments, das die Anfrage stellt.
- documentLifecycleChrome 106 und höher
Die Lebenszyklusphase des Dokuments.
- frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt. Ein positiver Wert gibt die ID eines Unterframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Unter-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. - frameTypeChrome 106 und höher
Der Typ des Frames, in dem die Anfrage gestellt wurde.
- Initiator
String optional
Chrome 63 und höherDer Ursprung, von dem die Anfrage initiiert wurde. Das ändert sich auch durch Weiterleitungen nicht. Wenn es sich um einen undurchsichtigen Ursprung handelt, wird der String „null“ verwendet.
- method
String
Standard-HTTP-Methode.
- parentDocumentId
String optional
Chrome 106 und höherDie UUID des übergeordneten Dokuments, zu dem dieser Frame gehört. Dieser Wert wird nicht festgelegt, wenn es kein übergeordnetes Element gibt.
- parentFrameId
Zahl
ID des Frames, der den Frame umschließt, der die Anfrage gesendet hat. 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. Daher können sie verwendet werden, um verschiedene Ereignisse derselben Anfrage in Beziehung zu setzen.
- tabId
Zahl
Die ID des Tabs, auf dem die Anfrage erfolgt. Auf -1 gesetzt, wenn die Anfrage nicht mit einem Tab zusammenhängt.
- timeStamp
Zahl
Die Zeit, zu der dieses Signal ausgelöst wird, in Millisekunden seit der Epoche.
- Typ
Wie die angeforderte Ressource verwendet wird.
- URL
String
-
-
- filtern
- extraInfoSpec
OnSendHeadersOptions[] optional