chrome.webRequest

Descripción

Usa la API de chrome.webRequest para observar y analizar el tráfico, y para interceptar, bloquear o modificar solicitudes en tránsito.

Permisos

webRequest

Para usar la solicitud web, debes declarar el permiso "webRequest" en el manifiesto de extensión junto con los permisos de host necesarios. Para interceptar una solicitud de un subrecurso, el la extensión debe tener acceso a la URL solicitada y al iniciador. Por ejemplo:

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

webRequestBlocking

Obligatorio para registrar controladores de eventos de bloqueo. A partir de Manifest V3, esto es solo disponibles para las extensiones instaladas por políticas.

webRequestAuthProvider

Es obligatorio usar el método onAuthRequired. Consulta Controla la autenticación.

Conceptos y uso

Ciclo de vida de las solicitudes

La API de solicitud web define un conjunto de eventos que siguen el ciclo de vida de una solicitud web. Puedes usar estos eventos para observar y analizar el tráfico. Algunos eventos sincrónicos te permitirán interceptar bloquear o modificar una solicitud.

Aquí se ilustra el ciclo de vida del evento para solicitudes exitosas, seguido de las definiciones de los eventos:

Ciclo de vida de una solicitud web desde la perspectiva de la API de webrequest

onBeforeRequest (síncrono opcional)
Se activa cuando está por ocurrir una solicitud. Este evento se envía antes de que se establezca cualquier conexión TCP y puede usarse para cancelar o redireccionar solicitudes.
onBeforeSendHeaders (síncrono opcional)
Se activa cuando está por ocurrir una solicitud y se preparan los encabezados iniciales. El evento es destinada a permitir que las extensiones agreguen, modifiquen y borren encabezados de solicitud (*). El onBeforeSendHeaders evento se pasa a todos los suscriptores, por lo que diferentes suscriptores pueden intentar modificar la solicitud; consulta la sección Detalles de la implementación para conocer cómo se maneja. Este evento que se puede usar para cancelar la solicitud.
onSendHeaders
Se activa después de que todas las extensiones han tenido la oportunidad de modificar los encabezados de la solicitud y presenta la versión final Versión (*). El evento se activa antes de que los encabezados se envíen a la red. Este evento es informativos y manejados de forma asíncrona. No permite modificar ni cancelar la solicitud.
onHeadersReceived (síncrono opcional)
Se activa cada vez que se recibe un encabezado de respuesta HTTP(S). Debido a los redireccionamientos y la autenticación esto puede ocurrir varias veces por solicitud. El propósito de este evento es permitir que las extensiones agregar, modificar y borrar encabezados de respuesta, como los encabezados de tipo de contenido entrante El almacenamiento directivas se procesan antes de que se active el evento. Por lo tanto, modifica encabezados como Cache-Control no influye en la caché del navegador. También te permite cancelar o redireccionar la solicitud.
onAuthRequired (síncrono opcional)
Se activa cuando una solicitud requiere la autenticación del usuario. Este evento puede controlarse de forma síncrona para proporcionar credenciales de autenticación. Ten en cuenta que las extensiones pueden proporcionar credenciales no válidas. Hasta pronto para no ingresar en un bucle infinito proporcionando credenciales no válidas de forma reiterada. Esto también se puede usar para cancelar la solicitud.
onBeforeRedirect
Se activa cuando un redireccionamiento está a punto de ejecutarse. Una respuesta HTTP puede activar un redireccionamiento código o por una extensión. Este evento es informativo y se maneja de forma asíncrona. No permite que modifiques o canceles la solicitud.
onResponseStarted
Se activa cuando se recibe el primer byte del cuerpo de la respuesta. Para las solicitudes HTTP, esto significa que el la línea de estado y los encabezados de respuesta. Este evento es informativo y se administra de forma asíncrona. No permite modificar ni cancelar la solicitud.
onCompleted
Se activa cuando una solicitud se procesa correctamente.
onErrorOccurred
Se activa cuando una solicitud no se puede procesar correctamente.

La API de solicitud web garantiza que se cumplan los requisitos de onCompleted o onErrorOccurred para cada solicitud. se activa como el evento final con una excepción: Si una solicitud se redirecciona a una URL data://, onBeforeRedirect es el último evento informado.

* Ten en cuenta que la API de solicitud web presenta una abstracción de la pila de red para la extensión. Internamente, una solicitud de URL se puede dividir en varias solicitudes HTTP (por ejemplo, para obtener de un archivo grande) o puede ser manejado por la pila de red sin comunicarse con el en cada red. Por este motivo, la API no proporciona los encabezados HTTP finales que se envían al en cada red. Por ejemplo, la extensión no puede ver ningún encabezado relacionado con el almacenamiento en caché.

Actualmente, no se proporcionan los siguientes encabezados al evento onBeforeSendHeaders. Esta lista no se garantiza que esté completado o estable.

  • Autorización
  • Cache-Control
  • Conexión
  • Duración del contenido
  • Host
  • If-Modified-Since
  • If-None-Match
  • Intervalo
  • Datos parciales
  • Pragma
  • Autorización de proxy
  • Conexión de proxy
  • Transfer-Encoding

A partir de Chrome 79, las modificaciones del encabezado de las solicitudes afectan el uso compartido de recursos entre dominios (CORS) y verificaciones de control. Si los encabezados modificados para solicitudes de origen cruzado no cumplen con los criterios, se producirán enviar una solicitud preliminar de CORS para preguntar al servidor si se aceptan esos encabezados Si realmente necesitas si modificas los encabezados de modo que infrinjan el protocolo CORS, debes especificar 'extraHeaders' en opt_extraInfoSpec Por otro lado, las modificaciones del encabezado de respuesta no funcionan para engañar al CORS. y verificaciones de control. Si necesitas engañar el protocolo CORS, también debes especificar 'extraHeaders' para el las modificaciones de respuestas.

A partir de Chrome 79, la API de webRequest no intercepta las solicitudes preliminares de CORS ni de forma predeterminada. Una solicitud preliminar de CORS para una URL de solicitud es visible para una extensión si hay Objeto de escucha con 'extraHeaders' especificado en opt_extraInfoSpec para la URL de la solicitud onBeforeRequest también puede tomar 'extraHeaders' desde Chrome 79.

A partir de Chrome 79, no se proporciona el siguiente encabezado de solicitud y no se puede modificar ni Se quitó sin especificar 'extraHeaders' en opt_extraInfoSpec:

  • Origen

A partir de Chrome 72, si necesitas modificar respuestas antes del bloqueo de lectura multiorigen (CORB) puede bloquear la respuesta, por lo que debes especificar 'extraHeaders' en opt_extraInfoSpec.

A partir de Chrome 72, los siguientes encabezados de solicitud no se proporcionan y no se pueden modificar o quitar sin especificar 'extraHeaders' en opt_extraInfoSpec:

  • Idioma de aceptación
  • Accept-Encoding
  • Referencia
  • Cookie

A partir de Chrome 72, el encabezado de respuesta Set-Cookie no se proporciona y no se puede modificar o quitar sin especificar 'extraHeaders' en opt_extraInfoSpec.

A partir de Chrome 89, el encabezado de respuesta X-Frame-Options no se puede modificar de manera efectiva o quitar sin especificar 'extraHeaders' en opt_extraInfoSpec.

La API de webRequest solo expone las solicitudes que la extensión tiene permiso para ver, según su host. permisos. Además, solo se puede acceder a los siguientes esquemas: http://, https://, ftp://, file://, ws:// (desde Chrome 58), wss:// (desde Chrome 58), urn: (desde Chrome 91) o chrome-extension:// Además, incluso ciertas solicitudes con URLs que usan uno de los esquemas anteriores están ocultos. Esto incluye chrome-extension://other_extension_id, donde other_extension_id no es el ID de la extensión para manejar la solicitud, https://www.google.com/chrome y otras principales de la funcionalidad del navegador. Además, se pueden enviar solicitudes XMLHttpRequest síncronas de tu extensión de los controladores de eventos de bloqueo para evitar interbloqueos. Ten en cuenta que para algunas de las los esquemas compatibles, el conjunto de eventos disponibles podría estar limitado debido a la naturaleza del protocolo correspondiente. Por ejemplo, para el archivo: scheme, únicamente onBeforeRequest, Es posible que se envíen onResponseStarted, onCompleted y onErrorOccurred.

A partir de Chrome 58, la API de webRequest admite la interceptación de la solicitud de protocolo de enlace de WebSocket. Como el protocolo de enlace se realiza por medio de una solicitud de actualización de HTTP, su flujo se ajusta a los webRequest. Ten en cuenta que la API no intercepta lo siguiente:

  • Mensajes individuales enviados a través de una conexión de WebSocket establecida.
  • Cierre de la conexión de WebSocket.

Los redireccionamientos no son compatibles con las solicitudes de WebSocket.

A partir de Chrome 72, una extensión podrá interceptar una solicitud solo si tiene host permisos para la URL solicitada y el iniciador de la solicitud.

A partir de Chrome 96, la API de webRequest admite la interceptación de WebTransport a través de HTTP/3. solicitud de protocolo de enlace. Como el protocolo de enlace se realiza por medio de una solicitud HTTP CONNECT, su flujo se ajusta en un modelo webRequest orientado a HTTP. Ten en cuenta lo siguiente:

  • Una vez que se establece la sesión, las extensiones no pueden observar ni intervenir en la sesión a través del API de webRequest.
  • Se ignora la modificación de los encabezados de solicitud HTTP en onBeforeSendHeaders.
  • WebTransport a través de HTTP/3 no admite redireccionamientos ni autenticaciones.

ID de solicitud

Cada solicitud se identifica con un ID de solicitud. Este ID es único dentro de una sesión del navegador y el el contexto de una extensión. Se mantiene constante durante el ciclo de vida de una solicitud y se puede usar para que coincida con eventos para la misma solicitud. Ten en cuenta que varias solicitudes HTTP se asignan a una solicitud web. en caso de redirección o autenticación HTTP.

Cómo registrar objetos de escucha de eventos

Si deseas registrar un objeto de escucha de eventos para una solicitud web, debes usar una variación en la addListener() habitual la función. Además de especificar una función de devolución de llamada, debes especificar un argumento de filtro y puedes especificar un argumento de información adicional opcional.

Los tres argumentos de addListener() de la API de solicitud web tienen las siguientes definiciones:

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

Este es un ejemplo de cómo escuchar el evento onBeforeRequest:

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

Cada llamada a addListener() toma una función de devolución de llamada obligatoria como primer parámetro. Esta devolución de llamada a la función un diccionario que contiene información sobre la solicitud de URL actual. El la información de este diccionario depende del tipo de evento específico, así como del contenido de opt_extraInfoSpec

Si el array opcional opt_extraInfoSpec contiene la cadena 'blocking' (solo se permite eventos específicos), la función de devolución de llamada se controla de forma síncrona. Esto significa que la solicitud está se bloqueará hasta que se muestre la función de devolución de llamada. En este caso, la devolución de llamada puede mostrar un webRequest.BlockingResponse, que determina el ciclo de vida adicional de la solicitud. Según según el contexto, esta respuesta permite cancelar o redireccionar una solicitud (onBeforeRequest), cancelar una solicitud o modificar encabezados (onBeforeSendHeaders, onHeadersReceived) cancelar una solicitud o proporcionar credenciales de autenticación (onAuthRequired).

Si el array opcional opt_extraInfoSpec contiene la cadena 'asyncBlocking' en su lugar (solo para onAuthRequired), la extensión puede generar la webRequest.BlockingResponse de forma asíncrona.

El objeto filter webRequest.RequestFilter permite limitar las solicitudes para las que se realizan eventos se activan en varias dimensiones:

URL
Patrones de URL, como *://www.google.com/foo*bar
Tipos
Tipos de solicitud como main_frame (un documento que se carga para un marco de nivel superior), sub_frame (un documento que se carga para un marco incorporado) y image (una imagen en un sitio web). Consulta webRequest.RequestFilter
ID de la pestaña
El identificador de una pestaña.
ID de ventana
Es el identificador de una ventana.

Según el tipo de evento, puedes especificar cadenas en opt_extraInfoSpec para solicitar acceso información adicional sobre la solicitud. Se usa para proporcionar información detallada solo sobre los datos de la solicitud si se solicita explícitamente.

Cómo controlar la autenticación

Para controlar las solicitudes de autenticación HTTP, agrega "webRequestAuthProvider". permiso a tu archivo de manifiesto:

{
  "permissions": [
    "webRequest",
    "webRequestAuthProvider"
  ]
}

Ten en cuenta que este permiso no es necesario para una extensión de política instalada con el permiso "webRequestBlocking"

Para proporcionar credenciales de forma síncrona, haz lo siguiente:

chrome.webRequest.onAuthRequired.addListener((details) => {
    return {
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    };
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['blocking']
);

Para proporcionar credenciales de forma asíncrona, haz lo siguiente:

chrome.webRequest.onAuthRequired.addListener((details, callback) => {
    callback({
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    });
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['asyncBlocking']
);

Detalles de implementación

Puede ser importante comprender varios detalles de implementación cuando se desarrolla una extensión que usa la API de solicitud web:

web_accessible_resources

Cuando una extensión usa las APIs de webRequest para redireccionar una solicitud de recurso público a un recurso al que no se puede acceder desde la Web, se bloquea y genera un error. Lo anterior se aplica incluso si el recurso al que no se puede acceder desde la Web es propiedad de la extensión de redireccionamiento. Para declarar recursos que se usarán con las APIs de declareWebRequest, se debe declarar el array "web_accessible_resources" y propagarse en el manifiesto, tal como se documenta aquí.

Resolución de conflictos

En la implementación actual de la API de solicitud web, una solicitud se considera cancelada si al menos una extensión indica que se cancele la solicitud. Si una extensión cancela una solicitud, extensiones reciben notificaciones de un evento onErrorOccurred. Solo una extensión puede redireccionar un solicitar o modificar un encabezado a la vez. Si más de una extensión intenta modificar la solicitud, la extensión instalada más recientemente ganará y se ignorarán todas las demás. Las extensiones no reciben notificaciones si se ignoró su instrucción de modificarla o redireccionarla.

Almacenamiento en caché

Chrome usa dos cachés: una en el disco y una muy rápida en la memoria. El ciclo de vida de un se adjunta a la vida útil de un proceso de renderización, que aproximadamente corresponde a una pestaña. Las solicitudes que se responden desde la caché en la memoria son invisibles para la API de solicitud web. Si un el controlador de solicitudes cambia su comportamiento (por ejemplo, el comportamiento según el cual se reciben bloqueada), una simple actualización de la página podría no respetar este comportamiento modificado. Para garantizar el comportamiento se realiza el cambio, llama a handlerBehaviorChanged() para vaciar la caché en la memoria. Pero no lo hagas a menudo; vaciar la caché es una operación muy costosa. No es necesario que llames handlerBehaviorChanged() después de registrar o cancelar el registro de un objeto de escucha de eventos

Marcas de tiempo

Solo se garantiza que la propiedad timestamp de los eventos de solicitud web tenga coherencia interna. Comparar un evento con otro te dará el desplazamiento correcto entre ellos, pero, con la hora actual en la extensión (por ejemplo, mediante (new Date()).getTime()) dar resultados inesperados.

Manejo de errores

Si intentas registrar un evento con argumentos no válidos, se mostrará un error de JavaScript. no se registrará el controlador de eventos. Si se produce un error mientras se maneja un evento o si un el controlador de eventos devuelve una respuesta de bloqueo no válida, se registra un mensaje de error en el consola y se ignora el controlador para esa solicitud.

Ejemplos

En el siguiente ejemplo, se muestra cómo bloquear todas las solicitudes a www.evil.com:

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

Como esta función usa un controlador de eventos de bloqueo, requiere el "webRequest" y el "webRequestBlocking" en el archivo de manifiesto.

El siguiente ejemplo logra el mismo objetivo de una manera más eficiente porque las solicitudes que no son orientados a www.evil.com no necesitan pasarse a la extensión:

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

En el siguiente ejemplo, se muestra cómo borrar el encabezado de usuario-agente de todas las solicitudes:

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

Para probar la API de chrome.webRequest, haz lo siguiente: instala la muestra de webRequest desde chrome-extension-samples en un repositorio de confianza.

Tipos

BlockingResponse

Muestra el valor de los controladores de eventos que tienen el carácter de bloqueo extraInfoSpec. Permite que el controlador de eventos modifique las solicitudes de red.

Propiedades

  • authCredentials

    objeto opcional

    Solo se utiliza como respuesta al evento onAuthRequired. Si se configura, la solicitud se realiza con las credenciales proporcionadas.

    • contraseña

      string

    • username

      string

  • cancelar

    booleano opcional

    Si es "true", la solicitud se cancela. Esto evita que se envíe la solicitud. Se puede usar como respuesta a los eventos onBeforeRequest, onBeforeSendHeaders, onHeadersReceived y onAuthRequired.

  • redirectUrl

    string opcional

    Solo se utiliza como respuesta a los eventos onBeforeRequest y onHeadersReceived. Si se configura, no se envía ni se completa la solicitud original y, en su lugar, se redirecciona a la URL dada. Se permiten los redireccionamientos a esquemas que no sean HTTP, como data:. Los redireccionamientos iniciados por una acción de redireccionamiento usan el método de solicitud original para el redireccionamiento, con una excepción: si el redireccionamiento se inicia en la etapa onHeadersReceived, el redireccionamiento se emitirá con el método GET. Se ignoran los redireccionamientos de las URLs con los esquemas ws:// y wss://.

  • requestHeaders

    HttpHeaders opcional

    Solo se usa como respuesta al evento onBeforeSendHeaders. Si se configura, la solicitud se realiza con estos encabezados de solicitud en su lugar.

  • responseHeaders

    HttpHeaders opcional

    Solo se utiliza como respuesta al evento onHeadersReceived. Si se configura, se supone que el servidor respondió con estos encabezados de respuesta. Solo muestra responseHeaders si realmente quieres modificar los encabezados para limitar la cantidad de conflictos (solo una extensión puede modificar responseHeaders para cada solicitud).

FormDataItem

Chrome 66 y versiones posteriores

Contiene datos que se pasaron dentro de los datos del formulario. En el caso de los formularios con codificación de URL, se almacenan como strings si los datos son strings utf-8 y, de lo contrario, como ArrayBuffer. El formato de datos de formulario es ArrayBuffer. Si form-data representa la carga de un archivo, es una string con nombre de archivo, si se proporcionó ese nombre.

Enum

ArrayBuffer

string

HttpHeaders

Un array de encabezados HTTP. Cada encabezado se representa como un diccionario que contiene las claves name y value o binaryValue.

Tipo

object[]

Propiedades

  • binaryValue

    number[] opcional

    Valor del encabezado HTTP si no puede representarse con UTF-8, almacenado como valores de bytes individuales (0..255).

  • nombre

    string

    El nombre del encabezado HTTP.

  • valor

    string opcional

    El valor del encabezado HTTP si se puede representar con UTF-8.

IgnoredActionType

Chrome 70 y versiones posteriores

Enum

"redirect"

"request_headers"

&quot;response_headers&quot;

&quot;auth_credentials&quot;

OnAuthRequiredOptions

Chrome 44 y versiones posteriores

Enum

&quot;responseHeaders&quot;
Especifica que los encabezados de respuesta se deben incluir en el evento.

"Blocking"
Especifica que la solicitud se bloquea hasta que se muestre la función de devolución de llamada.

&quot;asyncBlocking&quot;
Especifica que la función de devolución de llamada se controla de forma asíncrona.

"extraHeaders"
Especifica que los encabezados pueden infringir el uso compartido de recursos entre dominios (CORS).

OnBeforeRedirectOptions

Chrome 44 y versiones posteriores

Enum

&quot;responseHeaders&quot;
Especifica que los encabezados de respuesta se deben incluir en el evento.

"extraHeaders"
Especifica que los encabezados pueden infringir el uso compartido de recursos entre dominios (CORS).

OnBeforeRequestOptions

Chrome 44 y versiones posteriores

Enum

"Blocking"
Especifica que la solicitud se bloquea hasta que se muestre la función de devolución de llamada.

&quot;requestBody&quot;
Especifica que el cuerpo de la solicitud se debe incluir en el evento.

"extraHeaders"
Especifica que los encabezados pueden infringir el uso compartido de recursos entre dominios (CORS).

OnBeforeSendHeadersOptions

Chrome 44 y versiones posteriores

Enum

&quot;requestHeaders&quot;
Especifica que el encabezado de la solicitud se debe incluir en el evento.

"Blocking"
Especifica que la solicitud se bloquea hasta que se muestre la función de devolución de llamada.

"extraHeaders"
Especifica que los encabezados pueden infringir el uso compartido de recursos entre dominios (CORS).

OnCompletedOptions

Chrome 44 y versiones posteriores

Enum

&quot;responseHeaders&quot;
Especifica que los encabezados de respuesta se deben incluir en el evento.

"extraHeaders"
Especifica que los encabezados pueden infringir el uso compartido de recursos entre dominios (CORS).

OnErrorOccurredOptions

Chrome 79 y versiones posteriores

Valor

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 y versiones posteriores

Enum

"Blocking"
Especifica que la solicitud se bloquea hasta que se muestre la función de devolución de llamada.

&quot;responseHeaders&quot;
Especifica que los encabezados de respuesta se deben incluir en el evento.

"extraHeaders"
Especifica que los encabezados pueden infringir el uso compartido de recursos entre dominios (CORS).

OnResponseStartedOptions

Chrome 44 y versiones posteriores

Enum

&quot;responseHeaders&quot;
Especifica que los encabezados de respuesta se deben incluir en el evento.

"extraHeaders"
Especifica que los encabezados pueden infringir el uso compartido de recursos entre dominios (CORS).

OnSendHeadersOptions

Chrome 44 y versiones posteriores

Enum

&quot;requestHeaders&quot;
Especifica que el encabezado de la solicitud se debe incluir en el evento.

"extraHeaders"
Especifica que los encabezados pueden infringir el uso compartido de recursos entre dominios (CORS).

RequestFilter

Un objeto que describe filtros para aplicar a eventos de webRequest.

Propiedades

  • tabId

    número opcional

  • Tipos

    ResourceType[] opcional

    Una lista de los tipos de solicitud. Se filtrarán las solicitudes que no coincidan con ninguno de los tipos.

  • url

    string[]

    Una lista de URLs o patrones de URL. Se filtrarán las solicitudes que no coincidan con ninguna de las URLs.

  • windowId

    número opcional

ResourceType

Chrome 44 y versiones posteriores

Enum

"main_frame"
Especifica el recurso como marco principal.

"sub_frame"
Especifica el recurso como un submarco.

"stylesheet"
Especifica el recurso como una hoja de estilo.

&quot;script&quot;
Especifica el recurso como una secuencia de comandos.

"image"
Especifica el recurso como una imagen.

"font"
Especifica el recurso como una fuente.

"object"
Especifica el recurso como un objeto.

&quot;xmlhttprequest&quot;
Especifica el recurso como una XMLHttpRequest.

"ping"
Especifica el recurso como un ping.

&quot;csp_report&quot;
Especifica el recurso como un informe de la Política de Seguridad del Contenido (CSP).

"media"
Especifica el recurso como un objeto multimedia.

"websocket"
Especifica el recurso como un WebSocket.

"webbundle"
Especifica el recurso como un WebBundle.

"other"
Especifica el recurso como un tipo no incluido en los tipos enumerados.

UploadData

Contiene datos que se subieron en una solicitud de URL.

Propiedades

  • bytes

    Cualquier opcional

    Un ArrayBuffer con una copia de los datos.

  • archivo

    string opcional

    Es una cadena con la ruta de acceso y el nombre del archivo.

Propiedades

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

La cantidad máxima de veces que se puede llamar a handlerBehaviorChanged por intervalo sostenido de 10 minutos. handlerBehaviorChanged es una llamada a función costosa a la que no se debería llamar con frecuencia.

Valor

20

Métodos

handlerBehaviorChanged()

Promesa
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)

Se debe llamar cuando cambie el comportamiento de los controladores de webRequest para evitar un manejo incorrecto debido al almacenamiento en caché. Esta llamada a función es costosa. No lo llames a menudo.

Parámetros

  • callback

    función opcional

    El parámetro callback se ve de la siguiente manera:

    () => void

Muestra

  • Promesa<void>

    Chrome 116 y versiones posteriores

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.

Eventos

onActionIgnored

Chrome 70 y versiones posteriores
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

Se activa cuando se ignora la modificación propuesta por una extensión para una solicitud de red. Esto sucede en caso de conflictos con otras extensiones.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (details: object) => void

    • detalles

      objeto

      • La acción propuesta que se ignoró.

      • requestId

        string

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.

onAuthRequired

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

Se activa cuando se recibe un error de autenticación. El objeto de escucha tiene tres opciones: puede proporcionar credenciales de autenticación, cancelar la solicitud y mostrar la página de error, o no realizar ninguna acción sobre el desafío. Si se proporcionan credenciales de usuario incorrectas, es posible que se lo llame varias veces para la misma solicitud. Ten en cuenta que solo se debe especificar uno de los modos 'blocking' o 'asyncBlocking' en el parámetro extraInfoSpec.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

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

    • detalles

      objeto

      • oponente

        objeto

        El servidor que solicita autenticación

        • host

          string

        • puerto

          número

      • documentId

        string

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida del documento.

      • frameId

        número

        El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (type es main_frame o sub_frame), frameId indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores

        El tipo de marco en el que se produjo la solicitud.

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores

        El origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.

      • isProxy

        boolean

        Verdadero para Proxy-Authenticate, falso para WWW-Authenticate.

      • method

        string

        Método HTTP estándar

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores

        El UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.

      • parentFrameId

        número

        ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.

      • dominio

        string opcional

        El dominio de autenticación que proporciona el servidor, si existe.

      • requestId

        string

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.

      • responseHeaders

        HttpHeaders opcional

        Los encabezados de respuesta HTTP que se recibieron junto con esta respuesta.

      • esquema

        string

        El esquema de autenticación, p.ej., Básico o Resumen.

      • Código de error

        número

        Chrome 43 y versiones posteriores

        Código de estado HTTP estándar que muestra el servidor.

      • statusLine

        string

        Línea de estado HTTP de la respuesta o el mensaje "HTTP/0.9 200 OK" para respuestas HTTP/0.9 (es decir, respuestas que no tienen una línea de estado) o una cadena vacía si no hay encabezados.

      • tabId

        número

        El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.

      • timeStamp

        número

        El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

    • asyncCallback

      función opcional

      Chrome 58 y versiones posteriores

      El parámetro asyncCallback se ve de la siguiente manera:

      (response: BlockingResponse) => void

    • muestra

      BlockingResponse | indefinido

      Si se encuentra "bloqueando" se especifica en el campo "extraInfoSpec" , el objeto de escucha de eventos debe mostrar un objeto de este tipo.

  • filter
  • extraInfoSpec

onBeforeRedirect

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

Se activa cuando está por ocurrir un redireccionamiento iniciado por el servidor.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (details: object) => void

    • detalles

      objeto

      • documentId

        string

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida del documento.

      • frameId

        número

        El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (type es main_frame o sub_frame), frameId indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores

        El tipo de marco en el que se produjo la solicitud.

      • fromCache

        boolean

        Indica si esta respuesta se recuperó de la caché del disco.

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores

        El origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.

      • ip

        string opcional

        La dirección IP del servidor al que se envió la solicitud. Ten en cuenta que puede ser una dirección IPv6 literal.

      • method

        string

        Método HTTP estándar

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores

        El UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.

      • parentFrameId

        número

        ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.

      • redirectUrl

        string

        La nueva URL.

      • requestId

        string

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.

      • responseHeaders

        HttpHeaders opcional

        Los encabezados de respuesta HTTP que se recibieron junto con este redireccionamiento.

      • Código de error

        número

        Código de estado HTTP estándar que muestra el servidor.

      • statusLine

        string

        Línea de estado HTTP de la respuesta o el mensaje "HTTP/0.9 200 OK" para respuestas HTTP/0.9 (es decir, respuestas que no tienen una línea de estado) o una cadena vacía si no hay encabezados.

      • tabId

        número

        El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.

      • timeStamp

        número

        El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

  • filter
  • extraInfoSpec

onBeforeRequest

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

Se activa cuando está por ocurrir una solicitud.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (details: object) => BlockingResponse | undefined

    • detalles

      objeto

      • documentId

        string opcional

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • documentLifecycle
        Chrome 106 y versiones posteriores

        El ciclo de vida del documento.

      • frameId

        número

        El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (type es main_frame o sub_frame), frameId indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña.

      • frameType
        Chrome 106 y versiones posteriores

        El tipo de marco en el que se produjo la solicitud.

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores

        El origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.

      • method

        string

        Método HTTP estándar

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores

        El UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.

      • parentFrameId

        número

        ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.

      • requestBody

        objeto opcional

        Contiene los datos del cuerpo de la solicitud HTTP. Solo se proporciona si extraInfoSpec contiene “requestBody”.

        • error

          string opcional

          Se producen errores cuando se obtienen los datos del cuerpo de la solicitud.

        • formData

          objeto opcional

          Si el método de solicitud es POST y el cuerpo es una secuencia de pares clave-valor codificados en UTF8, codificados como multipart/form-data o application/x-www-form-urlencoded, este diccionario está presente y, para cada clave, contiene la lista de todos los valores de esa clave. Si los datos son de otro tipo de medio o si tienen errores de formato, el diccionario no estará presente. Un valor de ejemplo de este diccionario es {'key': ['value1', 'value2']}.

        • sin procesar

          UploadData[] opcional

          Si el método de solicitud es PUT o POST, y el cuerpo aún no se analiza en formData, los elementos del cuerpo de la solicitud sin analizar se encuentran en este array.

      • requestId

        string

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.

      • tabId

        número

        El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.

      • timeStamp

        número

        El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

    • muestra

      BlockingResponse | indefinido

      Si se encuentra "bloqueando" se especifica en el campo "extraInfoSpec" , el objeto de escucha de eventos debe mostrar un objeto de este tipo.

  • filter
  • extraInfoSpec

onBeforeSendHeaders

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

Se activa antes de enviar una solicitud HTTP, una vez que los encabezados de la solicitud están disponibles. Esto puede ocurrir después de que se establezca una conexión TCP al servidor, pero antes de que se envíen los datos HTTP.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (details: object) => BlockingResponse | undefined

    • detalles

      objeto

      • documentId

        string

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida del documento.

      • frameId

        número

        El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (type es main_frame o sub_frame), frameId indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores

        El tipo de marco en el que se produjo la solicitud.

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores

        El origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.

      • method

        string

        Método HTTP estándar

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores

        El UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.

      • parentFrameId

        número

        ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.

      • requestHeaders

        HttpHeaders opcional

        Los encabezados de la solicitud HTTP que se enviarán con esta solicitud.

      • requestId

        string

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.

      • tabId

        número

        El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.

      • timeStamp

        número

        El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

    • muestra

      BlockingResponse | indefinido

      Si se encuentra "bloqueando" se especifica en el campo "extraInfoSpec" , el objeto de escucha de eventos debe mostrar un objeto de este tipo.

  • filter
  • extraInfoSpec

onCompleted

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

Se activa cuando se completa una solicitud.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (details: object) => void

    • detalles

      objeto

      • documentId

        string

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida del documento.

      • frameId

        número

        El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (type es main_frame o sub_frame), frameId indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores

        El tipo de marco en el que se produjo la solicitud.

      • fromCache

        boolean

        Indica si esta respuesta se recuperó de la caché del disco.

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores

        El origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.

      • ip

        string opcional

        La dirección IP del servidor al que se envió la solicitud. Ten en cuenta que puede ser una dirección IPv6 literal.

      • method

        string

        Método HTTP estándar

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores

        El UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.

      • parentFrameId

        número

        ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.

      • requestId

        string

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.

      • responseHeaders

        HttpHeaders opcional

        Los encabezados de respuesta HTTP que se recibieron junto con esta respuesta.

      • Código de error

        número

        Código de estado HTTP estándar que muestra el servidor.

      • statusLine

        string

        Línea de estado HTTP de la respuesta o el mensaje "HTTP/0.9 200 OK" para respuestas HTTP/0.9 (es decir, respuestas que no tienen una línea de estado) o una cadena vacía si no hay encabezados.

      • tabId

        número

        El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.

      • timeStamp

        número

        El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

  • filter
  • extraInfoSpec

    OnCompletedOptions[] opcional

onErrorOccurred

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

Se activa cuando se produce un error.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (details: object) => void

    • detalles

      objeto

      • documentId

        string

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud. Este valor no está presente si la solicitud es una navegación de un marco.

      • Chrome 106 y versiones posteriores

        El ciclo de vida del documento.

      • error

        string

        La descripción del error. No se garantiza que esta cadena siga siendo retrocompatible entre versiones. No debe analizar su contenido ni actuar en función de este.

      • frameId

        número

        El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (type es main_frame o sub_frame), frameId indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores

        El tipo de marco en el que se produjo la solicitud.

      • fromCache

        boolean

        Indica si esta respuesta se recuperó de la caché del disco.

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores

        El origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.

      • ip

        string opcional

        La dirección IP del servidor al que se envió la solicitud. Ten en cuenta que puede ser una dirección IPv6 literal.

      • method

        string

        Método HTTP estándar

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores

        El UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.

      • parentFrameId

        número

        ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.

      • requestId

        string

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.

      • tabId

        número

        El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.

      • timeStamp

        número

        El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

  • filter
  • extraInfoSpec

onHeadersReceived

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

Se activa cuando se reciben los encabezados de respuesta HTTP de una solicitud.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (details: object) => BlockingResponse | undefined

    • detalles

      objeto

      • documentId

        string

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida del documento.

      • frameId

        número

        El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (type es main_frame o sub_frame), frameId indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores

        El tipo de marco en el que se produjo la solicitud.

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores

        El origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.

      • method

        string

        Método HTTP estándar

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores

        El UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.

      • parentFrameId

        número

        ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.

      • requestId

        string

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.

      • responseHeaders

        HttpHeaders opcional

        Los encabezados de respuesta HTTP que se recibieron con esta respuesta.

      • Código de error

        número

        Chrome 43 y versiones posteriores

        Código de estado HTTP estándar que muestra el servidor.

      • statusLine

        string

        Línea de estado HTTP de la respuesta o el mensaje "HTTP/0.9 200 OK" cadena para respuestas HTTP/0.9 (es decir, respuestas que no tienen una línea de estado).

      • tabId

        número

        El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.

      • timeStamp

        número

        El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

    • muestra

      BlockingResponse | indefinido

      Si se encuentra "bloqueando" se especifica en el campo "extraInfoSpec" , el objeto de escucha de eventos debe mostrar un objeto de este tipo.

  • filter
  • extraInfoSpec

onResponseStarted

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

Se activa cuando se recibe el primer byte del cuerpo de la respuesta. Para las solicitudes HTTP, esto significa que la línea de estado y los encabezados de respuesta están disponibles.

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (details: object) => void

    • detalles

      objeto

      • documentId

        string

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida del documento.

      • frameId

        número

        El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (type es main_frame o sub_frame), frameId indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores

        El tipo de marco en el que se produjo la solicitud.

      • fromCache

        boolean

        Indica si esta respuesta se recuperó de la caché del disco.

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores

        El origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.

      • ip

        string opcional

        La dirección IP del servidor al que se envió la solicitud. Ten en cuenta que puede ser una dirección IPv6 literal.

      • method

        string

        Método HTTP estándar

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores

        El UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.

      • parentFrameId

        número

        ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.

      • requestId

        string

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.

      • responseHeaders

        HttpHeaders opcional

        Los encabezados de respuesta HTTP que se recibieron junto con esta respuesta.

      • Código de error

        número

        Código de estado HTTP estándar que muestra el servidor.

      • statusLine

        string

        Línea de estado HTTP de la respuesta o el mensaje "HTTP/0.9 200 OK" para respuestas HTTP/0.9 (es decir, respuestas que no tienen una línea de estado) o una cadena vacía si no hay encabezados.

      • tabId

        número

        El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.

      • timeStamp

        número

        El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

  • filter
  • extraInfoSpec

onSendHeaders

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

Se activa justo antes de que se envíe una solicitud al servidor (las modificaciones de devoluciones de llamada anteriores onBeforeSendHeaders son visibles cuando se activa onSendHeaders).

Parámetros

  • callback

    función

    El parámetro callback se ve de la siguiente manera:

    (details: object) => void

    • detalles

      objeto

      • documentId

        string

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida del documento.

      • frameId

        número

        El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (type es main_frame o sub_frame), frameId indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores

        El tipo de marco en el que se produjo la solicitud.

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores

        El origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.

      • method

        string

        Método HTTP estándar

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores

        El UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.

      • parentFrameId

        número

        ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.

      • requestHeaders

        HttpHeaders opcional

        Los encabezados de la solicitud HTTP que se enviaron con esta solicitud.

      • requestId

        string

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.

      • tabId

        número

        El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.

      • timeStamp

        número

        El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

  • filter
  • extraInfoSpec