browser.webRequest

Descripción

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

Permisos

webRequest

Debes declarar el permiso "webRequest" en el manifiesto de la extensión para usar la API de solicitud web, junto con los permisos de host necesarios. Para interceptar una solicitud de recurso secundario, 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 controladores de eventos de bloqueo. A partir de Manifest V3, esto solo está disponible para las extensiones instaladas por política.

webRequestAuthProvider

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

Conceptos y uso

Ciclo de vida de las solicitudes

La API de webRequest 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. Ciertos eventos síncronos te permitirán interceptar, bloquear o modificar una solicitud.

A continuación, se ilustra el ciclo de vida de los eventos 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 está por ocurrir una solicitud. 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 está por ocurrir una solicitud y se prepararon los encabezados iniciales. El evento está diseñado para permitir que las extensiones agreguen, modifiquen y borren encabezados de la 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 saber cómo se maneja 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 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 suceder varias veces por solicitud. Este evento está diseñado para permitir que las extensiones agreguen, modifiquen y borren encabezados de respuesta, como los encabezados Content-Type entrantes. Las directivas de almacenamiento en caché se procesan antes de que se active este evento, por lo que modificar encabezados como Cache-Control no influye 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 un bucle infinito proporcionando credenciales no válidas de forma reiterada. También se puede usar para cancelar la solicitud.
onBeforeRedirect
Se activa cuando se está por ejecutar un redireccionamiento. Un código de respuesta HTTP o una extensión pueden activar un redireccionamiento. 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. En el caso de 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 no se puede procesar correctamente una solicitud.

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 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 a la extensión. De forma interna, una solicitud de URL se puede dividir en varias solicitudes HTTP (por ejemplo, para recuperar rangos de bytes individuales de un archivo grande) o la pila de red puede controlarla 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 sea estable.

  • Autorización
  • Cache-Control
  • Conexión
  • Content-Length
  • Host
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • Datos parciales
  • Pragma
  • Proxy-Authorization
  • Proxy-Connection
  • Transfer-Encoding

A partir de Chrome 79, las modificaciones de los encabezados de las solicitudes afectan las verificaciones de uso compartido de recursos de origen cruzado (CORS). Si los encabezados modificados para las solicitudes de origen cruzado no cumplen con los criterios, se enviará una solicitud preliminar de CORS para preguntarle al servidor si se pueden aceptar esos encabezados. Si realmente necesitas modificar los encabezados de manera que se infrinja el protocolo CORS, debes especificar 'extraHeaders' en opt_extraInfoSpec. Por otro lado, las modificaciones de los encabezados de respuesta no funcionan para engañar 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 solicitud. onBeforeRequest también puede tomar 'extraHeaders' de Chrome 79.

A partir de Chrome 79, el siguiente encabezado de solicitud no se proporciona 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, los siguientes encabezados de solicitud no se proporcionan y no se pueden modificar ni quitar sin especificar 'extraHeaders' en opt_extraInfoSpec:

  • Accept-Language
  • 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 forma eficaz 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:// (desde Chrome 58), wss:// (desde Chrome 58), urn: (desde Chrome 91) o chrome-extension://. Además, incluso se ocultan ciertas solicitudes con URLs que usan uno de los esquemas anteriores. Entre ellas, se incluyen chrome-extension://other_extension_id, en la que other_extension_id no es el ID de la extensión para controlar la solicitud, https://www.google.com/chrome y otras solicitudes sensibles fundamentales para la funcionalidad del navegador. Además, las solicitudes XMLHttpRequest síncronas de tu extensión se ocultan de los controladores de eventos de bloqueo para evitar interbloqueos. Ten en cuenta que, para algunos de los esquemas admitidos, el conjunto de eventos disponibles puede ser limitado debido a la naturaleza del protocolo correspondiente. Por ejemplo, para el esquema file:, solo se pueden enviar onBeforeRequest, onResponseStarted, onCompleted y onErrorOccurred.

A partir de Chrome 58, la API de webRequest admite la intercepción de la solicitud de protocolo de enlace de WebSocket. Dado que el protocolo de enlace se realiza a través de una solicitud de actualización de HTTP, su flujo se ajusta al modelo de webRequest orientado a HTTP. Ten en cuenta que la API no intercepta lo siguiente:

  • Son mensajes individuales que se envían a través de una conexión de WebSocket establecida.
  • Se cerrará la conexión de WebSocket.

Los redireccionamientos no se admiten 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 intercepción de la solicitud de protocolo de enlace de WebTransport a través de HTTP/3. Dado que el protocolo de enlace se realiza a través de 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 ella a través de la API de webRequest.
  • Se ignora la modificación de los encabezados de la solicitud HTTP en onBeforeSendHeaders.
  • Los redireccionamientos y las autenticaciones no se admiten en WebTransport sobre 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. Permanece constante durante el ciclo de vida de una solicitud y se puede usar para hacer coincidir eventos de 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.

Cómo registrar objetos de escucha de eventos

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

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

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

A continuación, se muestra un ejemplo de cómo escuchar el evento onBeforeRequest:

browser.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. A esta función de devolución de llamada, se le pasa un diccionario que contiene información sobre la solicitud de URL actual. La información de 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. Esto significa que la solicitud se bloquea hasta que se devuelve la función de devolución de llamada. En este caso, la devolución de llamada puede mostrar un objeto webRequest.BlockingResponse que determine el ciclo de vida posterior de la solicitud. Según el contexto, esta respuesta permite cancelar o redireccionar una solicitud (onBeforeRequest), cancelar una solicitud 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' (solo se permite para onAuthRequired), la extensión puede generar el webRequest.BlockingResponse de forma asíncrona.

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

URL
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 la 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. Esto se usa para proporcionar información detallada sobre los datos de la solicitud solo si se solicita de forma explícita.

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 obligatorio para una extensión instalada por política con el permiso "webRequestBlocking".

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

browser.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:

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

Cuando desarrollas una extensión que usa la API de solicitud web, es importante que comprendas varios detalles de la implementación:

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 se produce un error. Lo anterior se aplica incluso si el recurso al que no se puede acceder desde la Web pertenece a la extensión que redirecciona. Para declarar recursos que se usarán con las APIs de declarativeWebRequest, el array "web_accessible_resources" se debe declarar y propagar 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 con 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, gana la extensión instalada más recientemente y se ignoran todas las demás. No se notifica a una extensión si se ignoró su instrucción de modificar o redireccionar.

Almacenamiento en caché

Chrome emplea dos cachés: una en el disco y otra muy rápida en la memoria. La vida útil de una caché en memoria se asocia 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é en memoria son invisibles para la API de solicitud web. Si un controlador de solicitudes cambia su comportamiento (por ejemplo, el comportamiento según el cual se bloquean las solicitudes), es posible que una simple actualización de la página no respete este cambio de comportamiento. Para asegurarte de que se aplique el cambio de comportamiento, llama a handlerBehaviorChanged() para vaciar la caché en la memoria. Sin embargo, no lo hagas con frecuencia, ya que vaciar la caché es una operación muy costosa. No es necesario que llames 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 sea coherente de forma interna. Comparar un evento con otro te dará la diferencia correcta entre ellos, pero compararlos con la hora actual dentro de la extensión (por ejemplo, a través de (new Date()).getTime()) podría 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 de eventos. Si se genera un error mientras se controla un evento o si un controlador de eventos devuelve una respuesta de bloqueo no válida, se registra un mensaje de error en la consola de tu 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:

browser.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 permiso "webRequest" y el permiso "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 orientadas a www.evil.com no necesitan pasarse a la extensión:

browser.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:

browser.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 browser.webRequest, instala la muestra de webRequest del repositorio chrome-extension-samples.

Tipos

BlockingResponse

Devuelve el valor de los controladores de eventos que tienen aplicado el extraInfoSpec "blocking". 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 establece, la solicitud se realiza con las credenciales proporcionadas.

    • contraseña

      string

    • nombre de usuario

      string

  • cancelar

    booleano opcional

    Si es verdadero, se cancela la solicitud. 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 usa como respuesta a los eventos onBeforeRequest y onHeadersReceived. Si se establece, se evita que se envíe o complete la solicitud original y, en su lugar, se redirecciona a la URL proporcionada. 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, se emitirá con el método GET. Se ignoran los redireccionamientos de URLs con esquemas ws:// y wss://.

  • requestHeaders

    HttpHeaders opcional

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

  • 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. Solo devuelve 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 browser.* desde Chrome 148

Contiene datos que se pasan dentro de los datos del formulario. En el caso del formulario urlencoded, se almacena como cadena si los datos son una cadena utf-8 y como ArrayBuffer en caso contrario. Para form-data, es ArrayBuffer. Si los datos del formulario representan un archivo que se está subiendo, se trata de una cadena con el nombre del archivo, si se proporciona.

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

    Es el valor del encabezado HTTP si no se puede representar con UTF-8, almacenado como valores de bytes individuales (0..255).

  • nombre

    string

    Es el nombre del encabezado HTTP.

  • valor

    string opcional

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

IgnoredActionType

Chrome 70 y versiones posteriores browser.* desde Chrome 148

Enum

"redirect"

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Enum

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

"blocking"
Especifica que la solicitud se bloquea hasta que se devuelve 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 infringir el uso compartido de recursos de origen cruzado (CORS).

OnBeforeRedirectOptions

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Enum

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

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

OnBeforeRequestOptions

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Enum

"blocking"
Especifica que la solicitud se bloquea hasta que se devuelve la función de devolución de llamada.

"requestBody"
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 de origen cruzado (CORS).

OnBeforeSendHeadersOptions

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Enum

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

"blocking"
Especifica que la solicitud se bloquea hasta que se devuelve la función de devolución de llamada.

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

OnCompletedOptions

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Enum

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

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

OnErrorOccurredOptions

Chrome 79 y versiones posteriores browser.* desde Chrome 148

Valor

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Enum

"blocking"
Especifica que la solicitud se bloquea hasta que se devuelve 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 infringir el uso compartido de recursos de origen cruzado (CORS).

"securityInfo"
Especifica que se debe incluir SecurityInfo en el evento.

"securityInfoRawDer"
Especifica que se debe incluir en el evento el SecurityInfo con bytes sin procesar de los certificados.

OnResponseStartedOptions

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Enum

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

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

OnSendHeadersOptions

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Enum

"requestHeaders"
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 de origen cruzado (CORS).

RequestFilter

Es un objeto que describe los filtros que se aplicarán a los eventos de webRequest.

Propiedades

  • tabId

    number opcional

  • máquinas activas

    ResourceType[] opcional

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

  • url

    string[]

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

  • windowId

    number opcional

ResourceType

Chrome 44 y versiones posteriores browser.* desde Chrome 148

Enum

"main_frame"
Especifica el recurso como el 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 un 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 de medios.

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

SecurityInfo

Chrome 144 y versiones posteriores browser.* desde Chrome 148

Propiedades

  • certificados

    object[]

    Una lista de certificados

    • huella dactilar

      objeto

      Son las huellas digitales del certificado.

      • sha256

        string

        Es la huella digital sha256 del certificado.

    • rawDER

      ArrayBuffer opcional

      Bytes sin procesar del certificado de servidor codificado en DER

  • state

    string

    Estado de la conexión. Uno de los siguientes: seguro, no seguro, roto.

UploadData

Contiene datos subidos en una solicitud de URL.

Propiedades

  • bytes

    any optional

    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

Es 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 que no se debería llamar con frecuencia.

Valor

20

Métodos

handlerBehaviorChanged()

browser.webRequest.handlerBehaviorChanged(): Promise<void>

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

Muestra

  • Promise<void>

    Chrome 116 y versiones posteriores browser.* desde Chrome 148

Eventos

onActionIgnored

Chrome 70 y versiones posteriores browser.* desde Chrome 148
browser.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

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

onAuthRequired

browser.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 en el desafío. Si se proporcionan credenciales de usuario incorrectas, es posible que se llame a este método 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

      • challenger

        objeto

        Es el servidor que solicita la autenticación.

        • host

          string

        • puerto

          número

      • documentId

        string opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • frameId

        número

        El valor 0 indica que la solicitud se produce 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 exterior. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores browser.* desde Chrome 148

        Es el origen desde el que se inició la solicitud. Esto no cambia con los redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".

      • isProxy

        booleano

        Es verdadero para Proxy-Authenticate y falso para WWW-Authenticate.

      • método

        string

        Método HTTP estándar.

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento superior al que pertenece este marco. No se establece si no hay un elemento superior.

      • parentFrameId

        número

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

      • dominio

        string opcional

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

      • requestId

        string

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

      • responseHeaders

        HttpHeaders opcional

        Son los encabezados de respuesta HTTP que se recibieron junto con esta respuesta.

      • esquema

        string

        Es el esquema de autenticación, p.ej., básico o implícito.

      • Código de error

        número

        Chrome 43 y versiones posteriores browser.* desde Chrome 148

        Es el código de estado HTTP estándar que devuelve el servidor.

      • statusLine

        string

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

      • tabId

        número

        Es 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 la hora en 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 browser.* desde Chrome 148

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

      (response: BlockingResponse) => void

    • muestra

      BlockingResponse | undefined

      Si se especifica "blocking" en el parámetro "extraInfoSpec", el objeto de escucha de eventos debería devolver un objeto de este tipo.

  • filter
  • extraInfoSpec

onBeforeRedirect

browser.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 opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • frameId

        número

        El valor 0 indica que la solicitud se produce 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 exterior. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • fromCache

        booleano

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

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores browser.* desde Chrome 148

        Es el origen desde el que se inició la solicitud. Esto no cambia con los redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".

      • ip

        string opcional

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

      • método

        string

        Método HTTP estándar.

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento superior al que pertenece este marco. No se establece si no hay un elemento superior.

      • parentFrameId

        número

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

      • redirectUrl

        string

        Es la URL nueva.

      • requestId

        string

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

      • responseHeaders

        HttpHeaders opcional

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

      • Código de error

        número

        Es el código de estado HTTP estándar que devuelve el servidor.

      • statusLine

        string

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

      • tabId

        número

        Es 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 la hora en que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

  • filter
  • extraInfoSpec

onBeforeRequest

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

Se activa cuando está por producirse 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 browser.* desde Chrome 148

        Es el UUID del documento que realiza la solicitud.

      • documentLifecycle
        Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • frameId

        número

        El valor 0 indica que la solicitud se produce 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 exterior. Los IDs de marco son únicos dentro de una pestaña.

      • frameType
        Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores browser.* desde Chrome 148

        Es el origen desde el que se inició la solicitud. Esto no cambia con los redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".

      • método

        string

        Método HTTP estándar.

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento superior al que pertenece este marco. No se establece si no hay un elemento superior.

      • parentFrameId

        número

        Es el ID del marco que une el 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

          string 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 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 contenido multimedia o si tienen un formato incorrecto, el diccionario no está presente. Un valor de ejemplo de este diccionario es {'key': ['value1', 'value2']}.

        • raw

          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 se incluyen en este array.

      • requestId

        string

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

      • tabId

        número

        Es 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 la hora en que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

    • muestra

      BlockingResponse | undefined

      Si se especifica "blocking" en el parámetro "extraInfoSpec", el objeto de escucha de eventos debería devolver un objeto de este tipo.

  • filter
  • extraInfoSpec

onBeforeSendHeaders

browser.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 establece una conexión TCP con el servidor, pero antes de que se envíen 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 opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • frameId

        número

        El valor 0 indica que la solicitud se produce 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 exterior. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores browser.* desde Chrome 148

        Es el origen desde el que se inició la solicitud. Esto no cambia con los redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".

      • método

        string

        Método HTTP estándar.

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento superior al que pertenece este marco. No se establece si no hay un elemento superior.

      • parentFrameId

        número

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

      • requestHeaders

        HttpHeaders opcional

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

      • requestId

        string

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

      • tabId

        número

        Es 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 la hora en que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

    • muestra

      BlockingResponse | undefined

      Si se especifica "blocking" en el parámetro "extraInfoSpec", el objeto de escucha de eventos debería devolver un objeto de este tipo.

  • filter
  • extraInfoSpec

onCompleted

browser.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 opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • frameId

        número

        El valor 0 indica que la solicitud se produce 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 exterior. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • fromCache

        booleano

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

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores browser.* desde Chrome 148

        Es el origen desde el que se inició la solicitud. Esto no cambia con los redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".

      • ip

        string opcional

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

      • método

        string

        Método HTTP estándar.

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento superior al que pertenece este marco. No se establece si no hay un elemento superior.

      • parentFrameId

        número

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

      • requestId

        string

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

      • responseHeaders

        HttpHeaders opcional

        Son los encabezados de respuesta HTTP que se recibieron junto con esta respuesta.

      • Código de error

        número

        Es el código de estado HTTP estándar que devuelve el servidor.

      • statusLine

        string

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

      • tabId

        número

        Es 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 la hora en 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

browser.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 opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es 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 browser.* desde Chrome 148

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

      • error

        string

        Es la descripción del error. No se garantiza que esta cadena siga siendo retrocompatible entre versiones. No debes analizarlo ni actuar en función de su contenido.

      • frameId

        número

        El valor 0 indica que la solicitud se produce 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 exterior. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • fromCache

        booleano

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

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores browser.* desde Chrome 148

        Es el origen desde el que se inició la solicitud. Esto no cambia con los redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".

      • ip

        string opcional

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

      • método

        string

        Método HTTP estándar.

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento superior al que pertenece este marco. No se establece si no hay un elemento superior.

      • parentFrameId

        número

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

      • requestId

        string

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

      • tabId

        número

        Es 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 la hora en que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

  • filter
  • extraInfoSpec

onHeadersReceived

browser.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 opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • frameId

        número

        El valor 0 indica que la solicitud se produce 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 exterior. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores browser.* desde Chrome 148

        Es el origen desde el que se inició la solicitud. Esto no cambia con los redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".

      • método

        string

        Método HTTP estándar.

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento superior al que pertenece este marco. No se establece si no hay un elemento superior.

      • parentFrameId

        número

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

      • requestId

        string

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

      • responseHeaders

        HttpHeaders opcional

        Son los encabezados de respuesta HTTP que se recibieron con esta respuesta.

      • securityInfo

        SecurityInfo opcional

        Chrome 144 y versiones posteriores browser.* desde Chrome 148

        Información sobre la conexión TLS/QUIC que se usa para la conexión subyacente. Solo se proporciona si se especifica securityInfo en el parámetro extraInfoSpec.

      • Código de error

        número

        Chrome 43 y versiones posteriores browser.* desde Chrome 148

        Es el código de estado HTTP estándar que devuelve el servidor.

      • statusLine

        string

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

      • tabId

        número

        Es 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 la hora en que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

    • muestra

      BlockingResponse | undefined

      Si se especifica "blocking" en el parámetro "extraInfoSpec", el objeto de escucha de eventos debería devolver un objeto de este tipo.

  • filter
  • extraInfoSpec

onResponseStarted

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

Se activa cuando se recibe el primer byte del cuerpo de la respuesta. En el caso de 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 opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • frameId

        número

        El valor 0 indica que la solicitud se produce 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 exterior. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • fromCache

        booleano

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

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores browser.* desde Chrome 148

        Es el origen desde el que se inició la solicitud. Esto no cambia con los redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".

      • ip

        string opcional

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

      • método

        string

        Método HTTP estándar.

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento superior al que pertenece este marco. No se establece si no hay un elemento superior.

      • parentFrameId

        número

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

      • requestId

        string

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

      • responseHeaders

        HttpHeaders opcional

        Son los encabezados de respuesta HTTP que se recibieron junto con esta respuesta.

      • Código de error

        número

        Es el código de estado HTTP estándar que devuelve el servidor.

      • statusLine

        string

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

      • tabId

        número

        Es 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 la hora en que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

  • filter
  • extraInfoSpec

onSendHeaders

browser.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 las devoluciones de llamada onBeforeSendHeaders anteriores 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 opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento que realiza la solicitud.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • frameId

        número

        El valor 0 indica que la solicitud se produce 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 exterior. Los IDs de marco son únicos dentro de una pestaña.

      • Chrome 106 y versiones posteriores browser.* desde Chrome 148

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

      • iniciador

        string opcional

        Chrome 63 y versiones posteriores browser.* desde Chrome 148

        Es el origen desde el que se inició la solicitud. Esto no cambia con los redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".

      • método

        string

        Método HTTP estándar.

      • parentDocumentId

        string opcional

        Chrome 106 y versiones posteriores browser.* desde Chrome 148

        Es el UUID del documento superior al que pertenece este marco. No se establece si no hay un elemento superior.

      • parentFrameId

        número

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

      • requestHeaders

        HttpHeaders opcional

        Son los encabezados de la solicitud HTTP que se enviaron con esta solicitud.

      • requestId

        string

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

      • tabId

        número

        Es 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 la hora en que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.

      • Cómo se usará el recurso solicitado.

      • url

        string

  • filter
  • extraInfoSpec