chrome.webRequest

Descripción

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

Permisos

webRequest

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

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

webRequestBlocking

Es obligatorio para registrar los controladores de eventos de bloqueo. A partir de Manifest V3, esto solo está disponible para extensiones instaladas de políticas.

webRequestAuthProvider

Es obligatorio usar el método onAuthRequired. Consulta Cómo administrar 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 síncronos te permitirán interceptar, bloquear o modificar una solicitud.

Aquí se ilustra el ciclo de vida del evento para las 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 (opcionalmente síncrono)
Se activa cuando una solicitud está por suceder. Este evento se envía antes de que se establezca cualquier conexión TCP y se puede usar para cancelar o redireccionar solicitudes.
onBeforeSendHeaders (opcionalmente síncrono)
Se activa cuando una solicitud está por suceder y se preparan los encabezados iniciales. El evento está destinado a permitir que las extensiones agreguen, modifiquen y borren encabezados de solicitud (*). El evento onBeforeSendHeaders se pasa a todos los suscriptores, por lo que diferentes suscriptores pueden intentar modificar la solicitud. Consulta la sección Detalles de implementación para obtener información sobre cómo se controla esto. Este evento se puede usar para cancelar la solicitud.
onSendHeaders
Se activa después de que todas las extensiones hayan tenido la oportunidad de modificar los encabezados de la solicitud y se presenta la versión (*) final. El evento se activa antes de que los encabezados se envíen a la red. Este evento es informativo y se controla de forma asíncrona. No permite modificar ni cancelar la solicitud.
onHeadersReceived (opcionalmente síncrono)
Se activa cada vez que se recibe un encabezado de respuesta HTTP(S). Debido a los redireccionamientos y las solicitudes de autenticación, esto puede ocurrir varias veces por solicitud. Este evento está pensado para permitir que las extensiones agreguen, modifiquen y borren encabezados de respuesta, como los encabezados entrantes de tipo de contenido. Las directivas de almacenamiento en caché se procesan antes de que se active este evento, por lo que la modificación de encabezados como Cache-Control no tiene influencia en la caché del navegador. También te permite cancelar o redireccionar la solicitud.
onAuthRequired (opcionalmente síncrono)
Se activa cuando una solicitud requiere la autenticación del usuario. Este evento se puede controlar de forma síncrona para proporcionar credenciales de autenticación. Ten en cuenta que las extensiones pueden proporcionar credenciales no válidas. Ten cuidado de no ingresar a un bucle infinito cuando proporciones credenciales no válidas de forma reiterada. Esto también se puede usar para cancelar la solicitud.
onBeforeRedirect
Se activa cuando se está por ejecutar un redireccionamiento. Un redireccionamiento se puede activar con un código de respuesta HTTP o con una extensión. Este evento es informativo y se controla de forma asíncrona. No te permite modificar ni cancelar la solicitud.
onResponseStarted
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. Este evento es informativo y se controla 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 pudo procesar correctamente.

La API de solicitud web garantiza que, para cada solicitud, se active onCompleted o onErrorOccurred como el evento final, con una excepción: si una solicitud se redirecciona a una URL de data://, onBeforeRedirect será el último evento informado.

* Ten en cuenta que la API de solicitud web presenta una abstracción de la pila de red a la extensión. Internamente, una solicitud de URL puede dividirse en varias solicitudes HTTP (por ejemplo, para recuperar rangos de bytes individuales de un archivo grande) o la puede manejar la pila de red sin comunicarse con la red. Por este motivo, la API no proporciona los encabezados HTTP finales que se envían a la red. Por ejemplo, todos los encabezados relacionados con el almacenamiento en caché son invisibles para la extensión.

Por el momento, los siguientes encabezados no se proporcionan al evento onBeforeSendHeaders. No se garantiza que esta lista esté completa o estable.

  • Autorización
  • Cache-Control
  • Conexión
  • Content-Length
  • Host
  • If-Modified-Since
  • If-None-Match
  • Rango If
  • Datos parciales
  • Pragma
  • Autorización proxy
  • Conexión de proxy
  • Codificación por transferencia

A partir de Chrome 79, las modificaciones del encabezado de las solicitudes afectan las verificaciones del uso compartido de recursos entre dominios (CORS). Si los encabezados modificados para solicitudes de origen cruzado no cumplen con los criterios, se enviará una verificación previa de CORS para preguntarle al servidor si se pueden aceptar esos encabezados. Si realmente necesitas modificar encabezados para infringir el protocolo CORS, debes especificar 'extraHeaders' en opt_extraInfoSpec. Por otro lado, las modificaciones del encabezado de respuesta no funcionan para engañar a las verificaciones de CORS. Si necesitas engañar al protocolo CORS, también debes especificar 'extraHeaders' para las modificaciones de la respuesta.

A partir de Chrome 79, la API de webRequest no intercepta las solicitudes y respuestas preliminares de CORS de forma predeterminada. Una extensión puede ver una solicitud preliminar de CORS para una URL de solicitud si hay un objeto de escucha con 'extraHeaders' especificado en opt_extraInfoSpec para la URL de la solicitud. onBeforeRequest también puede descargar 'extraHeaders' de Chrome 79.

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

  • Origen

A partir de Chrome 72, si necesitas modificar las respuestas antes de que el bloqueo de lectura de origen cruzado (CORB) pueda bloquear la respuesta, debes especificar 'extraHeaders' en opt_extraInfoSpec.

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

  • Aceptar idioma
  • Accept-Encoding
  • Referencia
  • Cookie

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

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

La API de webRequest solo expone las solicitudes que la extensión tiene permiso para ver, según sus permisos de host. Además, solo se puede acceder a los siguientes esquemas: http://, https://, ftp://, file://, ws:// (a partir de 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 ocultas. Entre estos, se incluyen chrome-extension://other_extension_id, en el que other_extension_id no es el ID de la extensión que controlará la solicitud, https://www.google.com/chrome y otras solicitudes sensibles esenciales para la funcionalidad del navegador. Además, las XMLHttpRequest síncronas de tu extensión se ocultan y no bloquean los controladores de eventos para evitar los interbloqueos. Ten en cuenta que, para algunos de los esquemas compatibles, el conjunto de eventos disponibles puede estar limitado debido a la naturaleza del protocolo correspondiente. Por ejemplo, para el archivo schema, solo se pueden enviar onBeforeRequest, 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. Dado que el protocolo de enlace se realiza mediante una solicitud de actualización HTTP, su flujo se ajusta al modelo de webRequest orientado a HTTP. Ten en cuenta que la API no intercepta lo siguiente:

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

Los redireccionamientos no son compatibles para las solicitudes de WebSocket.

A partir de Chrome 72, una extensión podrá interceptar una solicitud solo si tiene permisos de host 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 la solicitud de protocolo de enlace HTTP/3. Dado que el protocolo de enlace se realiza mediante una solicitud HTTP CONNECT, su flujo se ajusta al modelo de 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 de la API de webRequest.
  • Se ignora la modificación de los encabezados de solicitud HTTP en onBeforeSendHeaders.
  • Los redireccionamientos y las autenticaciones no son compatibles con WebTransport a través de HTTP/3.

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 contexto de una extensión. Se mantiene constante durante el ciclo de vida de una solicitud y se puede usar para hacer coincidir eventos para la misma solicitud. Ten en cuenta que varias solicitudes HTTP se asignan a una solicitud web en caso de redireccionamiento HTTP o autenticación HTTP.

Registra objetos de escucha de eventos

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

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

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

A continuación, se muestra un ejemplo de escucha del 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 función de devolución de llamada recibe un diccionario que contiene información sobre la solicitud de URL actual. La información que contiene este diccionario depende del tipo de evento específico y del contenido de opt_extraInfoSpec.

Si el array opcional opt_extraInfoSpec contiene la cadena 'blocking' (solo se permite para eventos específicos), la función de devolución de llamada se controla de forma síncrona. Eso significa que se bloquea la solicitud hasta que se muestra 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 el contexto, esta respuesta permite cancelar o redireccionar una solicitud (onBeforeRequest), cancelarla o modificar encabezados (onBeforeSendHeaders, onHeadersReceived), y cancelar una solicitud o proporcionar credenciales de autenticación (onAuthRequired).

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

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

URLs
Patrones de URL, como *://www.google.com/foo*bar.
Tipos
Tipos de solicitudes, 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
Es 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 información adicional sobre la solicitud. Se usa para proporcionar información detallada sobre los datos de la solicitud solo si se solicita explícitamente.

Cómo controlar la autenticación

Para controlar las solicitudes de autenticación HTTP, agrega el permiso "webRequestAuthProvider" al archivo de manifiesto:

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

Ten en cuenta que este permiso no es necesario para una extensión instalada de política 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 la implementación

Es importante comprender varios detalles de la implementación cuando desarrollas 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 generará un error. Lo anterior es válido incluso si el recurso al que no se puede acceder desde la Web es propiedad de la extensión de redireccionamiento. A fin de declarar recursos para usar con las APIs declarativeWebRequest, se debe declarar y propagar el array "web_accessible_resources" en el manifiesto, 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. Si una extensión cancela una solicitud, todas las extensiones reciben una notificación de un evento onErrorOccurred. Solo una extensión puede redireccionar una solicitud o modificar un encabezado a la vez. Si más de una extensión intenta modificar la solicitud, ganará la extensión instalada más recientemente y se ignorará el resto. No se notifica a una extensión si se ignora la instrucción de modificación o redireccionamiento.

Almacenamiento en caché

Chrome utiliza dos memorias caché: una en el disco y otra muy rápida en la memoria. La vida útil de una caché en la memoria se vincula a la vida útil de un proceso de renderización, que corresponde, aproximadamente, a una pestaña. Las solicitudes que se responden desde la caché de la memoria son invisibles para la API de solicitud web. Si un controlador de solicitudes cambia su comportamiento (por ejemplo, el comportamiento en el que se bloquean las solicitudes), es posible que una actualización simple de la página no respete este comportamiento modificado. Para asegurarte de que se aplique el cambio de comportamiento, llama a handlerBehaviorChanged() para vaciar la caché de la memoria. Pero no lo hagas con frecuencia, ya que vaciar la caché es una operación muy costosa. No es necesario llamar a 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. La comparación de un evento con otro te proporcionará el desplazamiento correcto entre ellos, pero compararlos con la hora actual dentro de la extensión (a través de (new Date()).getTime(), por ejemplo) puede dar resultados inesperados.

Manejo de errores

Si intentas registrar un evento con argumentos no válidos, se arrojará un error de JavaScript y no se registrará el controlador del evento. Si se arroja un error mientras se maneja un evento o si un controlador de eventos muestra una respuesta de bloqueo no válida, se registra un mensaje de error en la consola de la extensión 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 utiliza un controlador de eventos de bloqueo, requiere los permisos "webRequest" y "webRequestBlocking" en el archivo de manifiesto.

En el siguiente ejemplo, se logra el mismo objetivo de una manera más eficiente, ya que las solicitudes que no están segmentadas 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 User-Agent 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, instala la muestra de webRequest del repositorio chrome-extension-samples.

Tipos

BlockingResponse

Muestra un valor para los controladores de eventos que tienen aplicado el extraInfoSpec “bloqueo”. Permite que el controlador de eventos modifique las solicitudes de red.

Propiedades

  • authCredentials

    objeto opcional

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

    • contraseña

      cadena

    • username

      cadena

  • cancelar

    booleano opcional

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

  • redirectUrl

    cadena opcional

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

  • requestHeaders

    HttpHeaders opcional

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

  • responseHeaders

    HttpHeaders opcional

    Solo se usa como respuesta al evento onHeadersReceived. Si se establece, se supone que el servidor respondió con estos encabezados de respuesta en su lugar. Muestra responseHeaders solo 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. Para el formato con codificación URL, se almacena como una cadena si los datos son una cadena utf-8 y, de lo contrario, como ArrayBuffer. Para form-data es ArrayBuffer. Si los datos del formulario representan la carga de un archivo, se trata de una cadena con el nombre de archivo, si se proporciona el nombre de archivo.

Enum

ArrayBuffer

cadena

HttpHeaders

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

Tipo

objeto

Propiedades

  • binaryValue

    number[] opcional

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

  • name

    cadena

    Nombre del encabezado HTTP.

  • value

    cadena opcional

    Valor del encabezado HTTP si se puede representar mediante UTF-8.

IgnoredActionType

Chrome 70 y versiones posteriores

Enum

"request_headers"

"response_headers":

"auth_credentials"

OnAuthRequiredOptions

Chrome 44 y versiones posteriores

Enum

"responseHeaders"
Especifica que los encabezados de respuesta se deben incluir en el evento.

"bloqueo"
Especifica que la solicitud está bloqueada hasta que se muestra la función de devolución de llamada.

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

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

OnBeforeRedirectOptions

Chrome 44 y versiones posteriores

Enum

"responseHeaders"
Especifica que los encabezados de respuesta se deben incluir en el evento.

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

OnBeforeRequestOptions

Chrome 44 y versiones posteriores

Enum

"bloqueo"
Especifica que la solicitud está bloqueada hasta que se muestra la función de devolución de llamada.

"requestBody"
Especifica que el cuerpo de la solicitud debe incluirse en el evento.

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

OnBeforeSendHeadersOptions

Chrome 44 y versiones posteriores

Enum

"requestHeaders"
Especifica que el encabezado de la solicitud debe incluirse en el evento.

"bloqueo"
Especifica que la solicitud está bloqueada hasta que se muestra la función de devolución de llamada.

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

OnCompletedOptions

Chrome 44 y versiones posteriores

Enum

"responseHeaders"
Especifica que los encabezados de respuesta se deben incluir en el evento.

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

OnErrorOccurredOptions

Chrome 79 y versiones posteriores

Valor

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 y versiones posteriores

Enum

"bloqueo"
Especifica que la solicitud está bloqueada hasta que se muestra la función de devolución de llamada.

"responseHeaders"
Especifica que los encabezados de respuesta se deben incluir en el evento.

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

OnResponseStartedOptions

Chrome 44 y versiones posteriores

Enum

"responseHeaders"
Especifica que los encabezados de respuesta se deben incluir en el evento.

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

OnSendHeadersOptions

Chrome 44 y versiones posteriores

Enum

"requestHeaders"
Especifica que el encabezado de la solicitud debe incluirse en el evento.

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

RequestFilter

Un objeto que describe los filtros que se aplicarán a los eventos webRequest.

Propiedades

  • tabId

    número opcional

  • tipos

    ResourceType[] opcional

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

  • urls

    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.

"script"
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.

"xmlhttprequest"
Especifica el recurso como una XMLHttpRequest.

"ping"
Especifica el recurso como un ping.

"csp_report"
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 subidos en una solicitud de URL.

Propiedades

  • bytes

    cualquier opcional

    Un ArrayBuffer con una copia de los datos.

  • en el archivo.

    cadena 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 continuo de 10 minutos. handlerBehaviorChanged es una llamada a función costosa a la que no se debe llamar con frecuencia.

Valor

20

Métodos

handlerBehaviorChanged()

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

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

Parámetros

  • callback

    Función opcional

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

    ()=>void

Devuelve

  • Promise<void>

    Chrome 116 y versiones posteriores

    Las promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para brindar retrocompatibilidad. No puedes usar ambos en la misma llamada a función. La promesa 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 conflicto con otras extensiones.

Parámetros

  • callback

    la 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

        cadena

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de la sesión del navegador. Como resultado, se podrían usar 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 puede realizar ninguna acción con respecto al desafío. Si se proporcionan credenciales de usuario incorrectas, se pueden llamar 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

    la 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 la autenticación.

        • host

          cadena

        • puerto

          número

      • documentId

        cadena

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida en el que se encuentra el documento.

      • frameId

        número

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

      • Chrome 106 y versiones posteriores

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

      • iniciador

        cadena opcional

        Chrome 63 y versiones posteriores

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

      • isProxy

        boolean

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

      • method

        cadena

        Método HTTP estándar.

      • parentDocumentId

        cadena opcional

        Chrome 106 y versiones posteriores

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

      • parentFrameId

        número

        ID del marco que une al marco que envió la solicitud. Se establece en -1 si no existe un marco superior.

      • dominio

        cadena opcional

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

      • requestId

        cadena

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

      • responseHeaders

        HttpHeaders opcional

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

      • esquema

        cadena

        El esquema de autenticación, p. ej., básico o resumen

      • statusCode

        número

        Chrome 43 y versiones posteriores

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

      • statusLine

        cadena

        Línea de estado HTTP de la respuesta o la cadena "HTTP/0.9 200 OK" para las 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

        Es el momento en que se activa esta señal, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        cadena

    • asyncCallback

      Función opcional

      Chrome 58 y versiones posteriores

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

      (response: BlockingResponse)=>void

    • resultados

      BlockingResponse|no definido

      Si se especifica "bloqueo" en el parámetro "extraInfoSpec", el objeto de escucha de eventos debe devolver un objeto de este tipo.

  • filter
  • extraInfoSpec

onBeforeRedirect

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

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

Parámetros

  • callback

    la función

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

    (details: object)=>void

    • detalles

      objeto

      • documentId

        cadena

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida en el que se encuentra el documento.

      • frameId

        número

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

      • Chrome 106 y versiones posteriores

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

      • fromCache

        boolean

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

      • iniciador

        cadena opcional

        Chrome 63 y versiones posteriores

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

      • ip

        cadena opcional

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

      • method

        cadena

        Método HTTP estándar.

      • parentDocumentId

        cadena opcional

        Chrome 106 y versiones posteriores

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

      • parentFrameId

        número

        ID del marco que une al marco que envió la solicitud. Se establece en -1 si no existe un marco superior.

      • redirectUrl

        cadena

        La URL nueva.

      • requestId

        cadena

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

      • responseHeaders

        HttpHeaders opcional

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

      • statusCode

        número

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

      • statusLine

        cadena

        Línea de estado HTTP de la respuesta o la cadena "HTTP/0.9 200 OK" para las 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

        Es el momento en que se activa esta señal, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        cadena

  • filter
  • extraInfoSpec

onBeforeRequest

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

Se activa cuando una solicitud está por suceder.

Parámetros

  • callback

    la función

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

    (details: object)=>BlockingResponse|undefined

    • detalles

      objeto

      • documentId

        cadena opcional

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • documentLifecycle
        Chrome 106 y versiones posteriores

        El ciclo de vida en el que se encuentra el documento.

      • frameId

        número

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

      • frameType
        Chrome 106 y versiones posteriores

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

      • iniciador

        cadena opcional

        Chrome 63 y versiones posteriores

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

      • method

        cadena

        Método HTTP estándar.

      • parentDocumentId

        cadena opcional

        Chrome 106 y versiones posteriores

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

      • parentFrameId

        número

        ID del marco que une al marco que envió la solicitud. Se establece 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

          cadena opcional

          Errores cuando se obtienen 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 codificadas 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 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 analizó en formData, los elementos del cuerpo de la solicitud sin analizar estarán contenidos en este array.

      • requestId

        cadena

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de la sesión del navegador. Como resultado, se podrían usar 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

        Es el momento en que se activa esta señal, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        cadena

    • resultados

      BlockingResponse|no definido

      Si se especifica "bloqueo" en el parámetro "extraInfoSpec", el objeto de escucha de eventos debe devolver 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 realiza una conexión TCP al servidor, pero antes de que se envíen los datos HTTP.

Parámetros

  • callback

    la función

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

    (details: object)=>BlockingResponse|undefined

    • detalles

      objeto

      • documentId

        cadena

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida en el que se encuentra el documento.

      • frameId

        número

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

      • Chrome 106 y versiones posteriores

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

      • iniciador

        cadena opcional

        Chrome 63 y versiones posteriores

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

      • method

        cadena

        Método HTTP estándar.

      • parentDocumentId

        cadena opcional

        Chrome 106 y versiones posteriores

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

      • parentFrameId

        número

        ID del marco que une al marco que envió la solicitud. Se establece 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

        cadena

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de la sesión del navegador. Como resultado, se podrían usar 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

        Es el momento en que se activa esta señal, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        cadena

    • resultados

      BlockingResponse|no definido

      Si se especifica "bloqueo" en el parámetro "extraInfoSpec", el objeto de escucha de eventos debe devolver 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

    la función

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

    (details: object)=>void

    • detalles

      objeto

      • documentId

        cadena

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida en el que se encuentra el documento.

      • frameId

        número

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

      • Chrome 106 y versiones posteriores

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

      • fromCache

        boolean

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

      • iniciador

        cadena opcional

        Chrome 63 y versiones posteriores

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

      • ip

        cadena opcional

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

      • method

        cadena

        Método HTTP estándar.

      • parentDocumentId

        cadena opcional

        Chrome 106 y versiones posteriores

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

      • parentFrameId

        número

        ID del marco que une al marco que envió la solicitud. Se establece en -1 si no existe un marco superior.

      • requestId

        cadena

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

      • responseHeaders

        HttpHeaders opcional

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

      • statusCode

        número

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

      • statusLine

        cadena

        Línea de estado HTTP de la respuesta o la cadena "HTTP/0.9 200 OK" para las 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

        Es el momento en que se activa esta señal, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        cadena

  • 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

    la función

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

    (details: object)=>void

    • detalles

      objeto

      • documentId

        cadena

        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 en el que se encuentra el documento.

      • error

        cadena

        La descripción del error. No se garantiza que esta cadena siga siendo retrocompatible entre versiones. No debe analizar su contenido ni tomar medidas al respecto.

      • frameId

        número

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

      • Chrome 106 y versiones posteriores

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

      • fromCache

        boolean

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

      • iniciador

        cadena opcional

        Chrome 63 y versiones posteriores

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

      • ip

        cadena opcional

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

      • method

        cadena

        Método HTTP estándar.

      • parentDocumentId

        cadena opcional

        Chrome 106 y versiones posteriores

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

      • parentFrameId

        número

        ID del marco que une al marco que envió la solicitud. Se establece en -1 si no existe un marco superior.

      • requestId

        cadena

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de la sesión del navegador. Como resultado, se podrían usar 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

        Es el momento en que se activa esta señal, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        cadena

  • 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

    la función

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

    (details: object)=>BlockingResponse|undefined

    • detalles

      objeto

      • documentId

        cadena

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida en el que se encuentra el documento.

      • frameId

        número

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

      • Chrome 106 y versiones posteriores

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

      • iniciador

        cadena opcional

        Chrome 63 y versiones posteriores

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

      • method

        cadena

        Método HTTP estándar.

      • parentDocumentId

        cadena opcional

        Chrome 106 y versiones posteriores

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

      • parentFrameId

        número

        ID del marco que une al marco que envió la solicitud. Se establece en -1 si no existe un marco superior.

      • requestId

        cadena

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

      • responseHeaders

        HttpHeaders opcional

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

      • statusCode

        número

        Chrome 43 y versiones posteriores

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

      • statusLine

        cadena

        Línea de estado HTTP de la respuesta o la cadena “HTTP/0.9 200 OK” para las 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

        Es el momento en que se activa esta señal, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        cadena

    • resultados

      BlockingResponse|no definido

      Si se especifica "bloqueo" en el parámetro "extraInfoSpec", el objeto de escucha de eventos debe devolver 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

    la función

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

    (details: object)=>void

    • detalles

      objeto

      • documentId

        cadena

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida en el que se encuentra el documento.

      • frameId

        número

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

      • Chrome 106 y versiones posteriores

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

      • fromCache

        boolean

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

      • iniciador

        cadena opcional

        Chrome 63 y versiones posteriores

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

      • ip

        cadena opcional

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

      • method

        cadena

        Método HTTP estándar.

      • parentDocumentId

        cadena opcional

        Chrome 106 y versiones posteriores

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

      • parentFrameId

        número

        ID del marco que une al marco que envió la solicitud. Se establece en -1 si no existe un marco superior.

      • requestId

        cadena

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

      • responseHeaders

        HttpHeaders opcional

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

      • statusCode

        número

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

      • statusLine

        cadena

        Línea de estado HTTP de la respuesta o la cadena "HTTP/0.9 200 OK" para las 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

        Es el momento en que se activa esta señal, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        cadena

  • 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 llamadas anteriores onBeforeSendHeaders son visibles cuando se activa onSendHeaders).

Parámetros

  • callback

    la función

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

    (details: object)=>void

    • detalles

      objeto

      • documentId

        cadena

        Chrome 106 y versiones posteriores

        El UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores

        El ciclo de vida en el que se encuentra el documento.

      • frameId

        número

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

      • Chrome 106 y versiones posteriores

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

      • iniciador

        cadena opcional

        Chrome 63 y versiones posteriores

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

      • method

        cadena

        Método HTTP estándar.

      • parentDocumentId

        cadena opcional

        Chrome 106 y versiones posteriores

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

      • parentFrameId

        número

        ID del marco que une al marco que envió la solicitud. Se establece en -1 si no existe un marco superior.

      • requestHeaders

        HttpHeaders opcional

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

      • requestId

        cadena

        El ID de la solicitud. Los IDs de solicitud son únicos dentro de la sesión del navegador. Como resultado, se podrían usar 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

        Es el momento en que se activa esta señal, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        cadena

  • filter
  • extraInfoSpec