chrome.webRequest

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:

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

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

FormDataItem

Chrome (version 66 ou ultérieure)

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

Chrome 70 et versions ultérieures

Énumération

"redirection"

"request_headers"

&quot;response_headers&quot;

&quot;auth_credentials&quot;

OnAuthRequiredOptions

Chrome (version 44 ou ultérieure)

Énumération

&quot;responseHeaders&quot;
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.

&quot;asyncBlocking&quot;
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

Chrome (version 44 ou ultérieure)

Énumération

&quot;responseHeaders&quot;
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

Chrome (version 44 ou ultérieure)

Énumération

"Blocking"
Spécifie que la requête est bloquée jusqu'au retour de la fonction de rappel.

&quot;requestBody&quot;
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

Chrome (version 44 ou ultérieure)

Énumération

&quot;requestHeaders&quot;
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

Chrome (version 44 ou ultérieure)

Énumération

&quot;responseHeaders&quot;
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

Chrome 79 et versions ultérieures

Valeur

"extraHeaders"

OnHeadersReceivedOptions

Chrome (version 44 ou ultérieure)

Énumération

"Blocking"
Spécifie que la requête est bloquée jusqu'au retour de la fonction de rappel.

&quot;responseHeaders&quot;
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

Chrome (version 44 ou ultérieure)

Énumération

&quot;responseHeaders&quot;
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

Chrome (version 44 ou ultérieure)

Énumération

&quot;requestHeaders&quot;
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

Chrome (version 44 ou ultérieure)

É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.

&quot;script&quot;
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.

&quot;xmlhttprequest&quot;
Spécifie la ressource en tant que XMLHttpRequest.

"ping"
Spécifie la ressource en tant que ping.

&quot;csp_report&quot;
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()

<ph type="x-smartling-placeholder"></ph> Promesse
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érieures

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

        UUID du document à l'origine de la requête.

      • Chrome 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 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 dans un onglet.

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

        L'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érieure

        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.

      • 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

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

        UUID du document à l'origine de la requête.

      • Chrome 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 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 dans un onglet.

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

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

      • Façon dont la ressource demandée sera utilisé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 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érieures

        UUID du document à l'origine de la requête.

      • documentLifecycle
        Chrome 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 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 dans un onglet.

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

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

      • 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

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

        UUID du document à l'origine de la requête.

      • Chrome 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 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 dans un onglet.

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

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

      • 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

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

        UUID du document à l'origine de la requête.

      • Chrome 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 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 dans un onglet.

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

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

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

        UUID 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.

      • Chrome 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 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 dans un onglet.

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

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

      • Façon dont la ressource demandée sera utilisé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

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

        UUID du document à l'origine de la requête.

      • Chrome 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 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 dans un onglet.

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

        L'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érieure

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

      • 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

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

        UUID du document à l'origine de la requête.

      • Chrome 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 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 dans un onglet.

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

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

      • Façon dont la ressource demandée sera utilisée.

      • url

        chaîne

  • filtre
  • extraInfoSpec

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

        UUID du document à l'origine de la requête.

      • Chrome 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 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 dans un onglet.

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

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

      • Façon dont la ressource demandée sera utilisée.

      • url

        chaîne

  • filtre
  • extraInfoSpec

    OnSendHeadersOptions[] facultatif