chrome.webRequest

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:

Cycle de vie d'une requête Web du point de vue de l'API webrequest

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 ou 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:

  • Origine

À 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é) et image (une image sur un site Web). Consultez webRequest.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émas ws:// et wss:// 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 modifier responseHeaders pour chaque requête).

FormDataItem

Chrome 66 et versions ultérieures

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

Chrome 70 et versions ultérieures

Enum

"redirect"

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44 ou version ultérieure

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

Chrome 44 ou version ultérieure

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

Chrome 44 ou version ultérieure

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

Chrome 44 ou version ultérieure

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

Chrome 44 ou version ultérieure

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

Chrome 79 et versions ultérieures

Valeur

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 ou version ultérieure

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

Chrome 44 ou version ultérieure

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

Chrome 44 ou version ultérieure

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

Chrome 44 ou version ultérieure

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()

Promesse
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érieures

    Les 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 70 et versions ultérieures
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 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

          number

      • documentId

        chaîne

        Chrome 106 et versions ultérieures

        L'UUID du document à l'origine de la demande.

      • Chrome 106 et versions ultérieures

        Cycle de vie dans lequel se trouve le document.

      • frameId

        number

        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 est main_frame ou sub_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.

      • Chrome 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érieures

        Origine à 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érieures

        UUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.

      • parentFrameId

        number

        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

        number

        Chrome 43 et versions ultérieures

        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

        number

        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

        number

        Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.

      • Mode d'utilisation de la ressource demandée

      • url

        chaîne

    • asyncCallback

      fonction facultative

      Chrome 58 ou version ultérieure

      Le paramètre asyncCallback se présente comme suit :

      (response: BlockingResponse)=>void

    • retours

      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érieures

        L'UUID du document à l'origine de la demande.

      • Chrome 106 et versions ultérieures

        Cycle de vie dans lequel se trouve le document.

      • frameId

        number

        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 est main_frame ou sub_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.

      • Chrome 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érieures

        Origine à 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érieures

        UUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.

      • parentFrameId

        number

        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

        number

        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

        number

        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

        number

        Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.

      • Mode d'utilisation de la ressource demandée

      • url

        chaîne

  • filtre
  • extraInfoSpec

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érieures

        L'UUID du document à l'origine de la demande.

      • documentLifecycle
        Chrome 106 et versions ultérieures

        Cycle de vie dans lequel se trouve le document.

      • frameId

        number

        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 est main_frame ou sub_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
        Chrome 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érieures

        Origine à 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érieures

        UUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.

      • parentFrameId

        number

        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

        number

        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

        number

        Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.

      • Mode d'utilisation de la ressource demandée

      • url

        chaîne

    • retours

      Si "block" est spécifié dans le paramètre "extraInfoSpec", l'écouteur d'événements doit renvoyer un objet de ce type.

  • filtre
  • extraInfoSpec

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érieures

        L'UUID du document à l'origine de la demande.

      • Chrome 106 et versions ultérieures

        Cycle de vie dans lequel se trouve le document.

      • frameId

        number

        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 est main_frame ou sub_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.

      • Chrome 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érieures

        Origine à 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érieures

        UUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.

      • parentFrameId

        number

        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

        number

        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

        number

        Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.

      • Mode d'utilisation de la ressource demandée

      • url

        chaîne

    • retours

      Si "block" est spécifié dans le paramètre "extraInfoSpec", l'écouteur d'événements doit renvoyer un objet de ce type.

  • filtre
  • extraInfoSpec

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érieures

        L'UUID du document à l'origine de la demande.

      • Chrome 106 et versions ultérieures

        Cycle de vie dans lequel se trouve le document.

      • frameId

        number

        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 est main_frame ou sub_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.

      • Chrome 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érieures

        Origine à 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érieures

        UUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.

      • parentFrameId

        number

        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

        number

        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

        number

        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

        number

        Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.

      • 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érieures

        L'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.

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

        number

        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 est main_frame ou sub_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.

      • Chrome 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érieures

        Origine à 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érieures

        UUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.

      • parentFrameId

        number

        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

        number

        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

        number

        Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.

      • Mode d'utilisation de la ressource demandée

      • url

        chaîne

  • filtre
  • extraInfoSpec

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érieures

        L'UUID du document à l'origine de la demande.

      • Chrome 106 et versions ultérieures

        Cycle de vie dans lequel se trouve le document.

      • frameId

        number

        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 est main_frame ou sub_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.

      • Chrome 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érieures

        Origine à 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érieures

        UUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.

      • parentFrameId

        number

        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

        number

        Chrome 43 et versions ultérieures

        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 (réponses sans ligne d'état).

      • tabId

        number

        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

        number

        Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.

      • Mode d'utilisation de la ressource demandée

      • url

        chaîne

    • retours

      Si "block" est spécifié dans le paramètre "extraInfoSpec", l'écouteur d'événements doit renvoyer un objet de ce type.

  • filtre
  • extraInfoSpec

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érieures

        L'UUID du document à l'origine de la demande.

      • Chrome 106 et versions ultérieures

        Cycle de vie dans lequel se trouve le document.

      • frameId

        number

        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 est main_frame ou sub_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.

      • Chrome 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érieures

        Origine à 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érieures

        UUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.

      • parentFrameId

        number

        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

        number

        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

        number

        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

        number

        Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.

      • Mode d'utilisation de la ressource demandée

      • url

        chaîne

  • filtre
  • extraInfoSpec

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érieures

        L'UUID du document à l'origine de la demande.

      • Chrome 106 et versions ultérieures

        Cycle de vie dans lequel se trouve le document.

      • frameId

        number

        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 est main_frame ou sub_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.

      • Chrome 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érieures

        Origine à 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érieures

        UUID du document parent propriétaire de ce frame. Cette valeur n'est pas définie s'il n'y a pas de parent.

      • parentFrameId

        number

        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

        number

        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

        number

        Heure à laquelle ce signal est déclenché, en millisecondes depuis l'epoch.

      • Mode d'utilisation de la ressource demandée

      • url

        chaîne

  • filtre
  • extraInfoSpec

    OnSendHeadersOptions[] facultatif