chrome.webRequest

Beschrijving

Gebruik de chrome.webRequest API om verkeer te observeren en te analyseren, en om lopende verzoeken te onderscheppen, te blokkeren of te wijzigen.

Toestemmingen

webRequest

Manifest

U moet de machtiging "webRequest" in het extensiemanifest declareren om de webverzoek-API te kunnen gebruiken, samen met de benodigde hostmachtigingen . Om een ​​subresourceverzoek te onderscheppen, moet de extensie toegang hebben tot zowel de aangevraagde URL als de initiator ervan. Bijvoorbeeld:

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

Vanaf Chrome 108 kun je asynchroon referenties opgeven voor onAuthRequired -gebeurtenissen als je de machtigingen "webRequest" en "webRequestAuthProvider" gebruikt.

Levenscyclus van verzoeken

De webverzoek-API definieert een reeks gebeurtenissen die de levenscyclus van een webverzoek volgen. U kunt deze gebeurtenissen gebruiken om het verkeer te observeren en te analyseren. Bepaalde synchrone gebeurtenissen stellen u in staat een verzoek te onderscheppen, te blokkeren of te wijzigen.

Hieronder wordt de levenscyclus van succesvolle verzoeken geïllustreerd, gevolgd door de definities van de gebeurtenissen:

Levenscyclus van een webverzoek vanuit het perspectief van de webverzoek-API

onBeforeRequest (optioneel synchroon)
Wordt geactiveerd wanneer een verzoek op het punt staat plaats te vinden. Deze gebeurtenis wordt verzonden voordat er een TCP-verbinding tot stand komt en kan worden gebruikt om verzoeken te annuleren of om te leiden.
onBeforeSendHeaders (optioneel synchroon)
Deze gebeurtenis wordt geactiveerd wanneer een verzoek op het punt staat te worden uitgevoerd en de initiële headers zijn voorbereid. De gebeurtenis is bedoeld om extensies in staat te stellen verzoekheaders toe te voegen, te wijzigen en te verwijderen (*) . De onBeforeSendHeaders gebeurtenis wordt doorgegeven aan alle abonnees, zodat verschillende abonnees kunnen proberen het verzoek te wijzigen; zie de sectie Implementatiedetails voor meer informatie over hoe dit wordt afgehandeld. Deze gebeurtenis kan worden gebruikt om het verzoek te annuleren.
onSendHeaders
Deze gebeurtenis wordt geactiveerd nadat alle extensies de mogelijkheid hebben gehad om de aanvraagheaders aan te passen, en presenteert de definitieve (*) versie. De gebeurtenis wordt geactiveerd voordat de headers naar het netwerk worden verzonden. Deze gebeurtenis is informatief en wordt asynchroon verwerkt. Het staat niet toe om de aanvraag te wijzigen of te annuleren.
onHeadersReceived (optioneel synchroon)
Deze gebeurtenis wordt geactiveerd telkens wanneer een HTTP(S)-antwoordheader wordt ontvangen. Vanwege omleidingen en authenticatieverzoeken kan dit meerdere keren per verzoek gebeuren. Deze gebeurtenis is bedoeld om extensies in staat te stellen antwoordheaders, zoals inkomende Content-Type-headers, toe te voegen, te wijzigen en te verwijderen. De caching-richtlijnen worden verwerkt voordat deze gebeurtenis wordt geactiveerd, dus het wijzigen van headers zoals Cache-Control heeft geen invloed op de cache van de browser. Het stelt u ook in staat om het verzoek te annuleren of om te leiden.
onAuthRequired (optioneel synchroon)
Deze gebeurtenis wordt geactiveerd wanneer een verzoek authenticatie van de gebruiker vereist. Deze gebeurtenis kan synchroon worden afgehandeld om authenticatiegegevens te verstrekken. Houd er rekening mee dat extensies mogelijk ongeldige gegevens verstrekken. Zorg ervoor dat u geen oneindige lus veroorzaakt door herhaaldelijk ongeldige gegevens te verstrekken. Deze functie kan ook worden gebruikt om het verzoek te annuleren.
onBeforeRedirect
Deze gebeurtenis wordt geactiveerd wanneer een omleiding op het punt staat te worden uitgevoerd. Een omleiding kan worden geactiveerd door een HTTP-responsstatuscode of door een extensie. Deze gebeurtenis is informatief en wordt asynchroon verwerkt. U kunt het verzoek hiermee niet wijzigen of annuleren.
onResponseStarted
Deze gebeurtenis wordt geactiveerd wanneer de eerste byte van de responsbody is ontvangen. Voor HTTP-verzoeken betekent dit dat de statusregel en de responsheaders beschikbaar zijn. Deze gebeurtenis is informatief en wordt asynchroon verwerkt. Het staat niet toe om het verzoek te wijzigen of te annuleren.
onCompleted
Wordt geactiveerd wanneer een verzoek succesvol is verwerkt.
onErrorOccurred
Wordt geactiveerd wanneer een verzoek niet succesvol kon worden verwerkt.

De webverzoek-API garandeert dat voor elk verzoek ofwel onCompleted ofwel onErrorOccurred als laatste gebeurtenis wordt geactiveerd, met één uitzondering: als een verzoek wordt omgeleid naar een data:// URL, is onBeforeRedirect de laatst gerapporteerde gebeurtenis.

* Houd er rekening mee dat de webverzoek-API een abstractie van de netwerkstack aan de extensie presenteert. Intern kan één URL-verzoek worden opgesplitst in meerdere HTTP-verzoeken (bijvoorbeeld om afzonderlijke bytebereiken uit een groot bestand op te halen) of kan het worden afgehandeld door de netwerkstack zonder communicatie met het netwerk. Om deze reden geeft de API de uiteindelijke HTTP-headers die naar het netwerk worden verzonden niet weer. Alle headers die betrekking hebben op caching zijn bijvoorbeeld onzichtbaar voor de extensie.

De volgende headers worden momenteel niet doorgegeven aan de onBeforeSendHeaders -gebeurtenis. Het is niet gegarandeerd dat deze lijst volledig of stabiel is.

  • Autorisatie
  • Cache-Control
  • Verbinding
  • Inhoud-Lengte
  • Gastheer
  • Als-gewijzigd-sinds
  • Als er geen overeenkomst is
  • Als-bereik
  • Gedeeltelijke gegevens
  • Pragma
  • Proxy-autorisatie
  • Proxyverbinding
  • Transfercodering

Vanaf Chrome 79 hebben wijzigingen in request headers invloed op Cross-Origin Resource Sharing (CORS)-controles. Als gewijzigde headers voor cross-origin-verzoeken niet aan de criteria voldoen, wordt een CORS-preflight verzonden om de server te vragen of dergelijke headers geaccepteerd kunnen worden. Als u headers daadwerkelijk wilt wijzigen op een manier die het CORS-protocol schendt, moet u 'extraHeaders' specificeren in opt_extraInfoSpec . Aan de andere kant werken wijzigingen in response headers niet om CORS-controles te omzeilen. Als u het CORS-protocol wilt omzeilen, moet u ook 'extraHeaders' specificeren voor de response-wijzigingen.

Vanaf Chrome 79 onderschept de webRequest API standaard geen CORS-preflightverzoeken en -reacties meer. Een CORS-preflight voor een URL is zichtbaar voor een extensie als er een listener is met 'extraHeaders' gespecificeerd in opt_extraInfoSpec voor de URL. onBeforeRequest kan vanaf Chrome 79 ook 'extraHeaders' accepteren.

Vanaf Chrome 79 wordt de volgende requestheader niet meer meegeleverd en kan deze niet worden gewijzigd of verwijderd zonder 'extraHeaders' in opt_extraInfoSpec te specificeren:

  • Oorsprong

Vanaf Chrome 72 geldt dat als je reacties wilt wijzigen voordat Cross Origin Read Blocking (CORB) de reactie kan blokkeren, je 'extraHeaders' moet specificeren in opt_extraInfoSpec .

Vanaf Chrome 72 worden de volgende verzoekheaders niet meer meegeleverd en kunnen ze niet worden gewijzigd of verwijderd zonder 'extraHeaders' in opt_extraInfoSpec op te geven:

  • Accept-Language
  • Accept-Encoding
  • Verwijzer
  • Koekje

Vanaf Chrome 72 wordt de Set-Cookie response header niet meer meegeleverd en kan deze niet worden gewijzigd of verwijderd zonder 'extraHeaders' op te geven in opt_extraInfoSpec .

Vanaf Chrome 89 kan de X-Frame-Options antwoordheader niet effectief worden gewijzigd of verwijderd zonder 'extraHeaders' te specificeren in opt_extraInfoSpec .

De webRequest API toont alleen verzoeken die de extensie mag zien, op basis van de hostrechten . Bovendien zijn alleen de volgende schema's toegankelijk: http:// , https:// , ftp:// , file:// , ws:// (sinds Chrome 58), wss:// (sinds Chrome 58), urn: (sinds Chrome 91) of chrome-extension:// . Daarnaast worden zelfs bepaalde verzoeken met URL's die een van de bovenstaande schema's gebruiken, verborgen. Dit omvat chrome-extension://other_extension_id waarbij other_extension_id niet de ID is van de extensie die het verzoek moet afhandelen, https://www.google.com/chrome en andere gevoelige verzoeken die essentieel zijn voor de browserfunctionaliteit. Ook synchrone XMLHttpRequests van uw extensie worden verborgen voor blokkerende gebeurtenisafhandelaars om deadlocks te voorkomen. Houd er rekening mee dat voor sommige van de ondersteunde schema's de set beschikbare gebeurtenissen beperkt kan zijn vanwege de aard van het bijbehorende protocol. Bijvoorbeeld, voor het bestand: schema mogen alleen onBeforeRequest , onResponseStarted , onCompleted en onErrorOccurred worden verzonden.

Vanaf Chrome 58 ondersteunt de webRequest API het onderscheppen van de WebSocket-handshake. Omdat de handshake plaatsvindt via een HTTP-upgradeverzoek, past de flow ervan in het HTTP-georiënteerde webRequest-model. Houd er rekening mee dat de API het volgende niet onderschept :

  • Individuele berichten verzonden via een bestaande WebSocket-verbinding.
  • WebSocket-verbinding wordt verbroken.

Omleidingen worden niet ondersteund voor WebSocket-verzoeken.

Vanaf Chrome 72 kan een extensie een verzoek alleen onderscheppen als deze hostrechten heeft voor zowel de aangevraagde URL als de initiatiefnemer van het verzoek.

Vanaf Chrome 96 ondersteunt de webRequest API het onderscheppen van de WebTransport over HTTP/3-handshake. Omdat de handshake plaatsvindt via een HTTP CONNECT-verzoek, past de flow ervan in het HTTP-georiënteerde webRequest-model. Let op:

  • Zodra de sessie tot stand is gebracht, kunnen extensies de sessie niet observeren of erin ingrijpen via de webRequest API.
  • Het wijzigen van HTTP-verzoekheaders in onBeforeSendHeaders wordt genegeerd.
  • Omleidingen en authenticatie worden niet ondersteund in WebTransport via HTTP/3.

Concepten

Zoals in de volgende paragrafen wordt uitgelegd, gebruiken gebeurtenissen in de webverzoek-API verzoek-ID's, en kunt u optioneel filters en extra informatie specificeren wanneer u gebeurtenislisteners registreert.

Aanvraag-ID's

Elk verzoek wordt geïdentificeerd door een verzoek-ID. Deze ID is uniek binnen een browsersessie en de context van een extensie. De ID blijft constant gedurende de levenscyclus van een verzoek en kan worden gebruikt om gebeurtenissen voor hetzelfde verzoek te koppelen. Houd er rekening mee dat meerdere HTTP-verzoeken worden gekoppeld aan één webverzoek in geval van HTTP-omleiding of HTTP-authenticatie.

Registratie van luisteraars voor het evenement

Om een ​​gebeurtenislistener voor een webverzoek te registreren, gebruikt u een variant op de gebruikelijke addListener() -functie . Naast het specificeren van een callbackfunctie moet u een filterargument opgeven, en u kunt optioneel een extra informatieargument toevoegen.

De drie argumenten voor de addListener() -methode van de webverzoek-API hebben de volgende definities:

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

Hier is een voorbeeld van hoe je kunt luisteren naar de onBeforeRequest -gebeurtenis:

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

Elke aanroep addListener() vereist een verplichte callbackfunctie als eerste parameter. Aan deze callbackfunctie wordt een dictionary doorgegeven met informatie over het huidige URL-verzoek. De informatie in deze dictionary is afhankelijk van het specifieke gebeurtenistype en de inhoud van opt_extraInfoSpec .

Als de optionele array opt_extraInfoSpec de tekenreeks 'blocking' bevat (alleen toegestaan ​​voor specifieke gebeurtenissen), wordt de callbackfunctie synchroon afgehandeld. Dit betekent dat het verzoek wordt geblokkeerd totdat de callbackfunctie een resultaat retourneert. In dit geval kan de callback een webRequest.BlockingResponse retourneren die de verdere levenscyclus van het verzoek bepaalt. Afhankelijk van de context maakt dit antwoord het mogelijk om een ​​verzoek te annuleren of door te sturen ( onBeforeRequest ), een verzoek te annuleren of headers te wijzigen ( onBeforeSendHeaders , onHeadersReceived ) en een verzoek te annuleren of authenticatiegegevens te verstrekken ( onAuthRequired ).

Als de optionele array opt_extraInfoSpec in plaats daarvan de tekenreeks 'asyncBlocking' bevat (alleen toegestaan ​​voor onAuthRequired ), kan de extensie de webRequest.BlockingResponse asynchroon genereren.

Met het webRequest.RequestFilter filter kunt u de verzoeken beperken waarvoor gebeurtenissen in verschillende dimensies worden geactiveerd:

URL's
URL-patronen zoals *://www.google.com/foo*bar .
Soorten
Verzoektypen zoals main_frame (een document dat wordt geladen voor een frame op het hoogste niveau), sub_frame (een document dat wordt geladen voor een ingebed frame) en image (een afbeelding op een website). Zie webRequest.RequestFilter .
Tab-ID
De identificatiecode voor één tabblad.
Venster-ID
De identificatiecode voor een venster.

Afhankelijk van het type gebeurtenis kunt u in opt_extraInfoSpec tekenreeksen opgeven om aanvullende informatie over het verzoek op te vragen. Dit wordt gebruikt om gedetailleerde informatie over de gegevens van het verzoek te verstrekken, maar alleen als hier expliciet om wordt gevraagd.

Implementatiedetails

Bij het ontwikkelen van een extensie die gebruikmaakt van de webverzoek-API zijn er een aantal implementatiedetails die belangrijk zijn om te begrijpen:

web_toegankelijke_bronnen

Wanneer een extensie de webRequest API gebruikt om een ​​verzoek voor een openbare bron door te sturen naar een bron die niet via het web toegankelijk is, wordt dit geblokkeerd en resulteert dit in een fout. Dit geldt zelfs als de niet-webtoegankelijke bron eigendom is van de doorverwijzende extensie. Om bronnen te declareren voor gebruik met declarativeWebRequest API's, moet de array "web_accessible_resources" worden gedeclareerd en gevuld in het manifest, zoals hier gedocumenteerd.

Conflictresolutie

In de huidige implementatie van de webverzoek-API wordt een verzoek als geannuleerd beschouwd als ten minste één extensie de instructie geeft om het verzoek te annuleren. Als een extensie een verzoek annuleert, worden alle extensies hiervan op de hoogte gesteld via een onErrorOccurred gebeurtenis. Slechts één extensie kan tegelijkertijd een verzoek doorsturen of een header wijzigen. Als meer dan één extensie probeert het verzoek te wijzigen, krijgt de laatst geïnstalleerde extensie voorrang en worden alle andere genegeerd. Een extensie wordt niet op de hoogte gesteld als de instructie om het verzoek te wijzigen of door te sturen is genegeerd.

Caching

Chrome gebruikt twee caches: een cache op de schijf en een zeer snelle cache in het geheugen. De levensduur van een cache in het geheugen is gekoppeld aan de levensduur van een renderproces, wat ongeveer overeenkomt met een tabblad. Verzoeken die vanuit de cache in het geheugen worden beantwoord, zijn onzichtbaar voor de webverzoek-API. Als een verzoekhandler zijn gedrag wijzigt (bijvoorbeeld het gedrag waarmee verzoeken worden geblokkeerd), kan een simpele paginaverversing dit gewijzigde gedrag mogelijk niet respecteren. Om ervoor te zorgen dat de gedragswijziging wordt doorgevoerd, roept u handlerBehaviorChanged() aan om de cache in het geheugen te legen. Doe dit echter niet te vaak; het legen van de cache is een zeer kostbare bewerking. U hoeft handlerBehaviorChanged() niet aan te roepen na het registreren of deregistreren van een gebeurtenislistener.

Tijdstempels

De timestamp eigenschap van webverzoekgebeurtenissen is alleen intern consistent. Het vergelijken van de ene gebeurtenis met de andere geeft de juiste tijdsverschuiving ertussen, maar het vergelijken ervan met de huidige tijd binnen de extensie (bijvoorbeeld via (new Date()).getTime() ) kan onverwachte resultaten opleveren.

Foutafhandeling

Als u een gebeurtenis probeert te registreren met ongeldige argumenten, wordt er een JavaScript-fout gegenereerd en wordt de gebeurtenishandler niet geregistreerd. Als er een fout optreedt tijdens de verwerking van een gebeurtenis of als een gebeurtenishandler een ongeldig blokkerend antwoord retourneert, wordt er een foutmelding in de console van uw extensie weergegeven en wordt de handler voor dat verzoek genegeerd.

Voorbeelden

Het volgende voorbeeld laat zien hoe je alle verzoeken aan www.evil.com kunt blokkeren:

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

Omdat deze functie gebruikmaakt van een blokkerende gebeurtenisafhandelaar, zijn zowel de machtigingen "webRequest" als "webRequestBlocking" in het manifestbestand vereist.

Het volgende voorbeeld bereikt hetzelfde doel op een efficiëntere manier, omdat verzoeken die niet gericht zijn aan www.evil.com niet aan de extensie hoeven te worden doorgegeven:

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

Het volgende voorbeeld laat zien hoe u de User-Agent-header uit alle verzoeken kunt verwijderen:

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"]
);

Om de chrome.webRequest API uit te proberen, installeer je de webRequest-voorbeeldapplicatie uit de chrome-extension-samples repository.

Soorten

BlockingResponse

Retourneert een waarde voor gebeurtenisafhandelaars waarop de 'blokkerende' extraInfoSpec is toegepast. Hiermee kan de gebeurtenisafhandelaar netwerkverzoeken wijzigen.

Eigenschappen

  • authenticatiegegevens

    object optioneel

    Wordt alleen gebruikt als reactie op de onAuthRequired-gebeurtenis. Indien ingesteld, wordt het verzoek gedaan met de opgegeven inloggegevens.

    • wachtwoord

      snaar

    • gebruikersnaam

      snaar

  • annuleren

    boolean optioneel

    Als dit waar is, wordt het verzoek geannuleerd. Dit voorkomt dat het verzoek wordt verzonden. Dit kan worden gebruikt als reactie op de gebeurtenissen onBeforeRequest, onBeforeSendHeaders, onHeadersReceived en onAuthRequired.

  • redirectUrl

    string optioneel

    Wordt alleen gebruikt als reactie op de gebeurtenissen onBeforeRequest en onHeadersReceived. Indien ingesteld, wordt voorkomen dat het oorspronkelijke verzoek wordt verzonden/voltooid en wordt het in plaats daarvan doorgestuurd naar de opgegeven URL. Doorverwijzingen naar niet-HTTP-schema's zoals data: zijn toegestaan. Doorverwijzingen die worden geïnitieerd door een redirect-actie gebruiken de oorspronkelijke verzoekmethode voor de doorverwijzing, met één uitzondering: als de doorverwijzing wordt geïnitieerd in de onHeadersReceived-fase, wordt de doorverwijzing uitgevoerd met de GET-methode. Doorverwijzingen van URL's met de schema's ws:// en wss:// worden genegeerd .

  • verzoekHeaders

    HttpHeaders optioneel

    Wordt alleen gebruikt als reactie op de onBeforeSendHeaders-gebeurtenis. Indien ingesteld, wordt het verzoek in plaats daarvan met deze verzoekheaders verzonden.

  • antwoordHeaders

    HttpHeaders optioneel

    Wordt alleen gebruikt als reactie op de onHeadersReceived-gebeurtenis. Indien ingesteld, wordt aangenomen dat de server in plaats daarvan met deze antwoordheaders heeft gereageerd. Retourneer alleen responseHeaders als u de headers daadwerkelijk wilt wijzigen om het aantal conflicten te beperken (slechts één extensie mag responseHeaders per verzoek wijzigen).

FormDataItem

Chrome 66+

Bevat gegevens die via het formulier worden doorgegeven. Voor URL-gecodeerde formulieren worden deze gegevens als tekenreeks opgeslagen als de gegevens een UTF-8-tekenreeks zijn, en anders als ArrayBuffer. Voor formuliergegevens is het een ArrayBuffer. Als de formuliergegevens een geüpload bestand vertegenwoordigen, is het een tekenreeks met de bestandsnaam, indien deze is opgegeven.

Enum

ArrayBuffer

snaar

HttpHeaders

Een array van HTTP-headers. Elke header wordt weergegeven als een dictionary met de sleutels ' name en ofwel value of binaryValue '.

Type

voorwerp[]

Eigenschappen

  • binaire waarde

    nummer[] optioneel

    De waarde van de HTTP-header, indien deze niet kan worden weergegeven door UTF-8, wordt opgeslagen als afzonderlijke byte-waarden (0..255).

  • naam

    snaar

    Naam van de HTTP-header.

  • waarde

    string optioneel

    De waarde van de HTTP-header, indien deze kan worden weergegeven door UTF-8.

IgnoredActionType

Chrome 70+

Enum

"doorverwijzen"

"verzoekheaders"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44+

Enum

"responseHeaders"
Geeft aan dat de responseheaders in de gebeurtenis moeten worden opgenomen.

"blokkeren"
Geeft aan dat het verzoek wordt geblokkeerd totdat de callbackfunctie een resultaat retourneert.

"asyncBlocking"
Geeft aan dat de callbackfunctie asynchroon wordt afgehandeld.

"extraHeaders"
Geeft aan dat headers het Cross-Origin Resource Sharing (CORS)-principe kunnen schenden.

OnBeforeRedirectOptions

Chrome 44+

Enum

"responseHeaders"
Geeft aan dat de responseheaders in de gebeurtenis moeten worden opgenomen.

"extraHeaders"
Geeft aan dat headers het Cross-Origin Resource Sharing (CORS)-principe kunnen schenden.

OnBeforeRequestOptions

Chrome 44+

Enum

"blokkeren"
Geeft aan dat het verzoek wordt geblokkeerd totdat de callbackfunctie een resultaat retourneert.

"verzoeklichaam"
Geeft aan dat de aanvraagbody in de gebeurtenis moet worden opgenomen.

"extraHeaders"
Geeft aan dat headers het Cross-Origin Resource Sharing (CORS)-principe kunnen schenden.

OnBeforeSendHeadersOptions

Chrome 44+

Enum

"verzoekHeaders"
Geeft aan dat de aanvraagheader in de gebeurtenis moet worden opgenomen.

"blokkeren"
Geeft aan dat het verzoek wordt geblokkeerd totdat de callbackfunctie een resultaat retourneert.

"extraHeaders"
Geeft aan dat headers het Cross-Origin Resource Sharing (CORS)-principe kunnen schenden.

OnCompletedOptions

Chrome 44+

Enum

"responseHeaders"
Geeft aan dat de responseheaders in de gebeurtenis moeten worden opgenomen.

"extraHeaders"
Geeft aan dat headers het Cross-Origin Resource Sharing (CORS)-principe kunnen schenden.

OnErrorOccurredOptions

Chrome 79+

Waarde

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44+

Enum

"blokkeren"
Geeft aan dat het verzoek wordt geblokkeerd totdat de callbackfunctie een resultaat retourneert.

"responseHeaders"
Geeft aan dat de responseheaders in de gebeurtenis moeten worden opgenomen.

"extraHeaders"
Geeft aan dat headers het Cross-Origin Resource Sharing (CORS)-principe kunnen schenden.

"beveiligingsinfo"
Geeft aan dat de SecurityInfo in de gebeurtenis moet worden opgenomen.

"securityInfoRawDer"
Geeft aan dat de SecurityInfo met de onbewerkte bytes van certificaten in de gebeurtenis moet worden opgenomen.

OnResponseStartedOptions

Chrome 44+

Enum

"responseHeaders"
Geeft aan dat de responseheaders in de gebeurtenis moeten worden opgenomen.

"extraHeaders"
Geeft aan dat headers het Cross-Origin Resource Sharing (CORS)-principe kunnen schenden.

OnSendHeadersOptions

Chrome 44+

Enum

"verzoekHeaders"
Geeft aan dat de aanvraagheader in de gebeurtenis moet worden opgenomen.

"extraHeaders"
Geeft aan dat headers het Cross-Origin Resource Sharing (CORS)-principe kunnen schenden.

RequestFilter

Een object dat filters beschrijft die moeten worden toegepast op webRequest-gebeurtenissen.

Eigenschappen

  • tabId

    nummer optioneel

  • typen

    ResourceType [] optioneel

    Een lijst met verzoektypen. Verzoeken die niet aan een van de typen voldoen, worden gefilterd.

  • URL's

    snaar[]

    Een lijst met URL's of URL-patronen. Verzoeken die niet overeenkomen met een van de URL's worden gefilterd.

  • venster-ID

    nummer optioneel

ResourceType

Chrome 44+

Enum

"hoofdframe"
Specificeert de bron als het hoofdframe.

"sub_frame"
Specificeert de bron als een subframe.

"stijlpagina"
Specificeert de bron als een stylesheet.

"script"
Specificeert de bron als een script.

"afbeelding"
Specificeert de bron als een afbeelding.

"lettertype"
Specificeert de bron als een lettertype.

"voorwerp"
Specificeert de bron als een object.

"xmlhttprequest"
Specificeert de bron als een XMLHttpRequest.

"ping"
Specificeert de bron als een ping.

"csp_rapport"
Specificeert de bron als een Content Security Policy (CSP)-rapport.

"media"
Specificeert de bron als een mediaobject.

"websocket"
Specificeert de bron als een WebSocket.

"webbundel"
Specificeert de bron als een WebBundle.

"ander"
Specificeert de bron als een type dat niet is opgenomen in de lijst met typen.

SecurityInfo

In behandeling

Eigenschappen

  • certificaten

    voorwerp[]

    Een lijst met certificaten

    • vingerafdruk

      voorwerp

      Vingerafdrukken van het certificaat.

      • sha256

        snaar

        SHA256-vingerafdruk van het certificaat.

    • rawDER

      ArrayBuffer optioneel

      Ruwe bytes van het DER-gecodeerde servercertificaat

  • staat

    snaar

    Status van de verbinding. Beveiligd, onbeveiligd of verbroken.

UploadData

Bevat gegevens die zijn geüpload in een URL-verzoek.

Eigenschappen

  • bytes

    eventuele optionele

    Een ArrayBuffer met een kopie van de gegevens.

  • bestand

    string optioneel

    Een tekenreeks met het pad en de naam van het bestand.

Eigenschappen

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

Het maximale aantal keren dat handlerBehaviorChanged per aaneengesloten interval van 10 minuten kan worden aangeroepen. handlerBehaviorChanged is een kostbare functieaanroep die niet vaak zou moeten worden uitgevoerd.

Waarde

20

Methoden

handlerBehaviorChanged()

Belofte
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)
: Promise<void>

Deze functie moet worden aangeroepen wanneer het gedrag van de webRequest-handlers is gewijzigd om onjuiste afhandeling als gevolg van caching te voorkomen. Deze functieaanroep is kostbaar. Roep hem niet vaak aan.

Parameters

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retourneert

  • Promise<void>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

Evenementen

onActionIgnored

Chrome 70+
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

Deze uitzondering wordt geactiveerd wanneer een door een extensie voorgestelde wijziging van een netwerkverzoek wordt genegeerd. Dit gebeurt in geval van conflicten met andere extensies.

Parameters

  • terugbelverzoek

    functie

    De callback parameter ziet er als volgt uit:

    (details: object) => void

    • details

      voorwerp

      • De voorgestelde actie werd genegeerd.

      • verzoek-ID

        snaar

        Het ID van het verzoek. Verzoek-ID's zijn uniek binnen een browsersessie. Daardoor kunnen ze worden gebruikt om verschillende gebeurtenissen van hetzelfde verzoek aan elkaar te koppelen.

onAuthRequired

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

Deze functie wordt geactiveerd wanneer een authenticatiefout wordt ontvangen. De listener heeft drie opties: authenticatiegegevens verstrekken, het verzoek annuleren en de foutpagina weergeven, of geen actie ondernemen. Als er onjuiste gebruikersgegevens worden verstrekt, kan deze functie meerdere keren voor hetzelfde verzoek worden aangeroepen. Let op: in de parameter extraInfoSpec hoeft slechts één van de modi 'blocking' of 'asyncBlocking' te worden gespecificeerd.

Parameters

  • terugbelverzoek

    functie

    De callback parameter ziet er als volgt uit:

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

    • details

      voorwerp

      • uitdager

        voorwerp

        De server die om authenticatie verzoekt.

        • gastheer

          snaar

        • haven

          nummer

      • documentId

        string optioneel

        Chrome 106+

        De UUID van het document dat het verzoek indient.

      • documentLevenscyclus
        Chrome 106+

        De levenscyclus waarin het document zich bevindt.

      • frameId

        nummer

        De waarde 0 geeft aan dat het verzoek plaatsvindt in het hoofdvenster; een positieve waarde geeft de ID aan van een subvenster waarin het verzoek plaatsvindt. Als het document van een (sub)venster wordt geladen ( type is main_frame of sub_frame ), geeft frameId de ID van dit venster aan, niet de ID van het buitenste venster. Venster-ID's zijn uniek binnen een tabblad.

      • Chrome 106+

        Het type frame waarin het verzoek plaatsvond.

      • initiatiefnemer

        string optioneel

        Chrome 63+

        De oorsprong waar het verzoek vandaan kwam. Deze verandert niet door omleidingen. Als dit een ondoorzichtige oorsprong is, wordt de tekenreeks 'null' gebruikt.

      • isProxy

        booleaans

        Waar voor Proxy-Authenticatie, onwaar voor WWW-Authenticatie.

      • methode

        snaar

        Standaard HTTP-methode.

      • parentDocumentId

        string optioneel

        Chrome 106+

        De UUID van het bovenliggende document waartoe dit frame behoort. Deze wordt niet ingesteld als er geen bovenliggend document is.

      • parentFrameId

        nummer

        ID van het frame dat het frame omsluit dat het verzoek heeft verzonden. Stel in op -1 als er geen ouderframe bestaat.

      • rijk

        string optioneel

        Het authenticatiedomein dat door de server wordt aangeboden, indien aanwezig.

      • verzoek-ID

        snaar

        Het ID van het verzoek. Verzoek-ID's zijn uniek binnen een browsersessie. Daardoor kunnen ze worden gebruikt om verschillende gebeurtenissen van hetzelfde verzoek aan elkaar te koppelen.

      • antwoordHeaders

        HttpHeaders optioneel

        De HTTP-antwoordheaders die samen met dit antwoord zijn ontvangen.

      • schema

        snaar

        Het authenticatieschema, bijvoorbeeld Basic of Digest.

      • statusCode

        nummer

        Chrome 43+

        Standaard HTTP-statuscode die door de server wordt geretourneerd.

      • statusLine

        snaar

        De HTTP-statusregel van het antwoord of de tekenreeks 'HTTP/0.9 200 OK' voor HTTP/0.9-antwoorden (d.w.z. antwoorden zonder statusregel) of een lege tekenreeks als er geen headers zijn.

      • tabId

        nummer

        De ID van het tabblad waarop het verzoek plaatsvindt. Stel deze in op -1 als het verzoek niet aan een tabblad is gekoppeld.

      • tijdstempel

        nummer

        Het tijdstip waarop dit signaal wordt geactiveerd, in milliseconden sinds het begin van het tijdvak.

      • Hoe de aangevraagde bron zal worden gebruikt.

      • URL

        snaar

    • asyncCallback

      functie optioneel

      Chrome 58+

      De parameter asyncCallback ziet er als volgt uit:

      (response: BlockingResponse) => void

    • retourneert

      BlockingResponse | undefined

      Als "blocking" is gespecificeerd in de parameter "extraInfoSpec", moet de gebeurtenislistener een object van dit type retourneren.

  • filter
  • extraInfoSpec

    OnAuthRequiredOptions [] optioneel

onBeforeRedirect

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

Wordt geactiveerd wanneer een door de server geïnitieerde omleiding op het punt staat plaats te vinden.

Parameters

  • terugbelverzoek

    functie

    De callback parameter ziet er als volgt uit:

    (details: object) => void

    • details

      voorwerp

      • documentId

        string optioneel

        Chrome 106+

        De UUID van het document dat het verzoek indient.

      • documentLevenscyclus
        Chrome 106+

        De levenscyclus waarin het document zich bevindt.

      • frameId

        nummer

        De waarde 0 geeft aan dat het verzoek plaatsvindt in het hoofdvenster; een positieve waarde geeft de ID aan van een subvenster waarin het verzoek plaatsvindt. Als het document van een (sub)venster wordt geladen ( type is main_frame of sub_frame ), geeft frameId de ID van dit venster aan, niet de ID van het buitenste venster. Venster-ID's zijn uniek binnen een tabblad.

      • Chrome 106+

        Het type frame waarin het verzoek plaatsvond.

      • vanuit cache

        booleaans

        Geeft aan of dit antwoord uit de schijfcache is opgehaald.

      • initiatiefnemer

        string optioneel

        Chrome 63+

        De oorsprong waar het verzoek vandaan kwam. Deze verandert niet door omleidingen. Als dit een ondoorzichtige oorsprong is, wordt de tekenreeks 'null' gebruikt.

      • ip

        string optioneel

        Het IP-adres van de server waarnaar het verzoek daadwerkelijk is verzonden. Houd er rekening mee dat dit een letterlijk IPv6-adres kan zijn.

      • methode

        snaar

        Standaard HTTP-methode.

      • parentDocumentId

        string optioneel

        Chrome 106+

        De UUID van het bovenliggende document waartoe dit frame behoort. Deze wordt niet ingesteld als er geen bovenliggend document is.

      • parentFrameId

        nummer

        ID van het frame dat het frame omsluit dat het verzoek heeft verzonden. Stel in op -1 als er geen ouderframe bestaat.

      • redirectUrl

        snaar

        De nieuwe URL.

      • verzoek-ID

        snaar

        Het ID van het verzoek. Verzoek-ID's zijn uniek binnen een browsersessie. Daardoor kunnen ze worden gebruikt om verschillende gebeurtenissen van hetzelfde verzoek aan elkaar te koppelen.

      • antwoordHeaders

        HttpHeaders optioneel

        De HTTP-antwoordheaders die samen met deze omleiding zijn ontvangen.

      • statusCode

        nummer

        Standaard HTTP-statuscode die door de server wordt geretourneerd.

      • statusLine

        snaar

        De HTTP-statusregel van het antwoord of de tekenreeks 'HTTP/0.9 200 OK' voor HTTP/0.9-antwoorden (d.w.z. antwoorden zonder statusregel) of een lege tekenreeks als er geen headers zijn.

      • tabId

        nummer

        De ID van het tabblad waarop het verzoek plaatsvindt. Stel deze in op -1 als het verzoek niet aan een tabblad is gekoppeld.

      • tijdstempel

        nummer

        Het tijdstip waarop dit signaal wordt geactiveerd, in milliseconden sinds het begin van het tijdvak.

      • Hoe de aangevraagde bron zal worden gebruikt.

      • URL

        snaar

  • extraInfoSpec

onBeforeRequest

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

Wordt geactiveerd wanneer een verzoek op het punt staat plaats te vinden.

Parameters

  • terugbelverzoek

    functie

    De callback parameter ziet er als volgt uit:

    (details: object) => BlockingResponse | undefined

    • details

      voorwerp

      • documentId

        string optioneel

        Chrome 106+

        De UUID van het document dat het verzoek indient.

      • documentLevenscyclus
        Chrome 106+

        De levenscyclus waarin het document zich bevindt.

      • frameId

        nummer

        De waarde 0 geeft aan dat het verzoek plaatsvindt in het hoofdvenster; een positieve waarde geeft de ID aan van een subvenster waarin het verzoek plaatsvindt. Als het document van een (sub)venster wordt geladen ( type is main_frame of sub_frame ), geeft frameId de ID van dit venster aan, niet de ID van het buitenste venster. Venster-ID's zijn uniek binnen een tabblad.

      • frameType
        Chrome 106+

        Het type frame waarin het verzoek plaatsvond.

      • initiatiefnemer

        string optioneel

        Chrome 63+

        De oorsprong waar het verzoek vandaan kwam. Deze verandert niet door omleidingen. Als dit een ondoorzichtige oorsprong is, wordt de tekenreeks 'null' gebruikt.

      • methode

        snaar

        Standaard HTTP-methode.

      • parentDocumentId

        string optioneel

        Chrome 106+

        De UUID van het bovenliggende document waartoe dit frame behoort. Deze wordt niet ingesteld als er geen bovenliggend document is.

      • parentFrameId

        nummer

        ID van het frame dat het frame omsluit dat het verzoek heeft verzonden. Stel in op -1 als er geen ouderframe bestaat.

      • verzoekBody

        object optioneel

        Bevat de gegevens van de HTTP-requestbody. Wordt alleen verstrekt als extraInfoSpec 'requestBody' bevat.

        • fout

          string optioneel

          Fouten bij het ophalen van gegevens uit de request body.

        • formuliergegevens

          object optioneel

          Als de verzoekmethode POST is en de body een reeks sleutel-waardeparen bevat die gecodeerd zijn in UTF8, ofwel als multipart/form-data of als application/x-www-form-urlencoded, dan is dit woordenboek aanwezig en bevat het voor elke sleutel een lijst met alle waarden die bij die sleutel horen. Als de gegevens van een ander mediatype zijn of als ze onjuist zijn opgemaakt, is het woordenboek niet aanwezig. Een voorbeeld van een waarde in dit woordenboek is {'key': ['value1', 'value2']}.

        • rauw

          UploadData [] optioneel

          Als de verzoekmethode PUT of POST is en de body nog niet is verwerkt in formData, dan worden de niet-verwerkte elementen van de verzoekbody in deze array opgenomen.

      • verzoek-ID

        snaar

        Het ID van het verzoek. Verzoek-ID's zijn uniek binnen een browsersessie. Daardoor kunnen ze worden gebruikt om verschillende gebeurtenissen van hetzelfde verzoek aan elkaar te koppelen.

      • tabId

        nummer

        De ID van het tabblad waarop het verzoek plaatsvindt. Stel deze in op -1 als het verzoek niet aan een tabblad is gekoppeld.

      • tijdstempel

        nummer

        Het tijdstip waarop dit signaal wordt geactiveerd, in milliseconden sinds het begin van het tijdvak.

      • Hoe de aangevraagde bron zal worden gebruikt.

      • URL

        snaar

    • retourneert

      BlockingResponse | undefined

      Als "blocking" is gespecificeerd in de parameter "extraInfoSpec", moet de gebeurtenislistener een object van dit type retourneren.

  • filter
  • extraInfoSpec

onBeforeSendHeaders

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

Fired before sending an HTTP request, once the request headers are available. This may occur after a TCP connection is made to the server, but before any HTTP data is sent.

Parameters

  • terugbelverzoek

    functie

    The callback parameter looks like:

    (details: object) => BlockingResponse | undefined

    • details

      voorwerp

      • documentId

        string optional

        Chrome 106+

        The UUID of the document making the request.

      • Chrome 106+

        The lifecycle the document is in.

      • frameId

        nummer

        The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded ( type is main_frame or sub_frame ), frameId indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.

      • Chrome 106+

        The type of frame the request occurred in.

      • initiator

        string optional

        Chrome 63+

        The origin where the request was initiated. This does not change through redirects. If this is an opaque origin, the string 'null' will be used.

      • methode

        snaar

        Standard HTTP method.

      • parentDocumentId

        string optional

        Chrome 106+

        The UUID of the parent document owning this frame. This is not set if there is no parent.

      • parentFrameId

        nummer

        ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.

      • requestHeaders

        HttpHeaders optional

        The HTTP request headers that are going to be sent out with this request.

      • requestId

        snaar

        The ID of the request. Request IDs are unique within a browser session. As a result, they could be used to relate different events of the same request.

      • tabId

        nummer

        The ID of the tab in which the request takes place. Set to -1 if the request isn't related to a tab.

      • timeStamp

        nummer

        The time when this signal is triggered, in milliseconds since the epoch.

      • How the requested resource will be used.

      • URL

        snaar

    • retourneert

      BlockingResponse | undefined

      If "blocking" is specified in the "extraInfoSpec" parameter, the event listener should return an object of this type.

  • filter
  • extraInfoSpec

onCompleted

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

Fired when a request is completed.

Parameters

  • terugbelverzoek

    functie

    The callback parameter looks like:

    (details: object) => void

    • details

      voorwerp

      • documentId

        string optional

        Chrome 106+

        The UUID of the document making the request.

      • Chrome 106+

        The lifecycle the document is in.

      • frameId

        nummer

        The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded ( type is main_frame or sub_frame ), frameId indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.

      • Chrome 106+

        The type of frame the request occurred in.

      • fromCache

        booleaans

        Indicates if this response was fetched from disk cache.

      • initiator

        string optional

        Chrome 63+

        The origin where the request was initiated. This does not change through redirects. If this is an opaque origin, the string 'null' will be used.

      • ip

        string optional

        The server IP address that the request was actually sent to. Note that it may be a literal IPv6 address.

      • methode

        snaar

        Standard HTTP method.

      • parentDocumentId

        string optional

        Chrome 106+

        The UUID of the parent document owning this frame. This is not set if there is no parent.

      • parentFrameId

        nummer

        ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.

      • requestId

        snaar

        The ID of the request. Request IDs are unique within a browser session. As a result, they could be used to relate different events of the same request.

      • responseHeaders

        HttpHeaders optional

        The HTTP response headers that were received along with this response.

      • statusCode

        nummer

        Standard HTTP status code returned by the server.

      • statusLine

        snaar

        HTTP status line of the response or the 'HTTP/0.9 200 OK' string for HTTP/0.9 responses (ie, responses that lack a status line) or an empty string if there are no headers.

      • tabId

        nummer

        The ID of the tab in which the request takes place. Set to -1 if the request isn't related to a tab.

      • timeStamp

        nummer

        The time when this signal is triggered, in milliseconds since the epoch.

      • How the requested resource will be used.

      • URL

        snaar

  • filter
  • extraInfoSpec

    OnCompletedOptions [] optional

onErrorOccurred

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

Fired when an error occurs.

Parameters

  • terugbelverzoek

    functie

    The callback parameter looks like:

    (details: object) => void

    • details

      voorwerp

      • documentId

        string optional

        Chrome 106+

        The UUID of the document making the request. This value is not present if the request is a navigation of a frame.

      • Chrome 106+

        The lifecycle the document is in.

      • fout

        snaar

        The error description. This string is not guaranteed to remain backwards compatible between releases. You must not parse and act based upon its content.

      • frameId

        nummer

        The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded ( type is main_frame or sub_frame ), frameId indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.

      • Chrome 106+

        The type of frame the request occurred in.

      • fromCache

        booleaans

        Indicates if this response was fetched from disk cache.

      • initiator

        string optional

        Chrome 63+

        The origin where the request was initiated. This does not change through redirects. If this is an opaque origin, the string 'null' will be used.

      • ip

        string optional

        The server IP address that the request was actually sent to. Note that it may be a literal IPv6 address.

      • methode

        snaar

        Standard HTTP method.

      • parentDocumentId

        string optional

        Chrome 106+

        The UUID of the parent document owning this frame. This is not set if there is no parent.

      • parentFrameId

        nummer

        ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.

      • requestId

        snaar

        The ID of the request. Request IDs are unique within a browser session. As a result, they could be used to relate different events of the same request.

      • tabId

        nummer

        The ID of the tab in which the request takes place. Set to -1 if the request isn't related to a tab.

      • timeStamp

        nummer

        The time when this signal is triggered, in milliseconds since the epoch.

      • How the requested resource will be used.

      • URL

        snaar

  • filter
  • extraInfoSpec

onHeadersReceived

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

Fired when HTTP response headers of a request have been received.

Parameters

  • terugbelverzoek

    functie

    The callback parameter looks like:

    (details: object) => BlockingResponse | undefined

    • details

      voorwerp

      • documentId

        string optional

        Chrome 106+

        The UUID of the document making the request.

      • Chrome 106+

        The lifecycle the document is in.

      • frameId

        nummer

        The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded ( type is main_frame or sub_frame ), frameId indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.

      • Chrome 106+

        The type of frame the request occurred in.

      • initiator

        string optional

        Chrome 63+

        The origin where the request was initiated. This does not change through redirects. If this is an opaque origin, the string 'null' will be used.

      • methode

        snaar

        Standard HTTP method.

      • parentDocumentId

        string optional

        Chrome 106+

        The UUID of the parent document owning this frame. This is not set if there is no parent.

      • parentFrameId

        nummer

        ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.

      • requestId

        snaar

        The ID of the request. Request IDs are unique within a browser session. As a result, they could be used to relate different events of the same request.

      • responseHeaders

        HttpHeaders optional

        The HTTP response headers that have been received with this response.

      • securityInfo

        SecurityInfo optional

        In behandeling

        Information about the TLS/QUIC connection used for the underlying connection. Only provided if securityInfo is specified in the extraInfoSpec parameter.

      • statusCode

        nummer

        Chrome 43+

        Standard HTTP status code returned by the server.

      • statusLine

        snaar

        HTTP status line of the response or the 'HTTP/0.9 200 OK' string for HTTP/0.9 responses (ie, responses that lack a status line).

      • tabId

        nummer

        The ID of the tab in which the request takes place. Set to -1 if the request isn't related to a tab.

      • timeStamp

        nummer

        The time when this signal is triggered, in milliseconds since the epoch.

      • How the requested resource will be used.

      • URL

        snaar

    • retourneert

      BlockingResponse | undefined

      If "blocking" is specified in the "extraInfoSpec" parameter, the event listener should return an object of this type.

  • filter
  • extraInfoSpec

onResponseStarted

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

Fired when the first byte of the response body is received. For HTTP requests, this means that the status line and response headers are available.

Parameters

  • terugbelverzoek

    functie

    The callback parameter looks like:

    (details: object) => void

    • details

      voorwerp

      • documentId

        string optional

        Chrome 106+

        The UUID of the document making the request.

      • Chrome 106+

        The lifecycle the document is in.

      • frameId

        nummer

        The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded ( type is main_frame or sub_frame ), frameId indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.

      • Chrome 106+

        The type of frame the request occurred in.

      • fromCache

        booleaans

        Indicates if this response was fetched from disk cache.

      • initiator

        string optional

        Chrome 63+

        The origin where the request was initiated. This does not change through redirects. If this is an opaque origin, the string 'null' will be used.

      • ip

        string optional

        The server IP address that the request was actually sent to. Note that it may be a literal IPv6 address.

      • methode

        snaar

        Standard HTTP method.

      • parentDocumentId

        string optional

        Chrome 106+

        The UUID of the parent document owning this frame. This is not set if there is no parent.

      • parentFrameId

        nummer

        ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.

      • requestId

        snaar

        The ID of the request. Request IDs are unique within a browser session. As a result, they could be used to relate different events of the same request.

      • responseHeaders

        HttpHeaders optional

        The HTTP response headers that were received along with this response.

      • statusCode

        nummer

        Standard HTTP status code returned by the server.

      • statusLine

        snaar

        HTTP status line of the response or the 'HTTP/0.9 200 OK' string for HTTP/0.9 responses (ie, responses that lack a status line) or an empty string if there are no headers.

      • tabId

        nummer

        The ID of the tab in which the request takes place. Set to -1 if the request isn't related to a tab.

      • timeStamp

        nummer

        The time when this signal is triggered, in milliseconds since the epoch.

      • How the requested resource will be used.

      • URL

        snaar

  • filter
  • extraInfoSpec

onSendHeaders

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

Fired just before a request is going to be sent to the server (modifications of previous onBeforeSendHeaders callbacks are visible by the time onSendHeaders is fired).

Parameters

  • terugbelverzoek

    functie

    The callback parameter looks like:

    (details: object) => void

    • details

      voorwerp

      • documentId

        string optional

        Chrome 106+

        The UUID of the document making the request.

      • Chrome 106+

        The lifecycle the document is in.

      • frameId

        nummer

        The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded ( type is main_frame or sub_frame ), frameId indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.

      • Chrome 106+

        The type of frame the request occurred in.

      • initiator

        string optional

        Chrome 63+

        The origin where the request was initiated. This does not change through redirects. If this is an opaque origin, the string 'null' will be used.

      • methode

        snaar

        Standard HTTP method.

      • parentDocumentId

        string optional

        Chrome 106+

        The UUID of the parent document owning this frame. This is not set if there is no parent.

      • parentFrameId

        nummer

        ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.

      • requestHeaders

        HttpHeaders optional

        The HTTP request headers that have been sent out with this request.

      • requestId

        snaar

        The ID of the request. Request IDs are unique within a browser session. As a result, they could be used to relate different events of the same request.

      • tabId

        nummer

        The ID of the tab in which the request takes place. Set to -1 if the request isn't related to a tab.

      • timeStamp

        nummer

        The time when this signal is triggered, in milliseconds since the epoch.

      • How the requested resource will be used.

      • URL

        snaar

  • filter
  • extraInfoSpec