Descripción
Usa la API de chrome.webRequest
para observar y analizar el tráfico, y para interceptar, bloquear o modificar solicitudes en tránsito.
Permisos
webRequest
Para usar la solicitud web, debes declarar el permiso "webRequest"
en el manifiesto de extensión
junto con los permisos de host necesarios. Para interceptar una solicitud de un subrecurso, el
la extensión debe tener acceso a la URL solicitada y al iniciador. Por ejemplo:
{
"name": "My extension",
...
"permissions": [
"webRequest"
],
"host_permissions": [
"*://*.google.com/*"
],
...
}
webRequestBlocking
Obligatorio para registrar controladores de eventos de bloqueo. A partir de Manifest V3, esto es solo disponibles para las extensiones instaladas por políticas.
webRequestAuthProvider
Es obligatorio usar el método onAuthRequired
. Consulta
Controla la autenticación.
Conceptos y uso
Ciclo de vida de las solicitudes
La API de solicitud web define un conjunto de eventos que siguen el ciclo de vida de una solicitud web. Puedes usar estos eventos para observar y analizar el tráfico. Algunos eventos sincrónicos te permitirán interceptar bloquear o modificar una solicitud.
Aquí se ilustra el ciclo de vida del evento para solicitudes exitosas, seguido de las definiciones de los eventos:
onBeforeRequest
(síncrono opcional)- Se activa cuando está por ocurrir una solicitud. Este evento se envía antes de que se establezca cualquier conexión TCP y puede usarse para cancelar o redireccionar solicitudes.
onBeforeSendHeaders
(síncrono opcional)- Se activa cuando está por ocurrir una solicitud y se preparan los encabezados iniciales. El evento es
destinada a permitir que las extensiones agreguen, modifiquen y borren encabezados de solicitud (*). El
onBeforeSendHeaders
evento se pasa a todos los suscriptores, por lo que diferentes suscriptores pueden intentar modificar la solicitud; consulta la sección Detalles de la implementación para conocer cómo se maneja. Este evento que se puede usar para cancelar la solicitud. onSendHeaders
- Se activa después de que todas las extensiones han tenido la oportunidad de modificar los encabezados de la solicitud y presenta la versión final Versión (*). El evento se activa antes de que los encabezados se envíen a la red. Este evento es informativos y manejados de forma asíncrona. No permite modificar ni cancelar la solicitud.
onHeadersReceived
(síncrono opcional)- Se activa cada vez que se recibe un encabezado de respuesta HTTP(S). Debido a los redireccionamientos y la autenticación esto puede ocurrir varias veces por solicitud. El propósito de este evento es permitir que las extensiones agregar, modificar y borrar encabezados de respuesta, como los encabezados de tipo de contenido entrante El almacenamiento directivas se procesan antes de que se active el evento. Por lo tanto, modifica encabezados como Cache-Control no influye en la caché del navegador. También te permite cancelar o redireccionar la solicitud.
onAuthRequired
(síncrono opcional)- Se activa cuando una solicitud requiere la autenticación del usuario. Este evento puede controlarse de forma síncrona para proporcionar credenciales de autenticación. Ten en cuenta que las extensiones pueden proporcionar credenciales no válidas. Hasta pronto para no ingresar en un bucle infinito proporcionando credenciales no válidas de forma reiterada. Esto también se puede usar para cancelar la solicitud.
onBeforeRedirect
- Se activa cuando un redireccionamiento está a punto de ejecutarse. Una respuesta HTTP puede activar un redireccionamiento código o por una extensión. Este evento es informativo y se maneja de forma asíncrona. No permite que modifiques o canceles la solicitud.
onResponseStarted
- Se activa cuando se recibe el primer byte del cuerpo de la respuesta. Para las solicitudes HTTP, esto significa que el la línea de estado y los encabezados de respuesta. Este evento es informativo y se administra de forma asíncrona. No permite modificar ni cancelar la solicitud.
onCompleted
- Se activa cuando una solicitud se procesa correctamente.
onErrorOccurred
- Se activa cuando una solicitud no se puede procesar correctamente.
La API de solicitud web garantiza que se cumplan los requisitos de onCompleted
o onErrorOccurred
para cada solicitud.
se activa como el evento final con una excepción: Si una solicitud se redirecciona a una URL data://
,
onBeforeRedirect
es el último evento informado.
* Ten en cuenta que la API de solicitud web presenta una abstracción de la pila de red para la extensión. Internamente, una solicitud de URL se puede dividir en varias solicitudes HTTP (por ejemplo, para obtener de un archivo grande) o puede ser manejado por la pila de red sin comunicarse con el en cada red. Por este motivo, la API no proporciona los encabezados HTTP finales que se envían al en cada red. Por ejemplo, la extensión no puede ver ningún encabezado relacionado con el almacenamiento en caché.
Actualmente, no se proporcionan los siguientes encabezados al evento onBeforeSendHeaders
. Esta lista
no se garantiza que esté
completado o estable.
- Autorización
- Cache-Control
- Conexión
- Duración del contenido
- Host
- If-Modified-Since
- If-None-Match
- Intervalo
- Datos parciales
- Pragma
- Autorización de proxy
- Conexión de proxy
- Transfer-Encoding
A partir de Chrome 79, las modificaciones del encabezado de las solicitudes afectan el uso compartido de recursos entre dominios (CORS)
y verificaciones de control. Si los encabezados modificados para solicitudes de origen cruzado no cumplen con los criterios, se producirán
enviar una solicitud preliminar de CORS para preguntar al servidor si se aceptan esos encabezados Si realmente necesitas
si modificas los encabezados de modo que infrinjan el protocolo CORS, debes especificar 'extraHeaders'
en
opt_extraInfoSpec
Por otro lado, las modificaciones del encabezado de respuesta no funcionan para engañar al CORS.
y verificaciones de control. Si necesitas engañar el protocolo CORS, también debes especificar 'extraHeaders'
para el
las modificaciones de respuestas.
A partir de Chrome 79, la API de webRequest no intercepta las solicitudes preliminares de CORS ni
de forma predeterminada. Una solicitud preliminar de CORS para una URL de solicitud es visible para una extensión si hay
Objeto de escucha con 'extraHeaders'
especificado en opt_extraInfoSpec
para la URL de la solicitud
onBeforeRequest
también puede tomar 'extraHeaders'
desde Chrome 79.
A partir de Chrome 79, no se proporciona el siguiente encabezado de solicitud y no se puede modificar ni
Se quitó sin especificar 'extraHeaders'
en opt_extraInfoSpec
:
- Origen
A partir de Chrome 72, si necesitas modificar respuestas antes del bloqueo de lectura multiorigen
(CORB) puede bloquear la respuesta, por lo que debes especificar 'extraHeaders'
en opt_extraInfoSpec
.
A partir de Chrome 72, los siguientes encabezados de solicitud no se proporcionan y no se pueden modificar
o quitar sin especificar 'extraHeaders'
en opt_extraInfoSpec
:
- Idioma de aceptación
- Accept-Encoding
- Referencia
- Cookie
A partir de Chrome 72, el encabezado de respuesta Set-Cookie
no se proporciona y no se puede modificar
o quitar sin especificar 'extraHeaders'
en opt_extraInfoSpec
.
A partir de Chrome 89, el encabezado de respuesta X-Frame-Options
no se puede modificar de manera efectiva
o quitar sin especificar 'extraHeaders'
en opt_extraInfoSpec
.
La API de webRequest solo expone las solicitudes que la extensión tiene permiso para ver, según su host.
permisos. Además, solo se puede acceder a los siguientes esquemas: http://
, https://
,
ftp://
, file://
, ws://
(desde Chrome 58), wss://
(desde Chrome 58), urn:
(desde Chrome 91) o
chrome-extension://
Además, incluso ciertas solicitudes con URLs que usan uno de los esquemas anteriores
están ocultos. Esto incluye chrome-extension://other_extension_id
, donde other_extension_id
no es
el ID de la extensión para manejar la solicitud, https://www.google.com/chrome
y otras
principales de la funcionalidad del navegador. Además, se pueden enviar solicitudes XMLHttpRequest síncronas de tu extensión
de los controladores de eventos de bloqueo para evitar interbloqueos. Ten en cuenta que para algunas de las
los esquemas compatibles, el conjunto de eventos disponibles podría
estar limitado debido a la naturaleza del
protocolo correspondiente. Por ejemplo, para el archivo: scheme, únicamente onBeforeRequest
,
Es posible que se envíen onResponseStarted
, onCompleted
y onErrorOccurred
.
A partir de Chrome 58, la API de webRequest admite la interceptación de la solicitud de protocolo de enlace de WebSocket. Como el protocolo de enlace se realiza por medio de una solicitud de actualización de HTTP, su flujo se ajusta a los webRequest. Ten en cuenta que la API no intercepta lo siguiente:
- Mensajes individuales enviados a través de una conexión de WebSocket establecida.
- Cierre de la conexión de WebSocket.
Los redireccionamientos no son compatibles con las solicitudes de WebSocket.
A partir de Chrome 72, una extensión podrá interceptar una solicitud solo si tiene host permisos para la URL solicitada y el iniciador de la solicitud.
A partir de Chrome 96, la API de webRequest admite la interceptación de WebTransport a través de HTTP/3. solicitud de protocolo de enlace. Como el protocolo de enlace se realiza por medio de una solicitud HTTP CONNECT, su flujo se ajusta en un modelo webRequest orientado a HTTP. Ten en cuenta lo siguiente:
- Una vez que se establece la sesión, las extensiones no pueden observar ni intervenir en la sesión a través del API de webRequest.
- Se ignora la modificación de los encabezados de solicitud HTTP en
onBeforeSendHeaders
. - WebTransport a través de HTTP/3 no admite redireccionamientos ni autenticaciones.
ID de solicitud
Cada solicitud se identifica con un ID de solicitud. Este ID es único dentro de una sesión del navegador y el el contexto de una extensión. Se mantiene constante durante el ciclo de vida de una solicitud y se puede usar para que coincida con eventos para la misma solicitud. Ten en cuenta que varias solicitudes HTTP se asignan a una solicitud web. en caso de redirección o autenticación HTTP.
Cómo registrar objetos de escucha de eventos
Si deseas registrar un objeto de escucha de eventos para una solicitud web, debes usar una variación en la addListener()
habitual
la función. Además de especificar una función de devolución de llamada, debes especificar un argumento de filtro y puedes especificar un argumento de información adicional opcional.
Los tres argumentos de addListener()
de la API de solicitud web tienen las siguientes definiciones:
var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];
Este es un ejemplo de cómo escuchar el evento onBeforeRequest
:
chrome.webRequest.onBeforeRequest.addListener(
callback, filter, opt_extraInfoSpec);
Cada llamada a addListener()
toma una función de devolución de llamada obligatoria como primer parámetro. Esta devolución de llamada
a la función un diccionario que contiene información sobre la solicitud de URL actual. El
la información de este diccionario depende del tipo de evento específico, así como del contenido de
opt_extraInfoSpec
Si el array opcional opt_extraInfoSpec
contiene la cadena 'blocking'
(solo se permite
eventos específicos), la función de devolución de llamada se controla de forma síncrona. Esto significa que la solicitud está
se bloqueará hasta que se muestre la función de devolución de llamada. En este caso, la devolución de llamada puede mostrar un
webRequest.BlockingResponse
, que determina el ciclo de vida adicional de la solicitud. Según
según el contexto, esta respuesta permite cancelar o redireccionar una solicitud (onBeforeRequest
),
cancelar una solicitud o modificar encabezados (onBeforeSendHeaders
, onHeadersReceived
)
cancelar una solicitud o proporcionar credenciales de autenticación (onAuthRequired
).
Si el array opcional opt_extraInfoSpec
contiene la cadena 'asyncBlocking'
en su lugar (solo
para onAuthRequired
), la extensión puede generar la webRequest.BlockingResponse
de forma asíncrona.
El objeto filter
webRequest.RequestFilter
permite limitar las solicitudes para las que se realizan eventos
se activan en varias dimensiones:
- URL
- Patrones de URL, como
*://www.google.com/foo*bar
- Tipos
- Tipos de solicitud como
main_frame
(un documento que se carga para un marco de nivel superior),sub_frame
(un documento que se carga para un marco incorporado) yimage
(una imagen en un sitio web). ConsultawebRequest.RequestFilter
- ID de la pestaña
- El identificador de una pestaña.
- ID de ventana
- Es el identificador de una ventana.
Según el tipo de evento, puedes especificar cadenas en opt_extraInfoSpec
para solicitar acceso
información adicional sobre la solicitud. Se usa para proporcionar información detallada solo sobre los datos de la solicitud
si se solicita explícitamente.
Cómo controlar la autenticación
Para controlar las solicitudes de autenticación HTTP, agrega "webRequestAuthProvider"
.
permiso a tu archivo de manifiesto:
{
"permissions": [
"webRequest",
"webRequestAuthProvider"
]
}
Ten en cuenta que este permiso no es necesario para una extensión de política instalada con
el permiso "webRequestBlocking"
Para proporcionar credenciales de forma síncrona, haz lo siguiente:
chrome.webRequest.onAuthRequired.addListener((details) => {
return {
authCredentials: {
username: 'guest',
password: 'guest'
}
};
},
{ urls: ['https://httpbin.org/basic-auth/guest/guest'] },
['blocking']
);
Para proporcionar credenciales de forma asíncrona, haz lo siguiente:
chrome.webRequest.onAuthRequired.addListener((details, callback) => {
callback({
authCredentials: {
username: 'guest',
password: 'guest'
}
});
},
{ urls: ['https://httpbin.org/basic-auth/guest/guest'] },
['asyncBlocking']
);
Detalles de implementación
Puede ser importante comprender varios detalles de implementación cuando se desarrolla una extensión que usa la API de solicitud web:
web_accessible_resources
Cuando una extensión usa las APIs de webRequest para redireccionar una solicitud de recurso público a un recurso al que no se puede acceder desde la Web, se bloquea y genera un error. Lo anterior se aplica incluso si el recurso al que no se puede acceder desde la Web es propiedad de la extensión de redireccionamiento. Para declarar recursos que se usarán con las APIs de declareWebRequest, se debe declarar el array "web_accessible_resources"
y propagarse en el manifiesto, tal como se documenta aquí.
Resolución de conflictos
En la implementación actual de la API de solicitud web, una solicitud se considera cancelada si
al menos una extensión indica
que se cancele la solicitud. Si una extensión cancela una solicitud,
extensiones reciben notificaciones de un evento onErrorOccurred
. Solo una extensión puede redireccionar un
solicitar o modificar un encabezado a la vez. Si más de una extensión intenta modificar la solicitud,
la extensión instalada más recientemente ganará y se ignorarán todas las demás. Las extensiones no reciben notificaciones si
se ignoró su instrucción de modificarla o redireccionarla.
Almacenamiento en caché
Chrome usa dos cachés: una en el disco y una muy rápida en la memoria. El ciclo de vida de un
se adjunta a la vida útil de un proceso de renderización, que aproximadamente corresponde a una pestaña.
Las solicitudes que se responden desde la caché en la memoria son invisibles para la API de solicitud web. Si un
el controlador de solicitudes cambia su comportamiento (por ejemplo, el comportamiento según el cual se reciben
bloqueada), una simple actualización de la página podría no respetar este comportamiento modificado. Para garantizar el comportamiento
se realiza el cambio, llama a handlerBehaviorChanged()
para vaciar la caché en la memoria. Pero no lo hagas
a menudo; vaciar la caché es una operación muy costosa. No es necesario que llames
handlerBehaviorChanged()
después de registrar o cancelar el registro de un objeto de escucha de eventos
Marcas de tiempo
Solo se garantiza que la propiedad timestamp
de los eventos de solicitud web tenga coherencia interna.
Comparar un evento con otro te dará el desplazamiento correcto entre ellos, pero,
con la hora actual en la extensión (por ejemplo, mediante (new Date()).getTime()
)
dar resultados inesperados.
Manejo de errores
Si intentas registrar un evento con argumentos no válidos, se mostrará un error de JavaScript. no se registrará el controlador de eventos. Si se produce un error mientras se maneja un evento o si un el controlador de eventos devuelve una respuesta de bloqueo no válida, se registra un mensaje de error en el consola y se ignora el controlador para esa solicitud.
Ejemplos
En el siguiente ejemplo, se muestra cómo bloquear todas las solicitudes a www.evil.com
:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {cancel: details.url.indexOf("://www.evil.com/") != -1};
},
{urls: ["<all_urls>"]},
["blocking"]
);
Como esta función usa un controlador de eventos de bloqueo, requiere el "webRequest"
y el
"webRequestBlocking"
en el archivo de manifiesto.
El siguiente ejemplo logra el mismo objetivo de una manera más eficiente porque las solicitudes que no son
orientados a www.evil.com
no necesitan pasarse a la extensión:
chrome.webRequest.onBeforeRequest.addListener(
function(details) { return {cancel: true}; },
{urls: ["*://www.evil.com/*"]},
["blocking"]
);
En el siguiente ejemplo, se muestra cómo borrar el encabezado de usuario-agente de todas las solicitudes:
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
for (var i = 0; i < details.requestHeaders.length; ++i) {
if (details.requestHeaders[i].name === 'User-Agent') {
details.requestHeaders.splice(i, 1);
break;
}
}
return {requestHeaders: details.requestHeaders};
},
{urls: ["<all_urls>"]},
["blocking", "requestHeaders"]
);
Para probar la API de chrome.webRequest
, haz lo siguiente:
instala la muestra de webRequest desde chrome-extension-samples
en un repositorio de confianza.
Tipos
BlockingResponse
Muestra el valor de los controladores de eventos que tienen el carácter de bloqueo extraInfoSpec. Permite que el controlador de eventos modifique las solicitudes de red.
Propiedades
-
authCredentials
objeto opcional
Solo se utiliza como respuesta al evento onAuthRequired. Si se configura, la solicitud se realiza con las credenciales proporcionadas.
-
contraseña
string
-
username
string
-
-
cancelar
booleano opcional
Si es "true", la solicitud se cancela. Esto evita que se envíe la solicitud. Se puede usar como respuesta a los eventos onBeforeRequest, onBeforeSendHeaders, onHeadersReceived y onAuthRequired.
-
redirectUrl
string opcional
Solo se utiliza como respuesta a los eventos onBeforeRequest y onHeadersReceived. Si se configura, no se envía ni se completa la solicitud original y, en su lugar, se redirecciona a la URL dada. Se permiten los redireccionamientos a esquemas que no sean HTTP, como
data:
. Los redireccionamientos iniciados por una acción de redireccionamiento usan el método de solicitud original para el redireccionamiento, con una excepción: si el redireccionamiento se inicia en la etapa onHeadersReceived, el redireccionamiento se emitirá con el método GET. Se ignoran los redireccionamientos de las URLs con los esquemasws://
ywss://
. -
requestHeaders
HttpHeaders opcional
Solo se usa como respuesta al evento onBeforeSendHeaders. Si se configura, la solicitud se realiza con estos encabezados de solicitud en su lugar.
-
responseHeaders
HttpHeaders opcional
Solo se utiliza como respuesta al evento onHeadersReceived. Si se configura, se supone que el servidor respondió con estos encabezados de respuesta. Solo muestra
responseHeaders
si realmente quieres modificar los encabezados para limitar la cantidad de conflictos (solo una extensión puede modificarresponseHeaders
para cada solicitud).
FormDataItem
Contiene datos que se pasaron dentro de los datos del formulario. En el caso de los formularios con codificación de URL, se almacenan como strings si los datos son strings utf-8 y, de lo contrario, como ArrayBuffer. El formato de datos de formulario es ArrayBuffer. Si form-data representa la carga de un archivo, es una string con nombre de archivo, si se proporcionó ese nombre.
Enum
ArrayBuffer
string
HttpHeaders
Un array de encabezados HTTP. Cada encabezado se representa como un diccionario que contiene las claves name
y value
o binaryValue
.
Tipo
object[]
Propiedades
-
binaryValue
number[] opcional
Valor del encabezado HTTP si no puede representarse con UTF-8, almacenado como valores de bytes individuales (0..255).
-
nombre
string
El nombre del encabezado HTTP.
-
valor
string opcional
El valor del encabezado HTTP si se puede representar con UTF-8.
IgnoredActionType
Enum
"redirect"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
Enum
"responseHeaders"
Especifica que los encabezados de respuesta se deben incluir en el evento.
"Blocking"
Especifica que la solicitud se bloquea hasta que se muestre la función de devolución de llamada.
"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 entre dominios (CORS).
OnBeforeRedirectOptions
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 entre dominios (CORS).
OnBeforeRequestOptions
Enum
"Blocking"
Especifica que la solicitud se bloquea hasta que se muestre 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 entre dominios (CORS).
OnBeforeSendHeadersOptions
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 muestre la función de devolución de llamada.
"extraHeaders"
Especifica que los encabezados pueden infringir el uso compartido de recursos entre dominios (CORS).
OnCompletedOptions
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 entre dominios (CORS).
OnErrorOccurredOptions
Valor
"extraHeaders"
OnHeadersReceivedOptions
Enum
"Blocking"
Especifica que la solicitud se bloquea hasta que se muestre 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 entre dominios (CORS).
OnResponseStartedOptions
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 entre dominios (CORS).
OnSendHeadersOptions
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 entre dominios (CORS).
RequestFilter
Un objeto que describe filtros para aplicar a eventos de webRequest.
Propiedades
-
tabId
número opcional
-
Tipos
ResourceType[] opcional
Una lista de los tipos de solicitud. Se filtrarán las solicitudes que no coincidan con ninguno de los tipos.
-
url
string[]
Una lista de URLs o patrones de URL. Se filtrarán las solicitudes que no coincidan con ninguna de las URLs.
-
windowId
número opcional
ResourceType
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 que se subieron en una solicitud de URL.
Propiedades
-
bytes
Cualquier opcional
Un ArrayBuffer con una copia de los datos.
-
archivo
string opcional
Es una cadena con la ruta de acceso y el nombre del archivo.
Propiedades
MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES
La cantidad máxima de veces que se puede llamar a handlerBehaviorChanged
por intervalo sostenido de 10 minutos. handlerBehaviorChanged
es una llamada a función costosa a la que no se debería llamar con frecuencia.
Valor
20
Métodos
handlerBehaviorChanged()
chrome.webRequest.handlerBehaviorChanged(
callback?: function,
)
Se debe llamar cuando cambie el comportamiento de los controladores de webRequest para evitar un manejo incorrecto debido al almacenamiento en caché. Esta llamada a función es costosa. No lo llames a menudo.
Parámetros
-
callback
función opcional
El parámetro
callback
se ve de la siguiente manera:() => void
Muestra
-
Promesa<void>
Chrome 116 y versiones posterioresLas promesas son compatibles con Manifest V3 y versiones posteriores, pero se proporcionan devoluciones de llamada para retrocompatibilidad. No puedes usar ambos en la misma llamada a función. El se resuelve con el mismo tipo que se pasa a la devolución de llamada.
Eventos
onActionIgnored
chrome.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
-
acción
La acción propuesta que se ignoró.
-
requestId
string
El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.
-
-
onAuthRequired
chrome.webRequest.onAuthRequired.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnAuthRequiredOptions[],
)
Se activa cuando se recibe un error de autenticación. El objeto de escucha tiene tres opciones: puede proporcionar credenciales de autenticación, cancelar la solicitud y mostrar la página de error, o no realizar ninguna acción sobre el desafío. Si se proporcionan credenciales de usuario incorrectas, es posible que se lo llame varias veces para la misma solicitud. Ten en cuenta que solo se debe especificar uno de los modos 'blocking'
o 'asyncBlocking'
en el parámetro extraInfoSpec
.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(details: object, asyncCallback?: function) => BlockingResponse | undefined
-
detalles
objeto
-
oponente
objeto
El servidor que solicita autenticación
-
host
string
-
puerto
número
-
-
documentId
string
Chrome 106 y versiones posterioresEl UUID del documento que realiza la solicitud.
-
documentLifecycleChrome 106 y versiones posteriores
El ciclo de vida del documento.
-
frameId
número
El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (
type
esmain_frame
osub_frame
),frameId
indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña. -
frameTypeChrome 106 y versiones posteriores
El tipo de marco en el que se produjo la solicitud.
-
iniciador
string opcional
Chrome 63 y versiones posterioresEl origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.
-
isProxy
boolean
Verdadero para Proxy-Authenticate, falso para WWW-Authenticate.
-
method
string
Método HTTP estándar
-
parentDocumentId
string opcional
Chrome 106 y versiones posterioresEl UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.
-
parentFrameId
número
ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.
-
dominio
string opcional
El dominio de autenticación que proporciona el servidor, si existe.
-
requestId
string
El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.
-
responseHeaders
HttpHeaders opcional
Los encabezados de respuesta HTTP que se recibieron junto con esta respuesta.
-
esquema
string
El esquema de autenticación, p.ej., Básico o Resumen.
-
Código de error
número
Chrome 43 y versiones posterioresCódigo de estado HTTP estándar que muestra el servidor.
-
statusLine
string
Línea de estado HTTP de la respuesta o el mensaje "HTTP/0.9 200 OK" para respuestas HTTP/0.9 (es decir, respuestas que no tienen una línea de estado) o una cadena vacía si no hay encabezados.
-
tabId
número
El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.
-
timeStamp
número
El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.
-
tipo
Cómo se usará el recurso solicitado.
-
url
string
-
-
asyncCallback
función opcional
Chrome 58 y versiones posterioresEl parámetro
asyncCallback
se ve de la siguiente manera:(response: BlockingResponse) => void
-
respuesta
-
-
muestra
BlockingResponse | indefinido
Si se encuentra "bloqueando" se especifica en el campo "extraInfoSpec" , el objeto de escucha de eventos debe mostrar un objeto de este tipo.
-
-
filter
-
extraInfoSpec
OnAuthRequiredOptions[] opcional
onBeforeRedirect
chrome.webRequest.onBeforeRedirect.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRedirectOptions[],
)
Se activa cuando está por ocurrir un redireccionamiento iniciado por el servidor.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(details: object) => void
-
detalles
objeto
-
documentId
string
Chrome 106 y versiones posterioresEl UUID del documento que realiza la solicitud.
-
documentLifecycleChrome 106 y versiones posteriores
El ciclo de vida del documento.
-
frameId
número
El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (
type
esmain_frame
osub_frame
),frameId
indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña. -
frameTypeChrome 106 y versiones posteriores
El tipo de marco en el que se produjo la solicitud.
-
fromCache
boolean
Indica si esta respuesta se recuperó de la caché del disco.
-
iniciador
string opcional
Chrome 63 y versiones posterioresEl origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.
-
ip
string opcional
La dirección IP del servidor al que se envió la solicitud. Ten en cuenta que puede ser una dirección IPv6 literal.
-
method
string
Método HTTP estándar
-
parentDocumentId
string opcional
Chrome 106 y versiones posterioresEl UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.
-
parentFrameId
número
ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.
-
redirectUrl
string
La nueva URL.
-
requestId
string
El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.
-
responseHeaders
HttpHeaders opcional
Los encabezados de respuesta HTTP que se recibieron junto con este redireccionamiento.
-
Código de error
número
Código de estado HTTP estándar que muestra el servidor.
-
statusLine
string
Línea de estado HTTP de la respuesta o el mensaje "HTTP/0.9 200 OK" para respuestas HTTP/0.9 (es decir, respuestas que no tienen una línea de estado) o una cadena vacía si no hay encabezados.
-
tabId
número
El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.
-
timeStamp
número
El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.
-
tipo
Cómo se usará el recurso solicitado.
-
url
string
-
-
-
filter
-
extraInfoSpec
OnBeforeRedirectOptions[] opcional
onBeforeRequest
chrome.webRequest.onBeforeRequest.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRequestOptions[],
)
Se activa cuando está por ocurrir una solicitud.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(details: object) => BlockingResponse | undefined
-
detalles
objeto
-
documentId
string opcional
Chrome 106 y versiones posterioresEl UUID del documento que realiza la solicitud.
-
documentLifecycle
extensionTypes.DocumentLifecycle optional
Chrome 106 y versiones posterioresEl ciclo de vida del documento.
-
frameId
número
El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (
type
esmain_frame
osub_frame
),frameId
indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña. -
frameType
extensionTypes.FrameType optional
Chrome 106 y versiones posterioresEl tipo de marco en el que se produjo la solicitud.
-
iniciador
string opcional
Chrome 63 y versiones posterioresEl origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.
-
method
string
Método HTTP estándar
-
parentDocumentId
string opcional
Chrome 106 y versiones posterioresEl UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.
-
parentFrameId
número
ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.
-
requestBody
objeto opcional
Contiene los datos del cuerpo de la solicitud HTTP. Solo se proporciona si extraInfoSpec contiene “requestBody”.
-
error
string opcional
Se producen errores cuando se obtienen los datos del cuerpo de la solicitud.
-
formData
objeto opcional
Si el método de solicitud es POST y el cuerpo es una secuencia de pares clave-valor codificados en UTF8, codificados como multipart/form-data o application/x-www-form-urlencoded, este diccionario está presente y, para cada clave, contiene la lista de todos los valores de esa clave. Si los datos son de otro tipo de medio o si tienen errores de formato, el diccionario no estará presente. Un valor de ejemplo de este diccionario es {'key': ['value1', 'value2']}.
-
sin procesar
UploadData[] opcional
Si el método de solicitud es PUT o POST, y el cuerpo aún no se analiza en formData, los elementos del cuerpo de la solicitud sin analizar se encuentran en este array.
-
-
requestId
string
El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.
-
tabId
número
El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.
-
timeStamp
número
El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.
-
tipo
Cómo se usará el recurso solicitado.
-
url
string
-
-
muestra
BlockingResponse | indefinido
Si se encuentra "bloqueando" se especifica en el campo "extraInfoSpec" , el objeto de escucha de eventos debe mostrar un objeto de este tipo.
-
-
filter
-
extraInfoSpec
OnBeforeRequestOptions[] opcional
onBeforeSendHeaders
chrome.webRequest.onBeforeSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeSendHeadersOptions[],
)
Se activa antes de enviar una solicitud HTTP, una vez que los encabezados de la solicitud están disponibles. Esto puede ocurrir después de que se establezca una conexión TCP al servidor, pero antes de que se envíen los datos HTTP.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(details: object) => BlockingResponse | undefined
-
detalles
objeto
-
documentId
string
Chrome 106 y versiones posterioresEl UUID del documento que realiza la solicitud.
-
documentLifecycleChrome 106 y versiones posteriores
El ciclo de vida del documento.
-
frameId
número
El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (
type
esmain_frame
osub_frame
),frameId
indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña. -
frameTypeChrome 106 y versiones posteriores
El tipo de marco en el que se produjo la solicitud.
-
iniciador
string opcional
Chrome 63 y versiones posterioresEl origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.
-
method
string
Método HTTP estándar
-
parentDocumentId
string opcional
Chrome 106 y versiones posterioresEl UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.
-
parentFrameId
número
ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.
-
requestHeaders
HttpHeaders opcional
Los encabezados de la solicitud HTTP que se enviarán con esta solicitud.
-
requestId
string
El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.
-
tabId
número
El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.
-
timeStamp
número
El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.
-
tipo
Cómo se usará el recurso solicitado.
-
url
string
-
-
muestra
BlockingResponse | indefinido
Si se encuentra "bloqueando" se especifica en el campo "extraInfoSpec" , el objeto de escucha de eventos debe mostrar un objeto de este tipo.
-
-
filter
-
extraInfoSpec
OnBeforeSendHeadersOptions[] opcional
onCompleted
chrome.webRequest.onCompleted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnCompletedOptions[],
)
Se activa cuando se completa una solicitud.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(details: object) => void
-
detalles
objeto
-
documentId
string
Chrome 106 y versiones posterioresEl UUID del documento que realiza la solicitud.
-
documentLifecycleChrome 106 y versiones posteriores
El ciclo de vida del documento.
-
frameId
número
El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (
type
esmain_frame
osub_frame
),frameId
indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña. -
frameTypeChrome 106 y versiones posteriores
El tipo de marco en el que se produjo la solicitud.
-
fromCache
boolean
Indica si esta respuesta se recuperó de la caché del disco.
-
iniciador
string opcional
Chrome 63 y versiones posterioresEl origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.
-
ip
string opcional
La dirección IP del servidor al que se envió la solicitud. Ten en cuenta que puede ser una dirección IPv6 literal.
-
method
string
Método HTTP estándar
-
parentDocumentId
string opcional
Chrome 106 y versiones posterioresEl UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.
-
parentFrameId
número
ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.
-
requestId
string
El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.
-
responseHeaders
HttpHeaders opcional
Los encabezados de respuesta HTTP que se recibieron junto con esta respuesta.
-
Código de error
número
Código de estado HTTP estándar que muestra el servidor.
-
statusLine
string
Línea de estado HTTP de la respuesta o el mensaje "HTTP/0.9 200 OK" para respuestas HTTP/0.9 (es decir, respuestas que no tienen una línea de estado) o una cadena vacía si no hay encabezados.
-
tabId
número
El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.
-
timeStamp
número
El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.
-
tipo
Cómo se usará el recurso solicitado.
-
url
string
-
-
-
filter
-
extraInfoSpec
OnCompletedOptions[] opcional
onErrorOccurred
chrome.webRequest.onErrorOccurred.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnErrorOccurredOptions[],
)
Se activa cuando se produce un error.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(details: object) => void
-
detalles
objeto
-
documentId
string
Chrome 106 y versiones posterioresEl UUID del documento que realiza la solicitud. Este valor no está presente si la solicitud es una navegación de un marco.
-
documentLifecycleChrome 106 y versiones posteriores
El ciclo de vida del documento.
-
error
string
La descripción del error. No se garantiza que esta cadena siga siendo retrocompatible entre versiones. No debe analizar su contenido ni actuar en función de este.
-
frameId
número
El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (
type
esmain_frame
osub_frame
),frameId
indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña. -
frameTypeChrome 106 y versiones posteriores
El tipo de marco en el que se produjo la solicitud.
-
fromCache
boolean
Indica si esta respuesta se recuperó de la caché del disco.
-
iniciador
string opcional
Chrome 63 y versiones posterioresEl origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.
-
ip
string opcional
La dirección IP del servidor al que se envió la solicitud. Ten en cuenta que puede ser una dirección IPv6 literal.
-
method
string
Método HTTP estándar
-
parentDocumentId
string opcional
Chrome 106 y versiones posterioresEl UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.
-
parentFrameId
número
ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.
-
requestId
string
El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.
-
tabId
número
El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.
-
timeStamp
número
El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.
-
tipo
Cómo se usará el recurso solicitado.
-
url
string
-
-
-
filter
-
extraInfoSpec
OnErrorOccurredOptions[] opcional
onHeadersReceived
chrome.webRequest.onHeadersReceived.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnHeadersReceivedOptions[],
)
Se activa cuando se reciben los encabezados de respuesta HTTP de una solicitud.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(details: object) => BlockingResponse | undefined
-
detalles
objeto
-
documentId
string
Chrome 106 y versiones posterioresEl UUID del documento que realiza la solicitud.
-
documentLifecycleChrome 106 y versiones posteriores
El ciclo de vida del documento.
-
frameId
número
El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (
type
esmain_frame
osub_frame
),frameId
indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña. -
frameTypeChrome 106 y versiones posteriores
El tipo de marco en el que se produjo la solicitud.
-
iniciador
string opcional
Chrome 63 y versiones posterioresEl origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.
-
method
string
Método HTTP estándar
-
parentDocumentId
string opcional
Chrome 106 y versiones posterioresEl UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.
-
parentFrameId
número
ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.
-
requestId
string
El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.
-
responseHeaders
HttpHeaders opcional
Los encabezados de respuesta HTTP que se recibieron con esta respuesta.
-
Código de error
número
Chrome 43 y versiones posterioresCódigo de estado HTTP estándar que muestra el servidor.
-
statusLine
string
Línea de estado HTTP de la respuesta o el mensaje "HTTP/0.9 200 OK" cadena para respuestas HTTP/0.9 (es decir, respuestas que no tienen una línea de estado).
-
tabId
número
El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.
-
timeStamp
número
El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.
-
tipo
Cómo se usará el recurso solicitado.
-
url
string
-
-
muestra
BlockingResponse | indefinido
Si se encuentra "bloqueando" se especifica en el campo "extraInfoSpec" , el objeto de escucha de eventos debe mostrar un objeto de este tipo.
-
-
filter
-
extraInfoSpec
OnHeadersReceivedOptions[] opcional
onResponseStarted
chrome.webRequest.onResponseStarted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnResponseStartedOptions[],
)
Se activa cuando se recibe el primer byte del cuerpo de la respuesta. Para las solicitudes HTTP, esto significa que la línea de estado y los encabezados de respuesta están disponibles.
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(details: object) => void
-
detalles
objeto
-
documentId
string
Chrome 106 y versiones posterioresEl UUID del documento que realiza la solicitud.
-
documentLifecycleChrome 106 y versiones posteriores
El ciclo de vida del documento.
-
frameId
número
El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (
type
esmain_frame
osub_frame
),frameId
indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña. -
frameTypeChrome 106 y versiones posteriores
El tipo de marco en el que se produjo la solicitud.
-
fromCache
boolean
Indica si esta respuesta se recuperó de la caché del disco.
-
iniciador
string opcional
Chrome 63 y versiones posterioresEl origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.
-
ip
string opcional
La dirección IP del servidor al que se envió la solicitud. Ten en cuenta que puede ser una dirección IPv6 literal.
-
method
string
Método HTTP estándar
-
parentDocumentId
string opcional
Chrome 106 y versiones posterioresEl UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.
-
parentFrameId
número
ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.
-
requestId
string
El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.
-
responseHeaders
HttpHeaders opcional
Los encabezados de respuesta HTTP que se recibieron junto con esta respuesta.
-
Código de error
número
Código de estado HTTP estándar que muestra el servidor.
-
statusLine
string
Línea de estado HTTP de la respuesta o el mensaje "HTTP/0.9 200 OK" para respuestas HTTP/0.9 (es decir, respuestas que no tienen una línea de estado) o una cadena vacía si no hay encabezados.
-
tabId
número
El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.
-
timeStamp
número
El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.
-
tipo
Cómo se usará el recurso solicitado.
-
url
string
-
-
-
filter
-
extraInfoSpec
OnResponseStartedOptions[] opcional
onSendHeaders
chrome.webRequest.onSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnSendHeadersOptions[],
)
Se activa justo antes de que se envíe una solicitud al servidor (las modificaciones de devoluciones de llamada anteriores onBeforeSendHeaders son visibles cuando se activa onSendHeaders).
Parámetros
-
callback
función
El parámetro
callback
se ve de la siguiente manera:(details: object) => void
-
detalles
objeto
-
documentId
string
Chrome 106 y versiones posterioresEl UUID del documento que realiza la solicitud.
-
documentLifecycleChrome 106 y versiones posteriores
El ciclo de vida del documento.
-
frameId
número
El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (
type
esmain_frame
osub_frame
),frameId
indica el ID de este marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña. -
frameTypeChrome 106 y versiones posteriores
El tipo de marco en el que se produjo la solicitud.
-
iniciador
string opcional
Chrome 63 y versiones posterioresEl origen donde se inició la solicitud. Esto no cambia a través de los redireccionamientos. Si se trata de un origen opaco, la cadena "null" que se usará.
-
method
string
Método HTTP estándar
-
parentDocumentId
string opcional
Chrome 106 y versiones posterioresEl UUID del documento superior que contiene este marco. Esto no se establece si no hay un elemento superior.
-
parentFrameId
número
ID del marco que une el marco que envió la solicitud. Configúralo en -1 si no existe un marco superior.
-
requestHeaders
HttpHeaders opcional
Los encabezados de la solicitud HTTP que se enviaron con esta solicitud.
-
requestId
string
El ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador. Como resultado, podrían usarse para relacionar diferentes eventos de la misma solicitud.
-
tabId
número
El ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.
-
timeStamp
número
El tiempo en el que se activa este indicador, en milisegundos desde el ciclo de entrenamiento.
-
tipo
Cómo se usará el recurso solicitado.
-
url
string
-
-
-
filter
-
extraInfoSpec
OnSendHeadersOptions[] opcional