Description
Utilisez l'API chrome.webRequest
pour observer et analyser le trafic, et pour intercepter, bloquer ou modifier les requêtes en cours de transfert.
Autorisations
webRequest
Pour utiliser l'API de requête Web, vous devez déclarer l'autorisation "webRequest"
dans le fichier manifeste de l'extension, ainsi que les autorisations d'hôte nécessaires. Pour intercepter une requête de sous-ressource, l'extension doit avoir accès à la fois à l'URL demandée et à son demandeur. Exemple :
{
"name": "My extension",
...
"permissions": [
"webRequest"
],
"host_permissions": [
"*://*.google.com/*"
],
...
}
webRequestBlocking
Obligatoire pour enregistrer les gestionnaires d'événements bloquants. Depuis Manifest V3, cette fonctionnalité n'est disponible que pour les extensions installées dans le cadre des règles.
webRequestAuthProvider
Requis pour utiliser la méthode onAuthRequired
. Consultez Gérer l'authentification.
Concepts et utilisation
Cycle de vie des requêtes
L'API de requête Web définit un ensemble d'événements qui suivent le cycle de vie d'une requête Web. Vous pouvez utiliser ces événements pour observer et analyser le trafic. Certains événements synchrones vous permettent d'intercepter, de bloquer ou de modifier une requête.
Le cycle de vie des événements pour les requêtes réussies est illustré ici, suivi des définitions des événements:
onBeforeRequest
(éventuellement synchrone)- Se déclenche lorsqu'une requête est sur le point d'être exécutée. Cet événement est envoyé avant toute connexion TCP et peut être utilisé pour annuler ou rediriger des requêtes.
onBeforeSendHeaders
(éventuellement synchrone)- Se déclenche lorsqu'une requête est sur le point de se produire et que les en-têtes initiaux ont été préparés. L'événement est destiné à permettre aux extensions d'ajouter, de modifier et de supprimer des en-têtes de requête (*). L'événement
onBeforeSendHeaders
est transmis à tous les abonnés. Différents abonnés peuvent donc tenter de modifier la requête. Consultez la section Informations sur l'implémentation pour savoir comment procéder. Cet événement peut être utilisé pour annuler la demande. onSendHeaders
- Se déclenche une fois que toutes les extensions ont eu la possibilité de modifier les en-têtes de requête et présentent la version finale (*). L'événement est déclenché avant l'envoi des en-têtes au réseau. Cet événement est informatif et géré de manière asynchrone. Il ne permet pas de modifier ni d'annuler la demande.
onHeadersReceived
(éventuellement synchrone)- Se déclenche chaque fois qu'un en-tête de réponse HTTP(S) est reçu. En raison des redirections et des requêtes d'authentification, cela peut se produire plusieurs fois par requête. Cet événement est destiné à permettre aux extensions d'ajouter, de modifier et de supprimer des en-têtes de réponse, tels que des en-têtes de type de contenu entrants. Les instructions de mise en cache sont traitées avant le déclenchement de cet événement. La modification des en-têtes tels que Cache-Control n'a donc aucune influence sur le cache du navigateur. Elle vous permet également d'annuler ou de rediriger la demande.
onAuthRequired
(éventuellement synchrone)- Se déclenche lorsqu'une requête nécessite une authentification de l'utilisateur. Cet événement peut être géré de manière synchrone pour fournir des identifiants d'authentification. Notez que les extensions peuvent fournir des identifiants non valides. Veillez à ne pas entrer dans une boucle infinie en fournissant plusieurs fois des identifiants non valides. Cette action peut également être utilisée pour annuler la requête.
onBeforeRedirect
- Se déclenche lorsqu'une redirection est sur le point d'être exécutée. Une redirection peut être déclenchée par un code de réponse HTTP ou par une extension. Cet événement est informatif et géré de manière asynchrone. Elle ne vous permet pas de modifier ni d'annuler la requête.
onResponseStarted
- Se déclenche lorsque le premier octet du corps de la réponse est reçu. Pour les requêtes HTTP, cela signifie que la ligne d'état et les en-têtes de réponse sont disponibles. Cet événement est informatif et géré de manière asynchrone. mais pas de modifier ni d'annuler la requête.
onCompleted
- Se déclenche lorsqu'une requête a bien été traitée
onErrorOccurred
- Se déclenche lorsqu'une requête n'a pas pu être traitée correctement.
L'API de requête Web garantit que pour chaque requête, onCompleted
ou onErrorOccurred
est déclenché en tant qu'événement final, à une exception près: si une requête est redirigée vers une URL data://
, onBeforeRedirect
est le dernier événement signalé.
* Notez que l'API de requête Web présente une abstraction de la pile réseau à l'extension. En interne, une requête d'URL peut être divisée en plusieurs requêtes HTTP (par exemple, pour extraire des plages d'octets individuelles à partir d'un fichier volumineux) ou être gérée par la pile réseau sans communiquer avec le réseau. Pour cette raison, l'API ne fournit pas les en-têtes HTTP finaux envoyés au réseau. Par exemple, tous les en-têtes liés à la mise en cache sont invisibles pour l'extension.
Les en-têtes suivants ne sont actuellement pas fournis à l'événement onBeforeSendHeaders
. Il n'est pas garanti que cette liste soit complète ni stable.
- Autorisation
- Cache-Control
- Connexion
- Content-Length
- Hôte
- If-Modified-Since
- If-None-Match
- Si-plage
- Données partielles
- Pragma
- Autorisation de proxy
- Connexion proxy
- Encodage de transfert
À partir de Chrome 79, les modifications d'en-tête de requête affectent les vérifications CORS (Cross-Origin Resource Sharing). Si les en-têtes modifiés pour les requêtes multi-origines ne répondent pas aux critères, une requête CORS préliminaire est envoyée pour demander au serveur si de tels en-têtes peuvent être acceptés. Si vous devez vraiment modifier les en-têtes d'une manière qui ne respecte pas le protocole CORS, vous devez spécifier 'extraHeaders'
dans opt_extraInfoSpec
. En revanche, les modifications d'en-tête de réponse ne fonctionnent pas pour tromper les vérifications CORS. Si vous devez tromper le protocole CORS, vous devez également spécifier 'extraHeaders'
pour les modifications de réponse.
À partir de Chrome 79, l'API webRequest n'intercepte pas par défaut les requêtes et les réponses CORS préliminaires. Une requête préliminaire CORS pour une URL de requête est visible par une extension si un écouteur avec 'extraHeaders'
est spécifié dans opt_extraInfoSpec
pour l'URL de la requête.
onBeforeRequest
peut également prendre 'extraHeaders'
à partir de Chrome 79.
À partir de Chrome 79, l'en-tête de requête suivant n'est pas fourni. Il ne peut pas être modifié ni supprimé sans spécifier 'extraHeaders'
dans opt_extraInfoSpec
:
- Provenance
À partir de Chrome 72, si vous devez modifier des réponses avant que la fonctionnalité CORB (Cross Origin Read Blocking) puisse les bloquer, vous devez spécifier 'extraHeaders'
dans opt_extraInfoSpec
.
À partir de Chrome 72, les en-têtes de requête suivants ne sont pas fournis et ne peuvent pas être modifiés ni supprimés sans spécifier 'extraHeaders'
dans opt_extraInfoSpec
:
- Accepter-Langue
- Accept-Encoding
- Référent
- Cookie
À partir de Chrome 72, l'en-tête de réponse Set-Cookie
n'est pas fourni et ne peut pas être modifié ni supprimé sans spécifier 'extraHeaders'
dans opt_extraInfoSpec
.
À partir de Chrome 89, l'en-tête de réponse X-Frame-Options
ne peut plus être modifié ni supprimé de manière efficace sans spécifier 'extraHeaders'
dans opt_extraInfoSpec
.
L'API webRequest n'expose que les requêtes que l'extension est autorisée à voir, compte tenu des autorisations de son hôte. De plus, seuls les schémas suivants sont accessibles: http://
, https://
, ftp://
, file://
, ws://
(depuis Chrome 58), wss://
(depuis Chrome 58), urn:
(depuis Chrome 91) ou chrome-extension://
. En outre, même certaines requêtes avec des URL utilisant l'un des schémas ci-dessus sont masquées. Ceux-ci incluent chrome-extension://other_extension_id
, où other_extension_id
n'est pas l'ID de l'extension permettant de gérer la requête, https://www.google.com/chrome
et d'autres requêtes sensibles essentielles aux fonctionnalités du navigateur. De plus, les requêtes XMLHttpRequest synchrones de votre extension sont masquées pour les gestionnaires d'événements bloquants afin d'éviter les interblocages. Notez que, pour certains des schémas compatibles, l'ensemble des événements disponibles peut être limité en raison de la nature du protocole correspondant. Par exemple, pour le schéma de fichier, seuls onBeforeRequest
, onResponseStarted
, onCompleted
et onErrorOccurred
peuvent être distribués.
À partir de Chrome 58, l'API webRequest permet d'intercepter la requête de handshake WebSocket. Étant donné que le handshake est effectué au moyen d'une requête de mise à niveau HTTP, son flux s'intègre dans le modèle webRequest orienté HTTP. Notez que l'API n'intercepte pas les éléments suivants:
- Messages individuels envoyés via une connexion WebSocket établie.
- WebSocket fermant la connexion.
Les redirections ne sont pas compatibles avec les requêtes WebSocket.
À partir de Chrome 72, une extension ne pourra intercepter une requête que si elle dispose d'autorisations d'hôte pour l'URL demandée et le demandeur.
À partir de Chrome 96, l'API webRequest permet d'intercepter la requête de handshake WebTransport via HTTP/3. Étant donné que le handshake est effectué au moyen d'une requête HTTP CONNECT, son flux s'intègre dans le modèle webRequest orienté HTTP. Remarques :
- Une fois la session établie, les extensions ne peuvent pas observer ni intervenir dans la session via l'API webRequest.
- La modification des en-têtes de requête HTTP dans
onBeforeSendHeaders
est ignorée. - Les redirections et les authentifications ne sont pas compatibles avec WebTransport sur HTTP/3.
ID de requête
Chaque requête est identifiée par un ID de requête. Cet ID est unique dans une session de navigateur et dans le contexte d'une extension. Elle reste constante pendant le cycle de vie d'une requête et peut être utilisée pour mettre en correspondance des événements d'une même requête. Notez que plusieurs requêtes HTTP sont mappées à une seule requête Web en cas de redirection HTTP ou d'authentification HTTP.
Enregistrer des écouteurs d'événements
Pour enregistrer un écouteur d'événements pour une requête Web, utilisez une variante de la fonction addListener()
habituelle. En plus de spécifier une fonction de rappel, vous devez spécifier un argument de filtre, ainsi qu'un argument "info supplémentaire" facultatif.
Les trois arguments du addListener()
de l'API de requête Web ont les définitions suivantes:
var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];
Voici un exemple d'écoute de l'événement onBeforeRequest
:
chrome.webRequest.onBeforeRequest.addListener(
callback, filter, opt_extraInfoSpec);
Chaque appel addListener()
utilise une fonction de rappel obligatoire en tant que premier paramètre. Cette fonction de rappel reçoit un dictionnaire contenant des informations sur la requête d'URL actuelle. Les informations de ce dictionnaire dépendent du type d'événement spécifique ainsi que du contenu de opt_extraInfoSpec
.
Si le tableau opt_extraInfoSpec
facultatif contient la chaîne 'blocking'
(autorisée uniquement pour des événements spécifiques), la fonction de rappel est gérée de manière synchrone. Cela signifie que la requête est bloquée jusqu'à ce que la fonction de rappel soit renvoyée. Dans ce cas, le rappel peut renvoyer un objet webRequest.BlockingResponse
qui détermine le cycle de vie supplémentaire de la requête. Selon le contexte, cette réponse permet d'annuler ou de rediriger une requête (onBeforeRequest
), d'annuler une requête ou de modifier les en-têtes (onBeforeSendHeaders
, onHeadersReceived
), d'annuler une requête ou de fournir des identifiants d'authentification (onAuthRequired
).
Si le tableau opt_extraInfoSpec
facultatif contient à la place la chaîne 'asyncBlocking'
(autorisée uniquement pour onAuthRequired
), l'extension peut générer le webRequest.BlockingResponse
de manière asynchrone.
Le filter
webRequest.RequestFilter
permet de limiter les requêtes pour lesquelles des événements sont déclenchés dans différentes dimensions:
- URL
- Des formats d'URL tels que
*://www.google.com/foo*bar
. - Types
- Types de requêtes tels que
main_frame
(un document chargé pour un cadre de premier niveau),sub_frame
(un document chargé pour un cadre intégré) etimage
(une image sur un site Web). ConsultezwebRequest.RequestFilter
. - Onglet ID
- Identifiant d'un onglet.
- ID de la fenêtre
- Identifiant d'une fenêtre.
Selon le type d'événement, vous pouvez spécifier des chaînes dans opt_extraInfoSpec
pour demander des informations supplémentaires sur la requête. Cela permet de fournir des informations détaillées sur les données de la requête uniquement si cela est explicitement demandé.
Gérer l'authentification
Pour gérer les requêtes d'authentification HTTP, ajoutez l'autorisation "webRequestAuthProvider"
à votre fichier manifeste:
{
"permissions": [
"webRequest",
"webRequestAuthProvider"
]
}
Notez que cette autorisation n'est pas requise pour une extension de stratégie installée avec l'autorisation "webRequestBlocking"
.
Pour fournir des identifiants de manière synchrone:
chrome.webRequest.onAuthRequired.addListener((details) => {
return {
authCredentials: {
username: 'guest',
password: 'guest'
}
};
},
{ urls: ['https://httpbin.org/basic-auth/guest/guest'] },
['blocking']
);
Pour fournir des identifiants de manière asynchrone, procédez comme suit:
chrome.webRequest.onAuthRequired.addListener((details, callback) => {
callback({
authCredentials: {
username: 'guest',
password: 'guest'
}
});
},
{ urls: ['https://httpbin.org/basic-auth/guest/guest'] },
['asyncBlocking']
);
Détails de mise en œuvre
Plusieurs détails de mise en œuvre peuvent être importants à comprendre lors du développement d'une extension qui utilise l'API de requête Web:
web_accessible_resources
Lorsqu'une extension utilise les API webRequest pour rediriger une requête de ressource publique vers une ressource qui n'est pas accessible sur le Web, elle est bloquée et génère une erreur. Ce qui précède est vrai même si la ressource qui n'est pas accessible via le Web appartient à l'extension de redirection. Pour déclarer des ressources à utiliser avec les API déclarativeWebRequest, le tableau "web_accessible_resources"
doit être déclaré et inséré dans le fichier manifeste, comme indiqué ici.
Résolution de conflit
Dans la mise en œuvre actuelle de l'API Web Request, une requête est considérée comme annulée si au moins une extension demande de l'annuler. Si une extension annule une demande, toutes les extensions en sont informées par un événement onErrorOccurred
. Une seule extension peut rediriger une requête ou modifier un en-tête à la fois. Si plusieurs extensions tentent de modifier la requête, la dernière extension installée l'emporte, et toutes les autres sont ignorées. Une extension n'est pas avertie si sa instruction de modification ou de redirection a été ignorée.
Mise en cache
Chrome utilise deux caches : un cache sur disque et un cache en mémoire très rapide. La durée de vie d'un cache en mémoire est associée à celle d'un processus de rendu, qui correspond approximativement à un onglet.
Les requêtes traitées à partir du cache en mémoire sont invisibles pour l'API de requêtes Web. Si un gestionnaire de requêtes modifie son comportement (par exemple, en fonction des requêtes bloquées), une simple actualisation de page peut ne pas respecter ce changement de comportement. Pour vous assurer que le changement de comportement est effectif, appelez handlerBehaviorChanged()
pour vider le cache en mémoire. Mais ne le faites pas souvent, car le vidage du cache est une opération très coûteuse. Vous n'avez pas besoin d'appeler handlerBehaviorChanged()
après avoir enregistré un écouteur d'événements ou annulé son enregistrement.
Codes temporels
La propriété timestamp
des événements de requête Web n'est garantie que sa cohérence interne.
En comparant un événement à un autre, vous obtiendrez le décalage correct entre eux, mais le fait de les comparer à l'heure actuelle dans l'extension (par exemple, via (new Date()).getTime()
) peut donner des résultats inattendus.
Gestion des exceptions
Si vous essayez d'enregistrer un événement avec des arguments non valides, une erreur JavaScript sera générée et le gestionnaire d'événements ne sera pas enregistré. Si une erreur est générée lors du traitement d'un événement ou si un gestionnaire d'événements renvoie une réponse bloquante non valide, un message d'erreur est consigné dans la console de votre extension et le gestionnaire est ignoré pour cette requête.
Exemples
L'exemple suivant montre comment bloquer toutes les requêtes envoyées à www.evil.com
:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {cancel: details.url.indexOf("://www.evil.com/") != -1};
},
{urls: ["<all_urls>"]},
["blocking"]
);
Comme cette fonction utilise un gestionnaire d'événements bloquants, elle nécessite l'autorisation "webRequest"
ainsi que l'autorisation "webRequestBlocking"
dans le fichier manifeste.
L'exemple suivant atteint le même objectif de manière plus efficace, car les requêtes qui ne ciblent pas www.evil.com
n'ont pas besoin d'être transmises à l'extension:
chrome.webRequest.onBeforeRequest.addListener(
function(details) { return {cancel: true}; },
{urls: ["*://www.evil.com/*"]},
["blocking"]
);
L'exemple suivant montre comment supprimer l'en-tête User-Agent de toutes les requêtes:
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"]
);
Pour essayer l'API chrome.webRequest
, installez l'exemple webRequest à partir du dépôt chrome-extension-samples.
Types
BlockingResponse
Renvoie la valeur pour les gestionnaires d'événements auxquels l'extraInfoSpec "blocage" est appliqué. Permet au gestionnaire d'événements de modifier les requêtes réseau.
Propriétés
-
authCredentials
objet facultatif
Utilisé uniquement en réponse à l'événement onAuthRequired. Si cette valeur est définie, la requête est effectuée à l'aide des identifiants fournis.
-
mot de passe
chaîne
-
nom d'utilisateur
chaîne
-
-
annuler
Booléen facultatif
Si la valeur est "true", la requête est annulée. Cela empêche l'envoi de la requête. Peut être utilisé en réponse aux événements onBeforeRequest, onBeforeSendHeaders, onHeadersReceived et onAuthRequired.
-
redirectUrl
string facultatif
Utilisé uniquement en réponse aux événements onBeforeRequest et onHeadersReceived. Si cette valeur est définie, la requête d'origine ne peut pas être envoyée ni terminée et est redirigée vers l'URL donnée. Les redirections vers des schémas autres que HTTP, tels que
data:
, sont autorisées. Les redirections déclenchées par une action de redirection utilisent la méthode de demande d'origine pour la redirection, à une exception près: si la redirection est lancée à l'étape onHeadersReceived, alors la redirection sera émise à l'aide de la méthode GET. Les redirections à partir d'URL avec les schémasws://
etwss://
sont ignorées. -
requestHeaders
HttpHeaders facultatif
Utilisé uniquement en réponse à l'événement onBeforeSendHeaders. Si cette valeur est définie, la requête est effectuée avec ces en-têtes de requête à la place.
-
responseHeaders
HttpHeaders facultatif
Utilisé uniquement en réponse à l'événement onHeadersReceived. Si cette valeur est définie, le serveur est supposé avoir répondu avec ces en-têtes de réponse à la place. Ne renvoyez
responseHeaders
que si vous voulez vraiment modifier les en-têtes afin de limiter le nombre de conflits (une seule extension peut modifierresponseHeaders
pour chaque requête).
FormDataItem
Contient les données transmises dans les données du formulaire. Pour les formats encodés en URL, elle est stockée sous forme de chaîne si les données sont une chaîne utf-8 et sous forme de ArrayBuffer dans le cas contraire. Pour les données de formulaire, il s'agit de ArrayBuffer. Si "form-data" correspond à l'importation d'un fichier, il s'agit d'une chaîne avec le nom du fichier, si le nom du fichier est fourni.
Enum
ArrayBuffer
chaîne
HttpHeaders
Tableau d'en-têtes HTTP. Chaque en-tête est représenté sous la forme d'un dictionnaire contenant les clés name
, et value
ou binaryValue
.
Type
objet[]
Propriétés
-
binaryValue
number[] facultatif
Valeur de l'en-tête HTTP si elle ne peut pas être représentée par UTF-8, stockée sous forme de valeurs d'octets individuelles (0...255).
-
name
chaîne
Nom de l'en-tête HTTP.
-
valeur
string facultatif
Valeur de l'en-tête HTTP s'il peut être représenté par UTF-8.
IgnoredActionType
Enum
"redirect"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
Enum
"responseHeaders"
Spécifie que les en-têtes de réponse doivent être inclus dans l'événement.
"block"
Indique que la requête est bloquée jusqu'à ce que la fonction de rappel soit renvoyée.
"asyncBlocking"
Spécifie que la fonction de rappel est gérée de manière asynchrone.
"extraHeaders"
Indique que les en-têtes peuvent enfreindre le CORS (Cross-Origin Resource Sharing).
OnBeforeRedirectOptions
Enum
"responseHeaders"
Spécifie que les en-têtes de réponse doivent être inclus dans l'événement.
"extraHeaders"
Indique que les en-têtes peuvent enfreindre le CORS (Cross-Origin Resource Sharing).
OnBeforeRequestOptions
Enum
"block"
Indique que la requête est bloquée jusqu'à ce que la fonction de rappel soit renvoyée.
"requestBody"
Indique que le corps de la requête doit être inclus dans l'événement.
"extraHeaders"
Indique que les en-têtes peuvent enfreindre le CORS (Cross-Origin Resource Sharing).
OnBeforeSendHeadersOptions
Enum
"requestHeaders"
Indique que l'en-tête de requête doit être inclus dans l'événement.
"block"
Indique que la requête est bloquée jusqu'à ce que la fonction de rappel soit renvoyée.
"extraHeaders"
Indique que les en-têtes peuvent enfreindre le CORS (Cross-Origin Resource Sharing).
OnCompletedOptions
Enum
"responseHeaders"
Spécifie que les en-têtes de réponse doivent être inclus dans l'événement.
"extraHeaders"
Indique que les en-têtes peuvent enfreindre le CORS (Cross-Origin Resource Sharing).
OnErrorOccurredOptions
Valeur
"extraHeaders"
OnHeadersReceivedOptions
Enum
"block"
Indique que la requête est bloquée jusqu'à ce que la fonction de rappel soit renvoyée.
"responseHeaders"
Spécifie que les en-têtes de réponse doivent être inclus dans l'événement.
"extraHeaders"
Indique que les en-têtes peuvent enfreindre le CORS (Cross-Origin Resource Sharing).
OnResponseStartedOptions
Enum
"responseHeaders"
Spécifie que les en-têtes de réponse doivent être inclus dans l'événement.
"extraHeaders"
Indique que les en-têtes peuvent enfreindre le CORS (Cross-Origin Resource Sharing).
OnSendHeadersOptions
Enum
"requestHeaders"
Indique que l'en-tête de requête doit être inclus dans l'événement.
"extraHeaders"
Indique que les en-têtes peuvent enfreindre le CORS (Cross-Origin Resource Sharing).
RequestFilter
Objet décrivant les filtres à appliquer aux événements webRequest.
Propriétés
-
tabId
numéro facultatif
-
Types
ResourceType[] facultatif
Liste des types de requêtes. Les requêtes qui ne correspondent à aucun des types seront filtrées.
-
urls
chaîne[]
Une liste d'URL ou de formats d'URL. Les demandes qui ne correspondent à aucune des URL seront exclues.
-
windowId
numéro facultatif
ResourceType
Enum
"main_frame"
Spécifie la ressource en tant que frame principal.
"sub_frame"
Spécifie la ressource en tant que sous-frame.
"stylesheet"
Spécifie la ressource en tant que feuille de style.
"script"
Spécifie la ressource sous la forme d'un script.
"image"
Spécifie la ressource en tant qu'image.
"font"
Spécifie la ressource en tant que police d'écriture.
"object"
Spécifie la ressource en tant qu'objet.
"xmlhttprequest"
Spécifie la ressource en tant que XMLHttpRequest.
"ping"
Spécifie la ressource sous forme de ping.
"csp_report"
Spécifie la ressource en tant que rapport CSP (Content Security Policy).
"media"
Spécifie la ressource en tant qu'objet multimédia.
"websocket"
Spécifie la ressource en tant que WebSocket.
"webbundle"
Spécifie la ressource en tant que WebBundle.
"other"
Spécifie la ressource en tant que type non inclus dans les types répertoriés.
UploadData
Contient des données importées dans une requête d'URL.
Propriétés
-
bytes
Toute valeur facultatif
ArrayBuffer avec une copie des données.
-
fichier
string facultatif
Chaîne contenant le chemin d'accès et le nom du fichier.
Propriétés
MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES
Nombre maximal de fois où handlerBehaviorChanged
peut être appelé par intervalle soutenu de 10 minutes. handlerBehaviorChanged
est un appel de fonction coûteux qui ne doit pas être appelé souvent.
Valeur
20
Méthodes
handlerBehaviorChanged()
chrome.webRequest.handlerBehaviorChanged(
callback?: function,
)
Doit être appelé lorsque le comportement des gestionnaires webRequest a changé pour éviter un traitement incorrect dû à la mise en cache. Cet appel de fonction est coûteux. N'appelez pas souvent cette personne.
Paramètres
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :() => void
Renvoie
-
Promise<void>
Chrome 116 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
Événements
onActionIgnored
chrome.webRequest.onActionIgnored.addListener(
callback: function,
)
Déclenché lorsque la modification proposée par une extension à une requête réseau est ignorée. Cela se produit en cas de conflits avec d'autres extensions.
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(details: object) => void
-
détails
objet
-
action
Action proposée qui a été ignorée.
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur. Par conséquent, ils peuvent servir à associer différents événements de la même requête.
-
-
onAuthRequired
chrome.webRequest.onAuthRequired.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnAuthRequiredOptions[],
)
Déclenché lors de la réception d'un échec d'authentification L'écouteur propose trois options: il peut fournir des identifiants d'authentification, annuler la requête et afficher la page d'erreur, ou ne prendre aucune mesure lors du test. Si des identifiants utilisateur incorrects sont fournis, cette méthode peut être appelée plusieurs fois pour la même requête. Notez qu'un seul des modes 'blocking'
ou 'asyncBlocking'
doit être spécifié dans le paramètre extraInfoSpec
.
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(details: object, asyncCallback?: function) => BlockingResponse | undefined
-
détails
objet
-
Challenger
objet
Serveur demandant une authentification.
-
hôte
chaîne
-
port
Nombre
-
-
documentId
chaîne
Chrome 106 et versions ultérieuresL'UUID du document à l'origine de la demande.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie dans lequel se trouve le document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans la trame principale ; une valeur positive indique l'ID d'un sous-frame dans lequel la requête est effectuée. Si le document d'un (sous-)cadre est chargé (
type
estmain_frame
ousub_frame
),frameId
indique l'ID de ce cadre, et non celui du cadre extérieur. Les ID de frame sont uniques au sein d'un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête a été effectuée.
-
initiateur
string facultatif
Chrome 63 et versions ultérieuresOrigine à laquelle la requête a été lancée. Cela n'a aucune incidence sur les redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisée.
-
isProxy
boolean
"True" pour l'authentification proxy, "false" pour l'authentification WWW.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
string facultatif
Chrome 106 et versions ultérieuresUUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame qui a envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe.
-
domaine
string facultatif
Domaine d'authentification fourni par le serveur, le cas échéant.
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur. Par conséquent, ils peuvent servir à associer différents événements de la même requête.
-
responseHeaders
HttpHeaders facultatif
En-têtes de réponse HTTP reçus avec cette réponse.
-
schéma
chaîne
Schéma d'authentification, par exemple Basic ou Digest.
-
statusCode
Nombre
Chrome 43 et versions ultérieuresCode d'état HTTP standard renvoyé par le serveur.
-
statusLine
chaîne
Ligne d'état HTTP de la réponse ou chaîne "HTTP/0.9 200 OK" pour les réponses HTTP/0.9 (c'est-à-dire les réponses sans ligne d'état) ou chaîne vide en l'absence d'en-têtes.
-
tabId
Nombre
L'ID de l'onglet dans lequel la requête a lieu. Définissez cette valeur sur -1 si la requête n'est pas liée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.
-
Type
Mode d'utilisation de la ressource demandée
-
url
chaîne
-
-
asyncCallback
fonction facultative
Chrome 58 ou version ultérieureLe paramètre
asyncCallback
se présente comme suit :(response: BlockingResponse) => void
-
réponse
-
-
retours
BlockingResponse | undefined
Si "block" est spécifié dans le paramètre "extraInfoSpec", l'écouteur d'événements doit renvoyer un objet de ce type.
-
-
filtre
-
extraInfoSpec
OnAuthRequiredOptions[] facultatif
onBeforeRedirect
chrome.webRequest.onBeforeRedirect.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRedirectOptions[],
)
Déclenché lorsqu'une redirection déclenchée par le serveur est sur le point de se produire.
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(details: object) => void
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresL'UUID du document à l'origine de la demande.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie dans lequel se trouve le document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans la trame principale ; une valeur positive indique l'ID d'un sous-frame dans lequel la requête est effectuée. Si le document d'un (sous-)cadre est chargé (
type
estmain_frame
ousub_frame
),frameId
indique l'ID de ce cadre, et non celui du cadre extérieur. Les ID de frame sont uniques au sein d'un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête a été effectuée.
-
fromCache
boolean
Indique si cette réponse a été récupérée à partir du cache du disque.
-
initiateur
string facultatif
Chrome 63 et versions ultérieuresOrigine à laquelle la requête a été lancée. Cela n'a aucune incidence sur les redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisée.
-
ip
string facultatif
Adresse IP du serveur à laquelle la requête a été envoyée. Notez qu'il peut s'agir d'une adresse IPv6 littérale.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
string facultatif
Chrome 106 et versions ultérieuresUUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame qui a envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe.
-
redirectUrl
chaîne
La nouvelle URL.
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur. Par conséquent, ils peuvent servir à associer différents événements de la même requête.
-
responseHeaders
HttpHeaders facultatif
En-têtes de réponse HTTP reçus avec cette redirection.
-
statusCode
Nombre
Code d'état HTTP standard renvoyé par le serveur.
-
statusLine
chaîne
Ligne d'état HTTP de la réponse ou chaîne "HTTP/0.9 200 OK" pour les réponses HTTP/0.9 (c'est-à-dire les réponses sans ligne d'état) ou chaîne vide en l'absence d'en-têtes.
-
tabId
Nombre
L'ID de l'onglet dans lequel la requête a lieu. Définissez cette valeur sur -1 si la requête n'est pas liée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.
-
Type
Mode d'utilisation de la ressource demandée
-
url
chaîne
-
-
-
filtre
-
extraInfoSpec
OnBeforeRedirectOptions[] facultatif
onBeforeRequest
chrome.webRequest.onBeforeRequest.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRequestOptions[],
)
Déclenché lorsqu'une requête est sur le point d'avoir lieu.
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(details: object) => BlockingResponse | undefined
-
détails
objet
-
documentId
string facultatif
Chrome 106 et versions ultérieuresL'UUID du document à l'origine de la demande.
-
documentLifecycle
extensionTypes.DocumentLifecycle facultatif
Chrome 106 et versions ultérieuresCycle de vie dans lequel se trouve le document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans la trame principale ; une valeur positive indique l'ID d'un sous-frame dans lequel la requête est effectuée. Si le document d'un (sous-)cadre est chargé (
type
estmain_frame
ousub_frame
),frameId
indique l'ID de ce cadre, et non celui du cadre extérieur. Les ID de frame sont uniques au sein d'un onglet. -
frameType
extensionTypes.FrameType facultatif
Chrome 106 et versions ultérieuresType de frame dans lequel la requête a été effectuée.
-
initiateur
string facultatif
Chrome 63 et versions ultérieuresOrigine à laquelle la requête a été lancée. Cela n'a aucune incidence sur les redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisée.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
string facultatif
Chrome 106 et versions ultérieuresUUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame qui a envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe.
-
requestBody
objet facultatif
Contient les données du corps de la requête HTTP. Fourni uniquement si extraInfoSpec contient "requestBody".
-
error
string facultatif
Erreurs lors de l'obtention des données du corps de la requête.
-
formData
objet facultatif
Si la méthode de requête est POST et que le corps est une séquence de paires clé-valeur encodées en UTF8, encodées soit en multipart/form-data, soit en application/x-www-form-urlcoded, ce dictionnaire est présent et, pour chaque clé, contient la liste de toutes les valeurs pour cette clé. Si les données sont d'un autre type de support ou si elles sont mal formulées, le dictionnaire n'est pas présent. Voici un exemple de valeur de ce dictionnaire : {'key': ['value1', 'value2']}.
-
brut
UploadData[] facultatif
Si la méthode de requête est PUT ou POST et que le corps n'est pas déjà analysé dans formData, les éléments du corps de la requête non analysés sont contenus dans ce tableau.
-
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur. Par conséquent, ils peuvent servir à associer différents événements de la même requête.
-
tabId
Nombre
L'ID de l'onglet dans lequel la requête a lieu. Définissez cette valeur sur -1 si la requête n'est pas liée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.
-
Type
Mode d'utilisation de la ressource demandée
-
url
chaîne
-
-
retours
BlockingResponse | undefined
Si "block" est spécifié dans le paramètre "extraInfoSpec", l'écouteur d'événements doit renvoyer un objet de ce type.
-
-
filtre
-
extraInfoSpec
OnBeforeRequestOptions[] facultatif
onBeforeSendHeaders
chrome.webRequest.onBeforeSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeSendHeadersOptions[],
)
Déclenché avant l'envoi d'une requête HTTP, une fois que les en-têtes de requête sont disponibles. Cela peut se produire après l'établissement d'une connexion TCP au serveur, mais avant l'envoi de données HTTP.
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(details: object) => BlockingResponse | undefined
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresL'UUID du document à l'origine de la demande.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie dans lequel se trouve le document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans la trame principale ; une valeur positive indique l'ID d'un sous-frame dans lequel la requête est effectuée. Si le document d'un (sous-)cadre est chargé (
type
estmain_frame
ousub_frame
),frameId
indique l'ID de ce cadre, et non celui du cadre extérieur. Les ID de frame sont uniques au sein d'un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête a été effectuée.
-
initiateur
string facultatif
Chrome 63 et versions ultérieuresOrigine à laquelle la requête a été lancée. Cela n'a aucune incidence sur les redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisée.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
string facultatif
Chrome 106 et versions ultérieuresUUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame qui a envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe.
-
requestHeaders
HttpHeaders facultatif
En-têtes de requête HTTP qui vont être envoyés avec cette requête.
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur. Par conséquent, ils peuvent servir à associer différents événements de la même requête.
-
tabId
Nombre
L'ID de l'onglet dans lequel la requête a lieu. Définissez cette valeur sur -1 si la requête n'est pas liée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.
-
Type
Mode d'utilisation de la ressource demandée
-
url
chaîne
-
-
retours
BlockingResponse | undefined
Si "block" est spécifié dans le paramètre "extraInfoSpec", l'écouteur d'événements doit renvoyer un objet de ce type.
-
-
filtre
-
extraInfoSpec
OnBeforeSendHeadersOptions[] facultatif
onCompleted
chrome.webRequest.onCompleted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnCompletedOptions[],
)
Déclenché lorsqu'une requête est terminée
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(details: object) => void
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresL'UUID du document à l'origine de la demande.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie dans lequel se trouve le document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans la trame principale ; une valeur positive indique l'ID d'un sous-frame dans lequel la requête est effectuée. Si le document d'un (sous-)cadre est chargé (
type
estmain_frame
ousub_frame
),frameId
indique l'ID de ce cadre, et non celui du cadre extérieur. Les ID de frame sont uniques au sein d'un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête a été effectuée.
-
fromCache
boolean
Indique si cette réponse a été récupérée à partir du cache du disque.
-
initiateur
string facultatif
Chrome 63 et versions ultérieuresOrigine à laquelle la requête a été lancée. Cela n'a aucune incidence sur les redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisée.
-
ip
string facultatif
Adresse IP du serveur à laquelle la requête a été envoyée. Notez qu'il peut s'agir d'une adresse IPv6 littérale.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
string facultatif
Chrome 106 et versions ultérieuresUUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame qui a envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe.
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur. Par conséquent, ils peuvent servir à associer différents événements de la même requête.
-
responseHeaders
HttpHeaders facultatif
En-têtes de réponse HTTP reçus avec cette réponse.
-
statusCode
Nombre
Code d'état HTTP standard renvoyé par le serveur.
-
statusLine
chaîne
Ligne d'état HTTP de la réponse ou chaîne "HTTP/0.9 200 OK" pour les réponses HTTP/0.9 (c'est-à-dire les réponses sans ligne d'état) ou chaîne vide en l'absence d'en-têtes.
-
tabId
Nombre
L'ID de l'onglet dans lequel la requête a lieu. Définissez cette valeur sur -1 si la requête n'est pas liée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.
-
Type
Mode d'utilisation de la ressource demandée
-
url
chaîne
-
-
-
filtre
-
extraInfoSpec
OnCompletedOptions[] facultatif
onErrorOccurred
chrome.webRequest.onErrorOccurred.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnErrorOccurredOptions[],
)
Déclenché en cas d'erreur
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(details: object) => void
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresL'UUID du document à l'origine de la demande. Cette valeur n'est pas présente si la requête est une navigation dans un frame.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie dans lequel se trouve le document.
-
error
chaîne
Description de l'erreur. Il n'est pas garanti que cette chaîne reste rétrocompatible entre les versions. Vous ne devez pas analyser son contenu ni agir en fonction de celui-ci.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans la trame principale ; une valeur positive indique l'ID d'un sous-frame dans lequel la requête est effectuée. Si le document d'un (sous-)cadre est chargé (
type
estmain_frame
ousub_frame
),frameId
indique l'ID de ce cadre, et non celui du cadre extérieur. Les ID de frame sont uniques au sein d'un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête a été effectuée.
-
fromCache
boolean
Indique si cette réponse a été récupérée à partir du cache du disque.
-
initiateur
string facultatif
Chrome 63 et versions ultérieuresOrigine à laquelle la requête a été lancée. Cela n'a aucune incidence sur les redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisée.
-
ip
string facultatif
Adresse IP du serveur à laquelle la requête a été envoyée. Notez qu'il peut s'agir d'une adresse IPv6 littérale.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
string facultatif
Chrome 106 et versions ultérieuresUUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame qui a envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe.
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur. Par conséquent, ils peuvent servir à associer différents événements de la même requête.
-
tabId
Nombre
L'ID de l'onglet dans lequel la requête a lieu. Définissez cette valeur sur -1 si la requête n'est pas liée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.
-
Type
Mode d'utilisation de la ressource demandée
-
url
chaîne
-
-
-
filtre
-
extraInfoSpec
OnErrorOccurredOptions[] facultatif
onHeadersReceived
chrome.webRequest.onHeadersReceived.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnHeadersReceivedOptions[],
)
Déclenché lorsque les en-têtes de réponse HTTP d'une requête ont été reçus.
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(details: object) => BlockingResponse | undefined
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresL'UUID du document à l'origine de la demande.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie dans lequel se trouve le document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans la trame principale ; une valeur positive indique l'ID d'un sous-frame dans lequel la requête est effectuée. Si le document d'un (sous-)cadre est chargé (
type
estmain_frame
ousub_frame
),frameId
indique l'ID de ce cadre, et non celui du cadre extérieur. Les ID de frame sont uniques au sein d'un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête a été effectuée.
-
initiateur
string facultatif
Chrome 63 et versions ultérieuresOrigine à laquelle la requête a été lancée. Cela n'a aucune incidence sur les redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisée.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
string facultatif
Chrome 106 et versions ultérieuresUUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame qui a envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe.
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur. Par conséquent, ils peuvent servir à associer différents événements de la même requête.
-
responseHeaders
HttpHeaders facultatif
En-têtes de réponse HTTP reçus avec cette réponse.
-
statusCode
Nombre
Chrome 43 et versions ultérieuresCode d'état HTTP standard renvoyé par le serveur.
-
statusLine
chaîne
Ligne d'état HTTP de la réponse ou chaîne "HTTP/0.9 200 OK" pour les réponses HTTP/0.9 (réponses sans ligne d'état).
-
tabId
Nombre
L'ID de l'onglet dans lequel la requête a lieu. Définissez cette valeur sur -1 si la requête n'est pas liée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.
-
Type
Mode d'utilisation de la ressource demandée
-
url
chaîne
-
-
retours
BlockingResponse | undefined
Si "block" est spécifié dans le paramètre "extraInfoSpec", l'écouteur d'événements doit renvoyer un objet de ce type.
-
-
filtre
-
extraInfoSpec
OnHeadersReceivedOptions[] facultatif
onResponseStarted
chrome.webRequest.onResponseStarted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnResponseStartedOptions[],
)
Déclenché lors de la réception du premier octet du corps de la réponse. Pour les requêtes HTTP, cela signifie que la ligne d'état et les en-têtes de réponse sont disponibles.
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(details: object) => void
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresL'UUID du document à l'origine de la demande.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie dans lequel se trouve le document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans la trame principale ; une valeur positive indique l'ID d'un sous-frame dans lequel la requête est effectuée. Si le document d'un (sous-)cadre est chargé (
type
estmain_frame
ousub_frame
),frameId
indique l'ID de ce cadre, et non celui du cadre extérieur. Les ID de frame sont uniques au sein d'un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête a été effectuée.
-
fromCache
boolean
Indique si cette réponse a été récupérée à partir du cache du disque.
-
initiateur
string facultatif
Chrome 63 et versions ultérieuresOrigine à laquelle la requête a été lancée. Cela n'a aucune incidence sur les redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisée.
-
ip
string facultatif
Adresse IP du serveur à laquelle la requête a été envoyée. Notez qu'il peut s'agir d'une adresse IPv6 littérale.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
string facultatif
Chrome 106 et versions ultérieuresUUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame qui a envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe.
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur. Par conséquent, ils peuvent servir à associer différents événements de la même requête.
-
responseHeaders
HttpHeaders facultatif
En-têtes de réponse HTTP reçus avec cette réponse.
-
statusCode
Nombre
Code d'état HTTP standard renvoyé par le serveur.
-
statusLine
chaîne
Ligne d'état HTTP de la réponse ou chaîne "HTTP/0.9 200 OK" pour les réponses HTTP/0.9 (c'est-à-dire les réponses sans ligne d'état) ou chaîne vide en l'absence d'en-têtes.
-
tabId
Nombre
L'ID de l'onglet dans lequel la requête a lieu. Définissez cette valeur sur -1 si la requête n'est pas liée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.
-
Type
Mode d'utilisation de la ressource demandée
-
url
chaîne
-
-
-
filtre
-
extraInfoSpec
OnResponseStartedOptions[] facultatif
onSendHeaders
chrome.webRequest.onSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnSendHeadersOptions[],
)
Déclenché juste avant qu'une requête soit envoyée au serveur (les modifications des précédents rappels onBeforeSendHeaders sont visibles au moment du déclenchement de onSendHeaders).
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(details: object) => void
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresL'UUID du document à l'origine de la demande.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie dans lequel se trouve le document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans la trame principale ; une valeur positive indique l'ID d'un sous-frame dans lequel la requête est effectuée. Si le document d'un (sous-)cadre est chargé (
type
estmain_frame
ousub_frame
),frameId
indique l'ID de ce cadre, et non celui du cadre extérieur. Les ID de frame sont uniques au sein d'un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête a été effectuée.
-
initiateur
string facultatif
Chrome 63 et versions ultérieuresOrigine à laquelle la requête a été lancée. Cela n'a aucune incidence sur les redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisée.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
string facultatif
Chrome 106 et versions ultérieuresUUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame qui a envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe.
-
requestHeaders
HttpHeaders facultatif
En-têtes de requête HTTP envoyés avec cette requête.
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur. Par conséquent, ils peuvent servir à associer différents événements de la même requête.
-
tabId
Nombre
L'ID de l'onglet dans lequel la requête a lieu. Définissez cette valeur sur -1 si la requête n'est pas liée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.
-
Type
Mode d'utilisation de la ressource demandée
-
url
chaîne
-
-
-
filtre
-
extraInfoSpec
OnSendHeadersOptions[] facultatif