Description
Utilisez l'API chrome.webRequest
pour observer et analyser le trafic, ainsi que pour intercepter, bloquer ou modifier les requêtes en cours de transfert.
Autorisations
webRequest
Vous devez déclarer l'autorisation "webRequest"
dans le fichier manifeste de l'extension pour utiliser la requête Web
et 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 créateur. Exemple :
{
"name": "My extension",
...
"permissions": [
"webRequest"
],
"host_permissions": [
"*://*.google.com/*"
],
...
}
webRequestBlocking
Obligatoire pour enregistrer les gestionnaires d'événements bloquants. Depuis Manifest V3, il ne s'agit que disponibles pour les extensions installées par règle.
webRequestAuthProvider
Obligatoire pour utiliser la méthode onAuthRequired
. Voir
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 pour observer et analyser le trafic. Certains événements synchrones vous permettent d'intercepter, bloquer ou modifier une demande.
Le cycle de vie des événements pour les requêtes réussies est illustré ici, suivi des définitions des événements:
onBeforeRequest
(facultatif)- Se déclenche lorsqu'une requête est sur le point de se produire. Cet événement est envoyé avant toute connexion TCP et peut pour annuler ou rediriger des demandes.
onBeforeSendHeaders
(facultatif)- 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
permettant aux extensions d'ajouter, de modifier et de supprimer des en-têtes de requêtes (*). La
L'événement
onBeforeSendHeaders
est transmis à tous les abonnés. Par conséquent, différents abonnés peuvent tenter de modifier la requête ; consultez la section Détails de l'implémentation pour savoir comment procéder. Cet événement pour annuler la demande. onSendHeaders
- Se déclenche une fois que toutes les extensions ont pu modifier les en-têtes de requête et présentent la version finale Version (*). L'événement est déclenché avant l'envoi des en-têtes au réseau. Cet événement est et traitées de manière asynchrone. Elle ne permet pas de modifier ni d'annuler la demande.
onHeadersReceived
(facultatif)- Se déclenche chaque fois qu'un en-tête de réponse HTTP(S) est reçu. En raison de redirections et d'authentification ce qui peut se produire plusieurs fois par requête. Cet événement est destiné à permettre aux extensions ajouter, modifier et supprimer des en-têtes de réponse, tels que des en-têtes Content-Type entrants. La mise en cache sont traitées avant le déclenchement de cet événement. Par conséquent, la modification des en-têtes tels que Cache-Control n'a aucune influence sur le cache du navigateur. Il vous permet également d'annuler ou de rediriger la demande.
onAuthRequired
(facultatif)- Se déclenche lorsqu'une requête nécessite l'authentification de l'utilisateur. Cet événement peut être géré de manière synchrone fournir des identifiants d'authentification. Notez que les extensions peuvent fournir des identifiants non valides. À bientôt de ne pas entrer dans une boucle infinie en fournissant à plusieurs reprises des identifiants non valides. Cela peut également être utilisé pour annuler la demande.
onBeforeRedirect
- Se déclenche lorsqu'une redirection est sur le point d'être exécutée. Une redirection peut être déclenchée par une réponse HTTP du code ou par une extension. Cet événement est fourni à titre informatif et géré de manière asynchrone. Elle n'autorise pas de modifier ou d'annuler la demande.
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. Il ne permet 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.
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 à l'extension une abstraction de la pile réseau. En interne, une requête URL peut être divisée en plusieurs requêtes HTTP (par exemple, pour récupérer des requêtes individuelles des plages d'octets d'un fichier volumineux) ou peuvent être gérées par la pile réseau sans communiquer avec 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
. Cette liste
leur intégralité ou leur stabilité n'est pas garantie.
- Autorisation
- Cache-Control
- Connexion
- Longueur du contenu
- Hôte
- If-Modified-Since
- If-None-Match
- If-Range
- Données partielles
- Pragma
- Proxy-Authorization
- Connexion au proxy
- Transfer-Encoding
À partir de Chrome 79, les modifications d'en-tête de requête affectent le partage des ressources entre origines multiples (CORS)
vérifications. Si les en-têtes modifiés pour les requêtes multi-origines ne répondent pas aux critères, cela entraînera
en envoyant une requête préliminaire CORS pour demander
au serveur si ces en-têtes peuvent être acceptés. Si vous avez vraiment besoin de
modifier les en-têtes de manière à enfreindre 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 le CORS
vérifications. Si vous devez duper le protocole CORS, vous devez également spécifier 'extraHeaders'
pour le
modifications de réponse.
À partir de Chrome 79, l'API webRequest n'intercepte pas les requêtes CORS préliminaires.
des réponses par défaut. Une requête préliminaire CORS pour une URL de requête est visible par une extension s'il existe un
écouteur avec 'extraHeaders'
spécifié dans opt_extraInfoSpec
pour l'URL de la requête.
onBeforeRequest
peut également prendre 'extraHeaders'
dans Chrome 79.
À partir de Chrome 79, l'en-tête de requête suivant n'est pas fourni et ne peut pas être modifié.
supprimée sans spécifier 'extraHeaders'
dans opt_extraInfoSpec
:
- Origine
À partir de Chrome 72, si vous devez modifier les réponses avant d'activer Cross-Origin Read Blocking
(CORB) peut bloquer la réponse, 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
ou supprimé sans spécifier 'extraHeaders'
dans opt_extraInfoSpec
:
- Accept-Language
- 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é
ou supprimé sans spécifier 'extraHeaders'
dans opt_extraInfoSpec
.
À partir de Chrome 89, l'en-tête de réponse X-Frame-Options
ne peut pas être modifié efficacement
ou supprimé 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 de son hôte
autorisations. 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 dont les URL utilisent l'un des schémas ci-dessus
sont masquées. Cela inclut 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 éléments
demande les fonctionnalités
essentielles au navigateur. Les requêtes XMLHttpRequest synchrones de votre extension sont également
sont masquées pour bloquer les gestionnaires
d'événements afin d'éviter les interblocages. Notez que, pour certains
schémas compatibles, l'ensemble des événements disponibles peut être limité en raison de la nature
le protocole correspondant. Par exemple, pour le schéma "file:", uniquement onBeforeRequest
,
Les articles onResponseStarted
, onCompleted
et onErrorOccurred
peuvent être expédiés.
À partir de Chrome 58, l'API webRequest permet d'intercepter la requête de handshake WebSocket. Étant donné que le handshake se fait à l'aide d'une requête de mise à niveau HTTP, son flux s'intègre dans une requête HTTP webRequest. 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'un hôte les autorisations à la fois à l'URL demandée et à l'initiateur de la requête.
À partir de Chrome 96, l'API webRequest permet d'intercepter WebTransport via HTTP/3. de handshake. Étant donné que le handshake se fait à l'aide d'une requête HTTP CONNECT, son flux s'adapte dans un modèle webRequest 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 via HTTP/3.
ID de requête
Chaque demande est identifiée par un identifiant. Cet identifiant est unique au sein d'une session de navigateur. le contexte d'une extension. Elle reste constante pendant le cycle de vie d'une requête et peut être utilisée pour faire correspondre les événements à la même requête. Notez que plusieurs requêtes HTTP sont mappées à une requête Web. en cas de redirection ou d'authentification HTTP.
Enregistrer des écouteurs d'événements
Afin d'enregistrer un écouteur d'événements pour une requête Web, utilisez une variante de l'API addListener()
habituelle
de commande. En plus de spécifier une fonction de rappel, vous devez spécifier un argument de filtre. Vous pouvez également spécifier un argument d'information 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 comme premier paramètre. Ce rappel
reçoit un dictionnaire contenant des informations sur la requête d'URL actuelle. La
les informations contenues dans ce dictionnaire dépendent du type d'événement spécifique ainsi que du contenu
opt_extraInfoSpec
Si le tableau opt_extraInfoSpec
facultatif contient la chaîne 'blocking'
(uniquement autorisé pour
des événements spécifiques), la fonction de rappel est gérée de manière synchrone. Cela signifie que la demande
bloqué jusqu'à ce que la fonction de rappel soit renvoyée. Dans ce cas, le rappel peut renvoyer une
webRequest.BlockingResponse
qui détermine le cycle de vie ultérieur de la requête. En fonction
sur le contexte, cette réponse permet d'annuler ou de rediriger une requête (onBeforeRequest
).
l'annulation d'une requête ou la modification des en-têtes (onBeforeSendHeaders
, onHeadersReceived
) ;
annuler une requête ou fournir des identifiants d'authentification (onAuthRequired
).
Si le tableau opt_extraInfoSpec
facultatif contient la chaîne 'asyncBlocking'
à la place (uniquement
pour onAuthRequired
), l'extension peut générer webRequest.BlockingResponse
de manière asynchrone.
Le filter
webRequest.RequestFilter
permet de limiter les requêtes pour lesquelles les événements sont
déclenchée dans différentes dimensions:
- URL
- Formats d'URL tels que
*://www.google.com/foo*bar
. - Types
- Les types de requêtes sont
main_frame
(document chargé pour un frame de niveau supérieur),sub_frame
(un qui est chargé pour un cadre intégré) etimage
(une image sur un site Web). VoirwebRequest.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
sur la demande. Utilisé pour fournir des informations détaillées sur les données de la demande uniquement
si vous l'avez explicitement demandé.
Gérer l'authentification
Pour gérer les requêtes d'authentification HTTP, ajoutez "webRequestAuthProvider"
l'autorisation d'accès à votre fichier manifeste:
{
"permissions": [
"webRequest",
"webRequestAuthProvider"
]
}
Notez que cette autorisation n'est pas requise pour une extension installée via une règle 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:
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 d'implémentation peuvent être importants à comprendre lors du développement d'une extension qui utilise API Web Request:
web_accessible_resources
Lorsqu'une extension utilise les API webRequest pour rediriger une demande de ressource publique vers une ressource inaccessible, 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 sur 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 renseigné dans le fichier manifeste comme indiqué ici.
Résolution de conflit
Dans l'implémentation actuelle de l'API de requête Web, une requête est considérée comme annulée si au moins
au moins une extension demande d'annuler la demande. Si une extension annule une demande,
Les extensions sont notifiées par un événement onErrorOccurred
. Une seule extension peut rediriger
ou modifier un en-tête à la fois. Si plusieurs extensions tentent de modifier la requête, le
l'extension la plus récemment installée l'emporte, et toutes les autres sont ignorées. L'extension n'est pas avertie si
son instruction de modification ou de redirection a été ignorée.
Mise en cache
Chrome utilise deux caches : un cache sur le disque et un cache en mémoire très rapide. La durée de vie d'un
Le cache en mémoire est associé à la durée de vie d'un processus de rendu, qui correspond à peu près à un onglet.
Les requêtes auxquelles répond le cache en mémoire sont invisibles pour l'API de requête Web. Si un
gestionnaire de requêtes modifie son comportement (par exemple, le comportement selon les requêtes qui sont
bloquée), une simple actualisation de page risque de ne pas respecter ce comportement modifié. Pour s'assurer que le comportement
est effectuée, appelez handlerBehaviorChanged()
pour vider le cache en mémoire. Mais ne le faites pas
souvent ; le vidage du cache est une opération très coûteuse. Vous n'avez pas besoin d'appeler
handlerBehaviorChanged()
après l'enregistrement ou l'annulation de l'enregistrement d'un écouteur d'événements.
Codes temporels
La cohérence de la propriété timestamp
des événements de requête Web n'est garantie que en interne.
Comparer un événement à un autre vous permet d'obtenir le décalage correct entre eux, mais la comparaison
sur l'heure actuelle dans l'extension (via (new Date()).getTime()
, par exemple) pourrait
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. le gestionnaire d'événements ne sera pas enregistré. Si une erreur est générée pendant le traitement d'un événement ou si une le gestionnaire d'événements renvoie une réponse de blocage non valide, un message d'erreur est consigné dans la console, 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 "webRequest"
ainsi que le
Autorisation "webRequestBlocking"
dans le fichier manifeste.
L'exemple suivant permet d'atteindre le même objectif de façon plus efficace, car les requêtes qui ne sont pas
ciblant www.evil.com
n'ont pas besoin d'être transmis à 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
, procédez comme suit :
Installez l'exemple webRequest à partir de chrome-extension-samples.
un dépôt de clés.
Types
BlockingResponse
Renvoie la valeur pour les gestionnaires d'événements ayant l'état "bloquant" extraInfoSpec 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 cet indicateur est défini, 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 demande est annulée. Cela empêche l'envoi de la requête. Vous pouvez l'utiliser en tant que réponse aux événements onBeforeRequest, onBeforeSendHeaders, onHeadersReceived et onAuthRequired.
-
redirectUrl
chaîne facultatif
Utilisé uniquement en réponse aux événements onBeforeRequest et onHeadersReceived. Si cette règle est définie, la requête d'origine ne peut pas être envoyée ni traitée, et est redirigée vers l'URL donnée. Les redirections vers des schémas non-HTTP tels que
data:
sont autorisées. Les redirections initiées par une action de redirection utilisent la méthode de requête d'origine, à une exception près: si la redirection est lancée à l'étape onHeadersReceived, 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. S'ils sont définis, 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 ce champ est défini, le serveur est supposé avoir répondu avec ces en-têtes de réponse. Ne renvoyez
responseHeaders
que si vous souhaitez 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 la forme encodée au format URL, il est stocké en tant que chaîne si les données sont de type chaîne utf-8, et sous forme de objet ArrayBuffer dans le cas contraire. Pour les données form, il s'agit de ArrayBuffer. Si form-data représente un fichier d'importation, il s'agit d'une chaîne avec nom de fichier, si le nom de fichier est fourni.
Énumération
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
object[]
Propriétés
-
binaryValue
number[] facultatif
Valeur de l'en-tête HTTP s'il ne peut pas être représenté par UTF-8, stockée sous forme de valeurs d'octets individuelles (0 à 255).
-
nom
chaîne
Nom de l'en-tête HTTP.
-
valeur
chaîne facultatif
Valeur de l'en-tête HTTP s'il peut être représenté par UTF-8.
IgnoredActionType
Énumération
"redirection"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
Énumération
"responseHeaders"
Spécifie que les en-têtes de réponse doivent être inclus dans l'événement.
"Blocking"
Spécifie que la requête est bloquée jusqu'au retour de la fonction de rappel.
"asyncBlocking"
Spécifie que la fonction de rappel est gérée de manière asynchrone.
"extraHeaders"
Spécifie que les en-têtes ne respectent pas le partage des ressources entre origines multiples (CORS).
OnBeforeRedirectOptions
Énumération
"responseHeaders"
Spécifie que les en-têtes de réponse doivent être inclus dans l'événement.
"extraHeaders"
Spécifie que les en-têtes ne respectent pas le partage des ressources entre origines multiples (CORS).
OnBeforeRequestOptions
Énumération
"Blocking"
Spécifie que la requête est bloquée jusqu'au retour de la fonction de rappel.
"requestBody"
Spécifie que le corps de la requête doit être inclus dans l'événement.
"extraHeaders"
Spécifie que les en-têtes ne respectent pas le partage des ressources entre origines multiples (CORS).
OnBeforeSendHeadersOptions
Énumération
"requestHeaders"
Spécifie que l'en-tête de requête doit être inclus dans l'événement.
"Blocking"
Spécifie que la requête est bloquée jusqu'au retour de la fonction de rappel.
"extraHeaders"
Spécifie que les en-têtes ne respectent pas le partage des ressources entre origines multiples (CORS).
OnCompletedOptions
Énumération
"responseHeaders"
Spécifie que les en-têtes de réponse doivent être inclus dans l'événement.
"extraHeaders"
Spécifie que les en-têtes ne respectent pas le partage des ressources entre origines multiples (CORS).
OnErrorOccurredOptions
Valeur
"extraHeaders"
OnHeadersReceivedOptions
Énumération
"Blocking"
Spécifie que la requête est bloquée jusqu'au retour de la fonction de rappel.
"responseHeaders"
Spécifie que les en-têtes de réponse doivent être inclus dans l'événement.
"extraHeaders"
Spécifie que les en-têtes ne respectent pas le partage des ressources entre origines multiples (CORS).
OnResponseStartedOptions
Énumération
"responseHeaders"
Spécifie que les en-têtes de réponse doivent être inclus dans l'événement.
"extraHeaders"
Spécifie que les en-têtes ne respectent pas le partage des ressources entre origines multiples (CORS).
OnSendHeadersOptions
Énumération
"requestHeaders"
Spécifie que l'en-tête de requête doit être inclus dans l'événement.
"extraHeaders"
Spécifie que les en-têtes ne respectent pas le partage des ressources entre origines multiples (CORS).
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 demandes qui ne peuvent correspondre à aucun de ces types seront filtrées.
-
URL
chaîne[]
Liste d'URL ou de formats d'URL. Les requêtes qui ne peuvent correspondre à aucune des URL seront filtrées.
-
windowId
numéro facultatif
ResourceType
Énumération
"main_frame"
Spécifie la ressource en tant que frame principal.
"sub_frame"
Spécifie la ressource en tant que sous-trame.
"stylesheet"
Spécifie la ressource en tant que feuille de style.
"script"
Spécifie la ressource en tant que script.
"image"
Spécifie la ressource en tant qu'image.
"font"
Spécifie la ressource en tant que police.
"object"
Spécifie la ressource en tant qu'objet.
"xmlhttprequest"
Spécifie la ressource en tant que XMLHttpRequest.
"ping"
Spécifie la ressource en tant que ping.
"csp_report"
Spécifie la ressource en tant que rapport Content Security Policy (CSP).
"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 les données importées dans une requête d'URL.
Propriétés
-
bytes
Tout facultatif
Un objet ArrayBuffer avec une copie des données.
-
fichier
chaîne facultatif
Chaîne comportant le chemin d'accès et le nom du fichier.
Propriétés
MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES
Nombre maximal d'appels de handlerBehaviorChanged
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 une gestion incorrecte due à la mise en cache. Cet appel de fonction est coûteux. Ne l'utilisez pas souvent.
Paramètres
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 116 et versions ultérieuresLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La 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 pour une requête réseau est ignorée. Cela se produit en cas de conflit avec d'autres extensions.
Paramètres
-
rappel
fonction
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
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur. Par conséquent, ils peuvent être utilisés pour mettre en relation 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 a trois options: il peut fournir des identifiants d'authentification, annuler la requête et afficher la page d'erreur, ou ne peut effectuer aucune action concernant la question d'authentification. 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
fonction
Le paramètre
callback
se présente comme suit:(details: object, asyncCallback?: function) => BlockingResponse | undefined
-
détails
objet
-
Défi
objet
Serveur demandant l'authentification.
-
hôte
chaîne
-
port
Nombre
-
-
documentId
chaîne
Chrome 106 et versions ultérieuresUUID du document à l'origine de la requête.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie du document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans le frame principal. une valeur positive indique l'identifiant d'un sous-cadre dans lequel la demande se produit. 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 dans un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête s'est produite.
-
demandeur
chaîne facultatif
Chrome (version 63 ou ultérieure)Origine où la requête a été lancée. Cela ne change pas par le biais des redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisé.
-
isProxy
booléen
True pour Proxy-Authenticate, false pour WWW-Authenticate.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
chaîne facultatif
Chrome 106 et versions ultérieuresL'UUID du document parent propriétaire de ce cadre. Cette valeur n'est pas définie en l'absence de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame ayant envoyé la requête. Définissez ce paramètre sur -1 si aucun cadre parent n'existe.
-
domaine
chaîne facultatif
Domaine d'authentification fourni par le serveur, le cas échéant.
-
requestId
chaîne
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur. Par conséquent, ils peuvent être utilisés pour mettre en relation 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
Le schéma d'authentification, par exemple Standard ou Condensé.
-
statusCode
Nombre
Chrome 43 ou version ultérieureCode d'état HTTP standard renvoyé par le serveur.
-
statusLine
chaîne
Ligne d'état HTTP de la réponse ou "HTTP/0.9 200 OK" chaîne pour les réponses HTTP/0.9 (réponses sans ligne d'état) ou une chaîne vide en l'absence d'en-têtes.
-
tabId
Nombre
ID de l'onglet dans lequel la requête a lieu. Définissez ce paramètre sur -1 si la demande n'est pas associée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal s'est déclenché, en millisecondes depuis l'époque.
-
type
Façon dont la ressource demandée sera utilisée.
-
url
chaîne
-
-
asyncCallback
function facultatif
Chrome (version 58 ou ultérieure)Le paramètre
asyncCallback
se présente comme suit:(response: BlockingResponse) => void
-
réponse
-
-
retours
BlockingResponse | indéfinie
Si vous "bloquez" est spécifiée dans le champ "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 initiée par le serveur est sur le point de se produire.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(details: object) => void
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresUUID du document à l'origine de la requête.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie du document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans le frame principal. une valeur positive indique l'identifiant d'un sous-cadre dans lequel la demande se produit. 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 dans un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête s'est produite.
-
fromCache
booléen
Indique si cette réponse a été extraite du cache disque.
-
demandeur
chaîne facultatif
Chrome (version 63 ou ultérieure)Origine où la requête a été lancée. Cela ne change pas par le biais des redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisé.
-
ip
chaîne 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
chaîne facultatif
Chrome 106 et versions ultérieuresL'UUID du document parent propriétaire de ce cadre. Cette valeur n'est pas définie en l'absence de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame ayant envoyé la requête. Définissez ce paramètre sur -1 si aucun cadre parent n'existe.
-
redirectUrl
chaîne
Nouvelle URL.
-
requestId
chaîne
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur. Par conséquent, ils peuvent être utilisés pour mettre en relation 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 "HTTP/0.9 200 OK" chaîne pour les réponses HTTP/0.9 (réponses sans ligne d'état) ou une chaîne vide en l'absence d'en-têtes.
-
tabId
Nombre
ID de l'onglet dans lequel la requête a lieu. Définissez ce paramètre sur -1 si la demande n'est pas associée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal s'est déclenché, en millisecondes depuis l'époque.
-
type
Façon dont la ressource demandée sera utilisé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 de se produire.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(details: object) => BlockingResponse | undefined
-
détails
objet
-
documentId
chaîne facultatif
Chrome 106 et versions ultérieuresUUID du document à l'origine de la requête.
-
documentLifecycle
extensionTypes.DocumentLifecycle optional
Chrome 106 et versions ultérieuresCycle de vie du document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans le frame principal. une valeur positive indique l'identifiant d'un sous-cadre dans lequel la demande se produit. 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 dans un onglet. -
frameType
extensionTypes.FrameType optional
Chrome 106 et versions ultérieuresType de frame dans lequel la requête s'est produite.
-
demandeur
chaîne facultatif
Chrome (version 63 ou ultérieure)Origine où la requête a été lancée. Cela ne change pas par le biais des redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisé.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
chaîne facultatif
Chrome 106 et versions ultérieuresL'UUID du document parent propriétaire de ce cadre. Cette valeur n'est pas définie en l'absence de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame ayant envoyé la requête. Définissez ce paramètre sur -1 si aucun cadre parent n'existe.
-
requestBody
objet facultatif
Contient les données du corps de la requête HTTP. Fourni uniquement si extraInfoSpec contient "requestBody".
-
erreur
chaîne 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 sous la forme "multipart/form-data" ou "application/x-www-form-urlcoded", ce dictionnaire est présent et, pour chaque clé, contient la liste de toutes les valeurs de cette clé. Si les données sont d'un autre type ou sont incorrectes, le dictionnaire n'est pas présent. {'key': ['value1', 'value2']} est un exemple de valeur de ce dictionnaire.
-
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
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur. Par conséquent, ils peuvent être utilisés pour mettre en relation différents événements de la même requête.
-
tabId
Nombre
ID de l'onglet dans lequel la requête a lieu. Définissez ce paramètre sur -1 si la demande n'est pas associée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal s'est déclenché, en millisecondes depuis l'époque.
-
type
Façon dont la ressource demandée sera utilisée.
-
url
chaîne
-
-
retours
BlockingResponse | indéfinie
Si vous "bloquez" est spécifiée dans le champ "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 des données HTTP.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(details: object) => BlockingResponse | undefined
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresUUID du document à l'origine de la requête.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie du document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans le frame principal. une valeur positive indique l'identifiant d'un sous-cadre dans lequel la demande se produit. 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 dans un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête s'est produite.
-
demandeur
chaîne facultatif
Chrome (version 63 ou ultérieure)Origine où la requête a été lancée. Cela ne change pas par le biais des redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisé.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
chaîne facultatif
Chrome 106 et versions ultérieuresL'UUID du document parent propriétaire de ce cadre. Cette valeur n'est pas définie en l'absence de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame ayant envoyé la requête. Définissez ce paramètre sur -1 si aucun cadre 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
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur. Par conséquent, ils peuvent être utilisés pour mettre en relation différents événements de la même requête.
-
tabId
Nombre
ID de l'onglet dans lequel la requête a lieu. Définissez ce paramètre sur -1 si la demande n'est pas associée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal s'est déclenché, en millisecondes depuis l'époque.
-
type
Façon dont la ressource demandée sera utilisée.
-
url
chaîne
-
-
retours
BlockingResponse | indéfinie
Si vous "bloquez" est spécifiée dans le champ "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
fonction
Le paramètre
callback
se présente comme suit:(details: object) => void
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresUUID du document à l'origine de la requête.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie du document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans le frame principal. une valeur positive indique l'identifiant d'un sous-cadre dans lequel la demande se produit. 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 dans un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête s'est produite.
-
fromCache
booléen
Indique si cette réponse a été extraite du cache disque.
-
demandeur
chaîne facultatif
Chrome (version 63 ou ultérieure)Origine où la requête a été lancée. Cela ne change pas par le biais des redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisé.
-
ip
chaîne 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
chaîne facultatif
Chrome 106 et versions ultérieuresL'UUID du document parent propriétaire de ce cadre. Cette valeur n'est pas définie en l'absence de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame ayant envoyé la requête. Définissez ce paramètre sur -1 si aucun cadre parent n'existe.
-
requestId
chaîne
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur. Par conséquent, ils peuvent être utilisés pour mettre en relation 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 "HTTP/0.9 200 OK" chaîne pour les réponses HTTP/0.9 (réponses sans ligne d'état) ou une chaîne vide en l'absence d'en-têtes.
-
tabId
Nombre
ID de l'onglet dans lequel la requête a lieu. Définissez ce paramètre sur -1 si la demande n'est pas associée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal s'est déclenché, en millisecondes depuis l'époque.
-
type
Façon dont la ressource demandée sera utilisée.
-
url
chaîne
-
-
-
filtre
-
extraInfoSpec
OnCompletedOptions[] facultatif
onErrorOccurred
chrome.webRequest.onErrorOccurred.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnErrorOccurredOptions[],
)
Déclenché lorsqu'une erreur se produit.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(details: object) => void
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresUUID du document à l'origine de la requête. 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 du document.
-
erreur
chaîne
Description de l'erreur. Le maintien de la rétrocompatibilité entre les versions de cette chaîne n'est pas garanti. 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 le frame principal. une valeur positive indique l'identifiant d'un sous-cadre dans lequel la demande se produit. 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 dans un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête s'est produite.
-
fromCache
booléen
Indique si cette réponse a été extraite du cache disque.
-
demandeur
chaîne facultatif
Chrome (version 63 ou ultérieure)Origine où la requête a été lancée. Cela ne change pas par le biais des redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisé.
-
ip
chaîne 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
chaîne facultatif
Chrome 106 et versions ultérieuresL'UUID du document parent propriétaire de ce cadre. Cette valeur n'est pas définie en l'absence de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame ayant envoyé la requête. Définissez ce paramètre sur -1 si aucun cadre parent n'existe.
-
requestId
chaîne
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur. Par conséquent, ils peuvent être utilisés pour mettre en relation différents événements de la même requête.
-
tabId
Nombre
ID de l'onglet dans lequel la requête a lieu. Définissez ce paramètre sur -1 si la demande n'est pas associée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal s'est déclenché, en millisecondes depuis l'époque.
-
type
Façon dont la ressource demandée sera utilisé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
fonction
Le paramètre
callback
se présente comme suit:(details: object) => BlockingResponse | undefined
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresUUID du document à l'origine de la requête.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie du document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans le frame principal. une valeur positive indique l'identifiant d'un sous-cadre dans lequel la demande se produit. 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 dans un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête s'est produite.
-
demandeur
chaîne facultatif
Chrome (version 63 ou ultérieure)Origine où la requête a été lancée. Cela ne change pas par le biais des redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisé.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
chaîne facultatif
Chrome 106 et versions ultérieuresL'UUID du document parent propriétaire de ce cadre. Cette valeur n'est pas définie en l'absence de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame ayant envoyé la requête. Définissez ce paramètre sur -1 si aucun cadre parent n'existe.
-
requestId
chaîne
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur. Par conséquent, ils peuvent être utilisés pour mettre en relation 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 ou version ultérieureCode d'état HTTP standard renvoyé par le serveur.
-
statusLine
chaîne
Ligne d'état HTTP de la réponse ou "HTTP/0.9 200 OK" chaîne pour les réponses HTTP/0.9 (c'est-à-dire les réponses sans ligne d'état).
-
tabId
Nombre
ID de l'onglet dans lequel la requête a lieu. Définissez ce paramètre sur -1 si la demande n'est pas associée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal s'est déclenché, en millisecondes depuis l'époque.
-
type
Façon dont la ressource demandée sera utilisée.
-
url
chaîne
-
-
retours
BlockingResponse | indéfinie
Si vous "bloquez" est spécifiée dans le champ "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é 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.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(details: object) => void
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresUUID du document à l'origine de la requête.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie du document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans le frame principal. une valeur positive indique l'identifiant d'un sous-cadre dans lequel la demande se produit. 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 dans un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête s'est produite.
-
fromCache
booléen
Indique si cette réponse a été extraite du cache disque.
-
demandeur
chaîne facultatif
Chrome (version 63 ou ultérieure)Origine où la requête a été lancée. Cela ne change pas par le biais des redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisé.
-
ip
chaîne 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
chaîne facultatif
Chrome 106 et versions ultérieuresL'UUID du document parent propriétaire de ce cadre. Cette valeur n'est pas définie en l'absence de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame ayant envoyé la requête. Définissez ce paramètre sur -1 si aucun cadre parent n'existe.
-
requestId
chaîne
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur. Par conséquent, ils peuvent être utilisés pour mettre en relation 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 "HTTP/0.9 200 OK" chaîne pour les réponses HTTP/0.9 (réponses sans ligne d'état) ou une chaîne vide en l'absence d'en-têtes.
-
tabId
Nombre
ID de l'onglet dans lequel la requête a lieu. Définissez ce paramètre sur -1 si la demande n'est pas associée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal s'est déclenché, en millisecondes depuis l'époque.
-
type
Façon dont la ressource demandée sera utilisée.
-
url
chaîne
-
-
-
filtre
-
extraInfoSpec
OnResponseStartedOptions[] facultatif
onSendHeaders
chrome.webRequest.onSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnSendHeadersOptions[],
)
Déclenché juste avant l'envoi d'une requête au serveur (les modifications des rappels onBeforeSendHeaders précédents sont visibles au moment du déclenchement de onSendHeaders).
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(details: object) => void
-
détails
objet
-
documentId
chaîne
Chrome 106 et versions ultérieuresUUID du document à l'origine de la requête.
-
documentLifecycleChrome 106 et versions ultérieures
Cycle de vie du document.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans le frame principal. une valeur positive indique l'identifiant d'un sous-cadre dans lequel la demande se produit. 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 dans un onglet. -
frameTypeChrome 106 et versions ultérieures
Type de frame dans lequel la requête s'est produite.
-
demandeur
chaîne facultatif
Chrome (version 63 ou ultérieure)Origine où la requête a été lancée. Cela ne change pas par le biais des redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisé.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
chaîne facultatif
Chrome 106 et versions ultérieuresL'UUID du document parent propriétaire de ce cadre. Cette valeur n'est pas définie en l'absence de parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame ayant envoyé la requête. Définissez ce paramètre sur -1 si aucun cadre parent n'existe.
-
requestHeaders
HttpHeaders facultatif
En-têtes de requête HTTP qui ont été envoyés avec cette requête.
-
requestId
chaîne
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur. Par conséquent, ils peuvent être utilisés pour mettre en relation différents événements de la même requête.
-
tabId
Nombre
ID de l'onglet dans lequel la requête a lieu. Définissez ce paramètre sur -1 si la demande n'est pas associée à un onglet.
-
timeStamp
Nombre
Heure à laquelle ce signal s'est déclenché, en millisecondes depuis l'époque.
-
type
Façon dont la ressource demandée sera utilisée.
-
url
chaîne
-
-
-
filtre
-
extraInfoSpec
OnSendHeadersOptions[] facultatif