Descripción
La API de chrome.declarativeNetRequest
se usa para bloquear o modificar solicitudes de red mediante la especificación de reglas declarativas. Esto permite que las extensiones modifiquen las solicitudes de red sin interceptarlas ni ver su contenido, lo que proporciona más privacidad.
Permisos
declarativeNetRequest
declarativeNetRequestWithHostAccess
declarativeNetRequestFeedback
host_permissions
Disponibilidad
Manifest
Además de los permisos descritos anteriormente, ciertos tipos de conjuntos de reglas (en concreto, las estáticas), requieren que se declare la clave de manifiesto "declarative_net_request"
, que debe ser un diccionario con una sola clave llamada "rule_resources"
. Esta clave es un array que contiene diccionarios de tipo Ruleset
, como se muestra a continuación. (Ten en cuenta que el nombre “Conjunto de reglas” no aparece en el archivo JSON del manifiesto, ya que se trata solo de un array). Los conjuntos de reglas estáticos se explican más adelante en este documento.
{
"name": "My extension",
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
}, {
"id": "ruleset_2",
"enabled": false,
"path": "rules_2.json"
}]
},
"permissions": [
"declarativeNetRequest",
"declarativeNetRequestFeedback",
],
"host_permissions": [
"http://www.blogger.com/*",
"http://*.google.com/*"
],
...
}
Conceptos y uso
Para usar esta API, especifica uno o más conjuntos de reglas. Un conjunto de reglas contiene un array de reglas. Una sola regla realiza una de las siguientes acciones:
- Bloquea una solicitud de red.
- Actualiza el esquema (de HTTP a HTTPS).
- Para evitar que se bloquee una solicitud, anula las reglas bloqueadas que coincidan.
- Redireccionar una solicitud de red
- Modifica los encabezados de solicitud o respuesta.
Existen tres tipos de conjuntos de reglas, que se administran de maneras ligeramente diferentes.
- Dinámica
- Conservan en todas las sesiones del navegador y las actualizaciones de extensiones. Se administran con JavaScript mientras una extensión está en uso.
- Sesión
- Se borran cuando se cierra el navegador y cuando se instala una versión nueva de la extensión. Las reglas de sesión se administran con JavaScript mientras se usa una extensión.
- Estático
- Empaquetado, instalado y actualizado cuando se instala o actualiza una extensión. Las reglas estáticas se almacenan en archivos de reglas con formato JSON y se enumeran en el archivo de manifiesto.
En las siguientes secciones, se explican los tipos de conjuntos de reglas en detalle.
Conjuntos de reglas dinámicos y centrados en la sesión
Los conjuntos de reglas dinámicos y de sesión se administran con JavaScript mientras se usa una extensión.
- Las reglas dinámicas persisten en todas las sesiones del navegador y las actualizaciones de extensiones.
- Las reglas de sesión se borran cuando se cierra el navegador y cuando se instala una nueva versión de la extensión.
Solo hay uno de cada uno de estos tipos de conjuntos de reglas. Una extensión puede agregarlas o quitarlas de forma dinámica si llama a updateDynamicRules()
y updateSessionRules()
, siempre que no se excedan los límites de las reglas. Para obtener información sobre los límites de las reglas, consulta Límites de las reglas. Puedes ver un ejemplo en Ejemplos de código.
Conjuntos de reglas estáticas
A diferencia de las reglas dinámicas y de sesión, las reglas estáticas se empaquetan, instalan y actualizan cuando se instala o actualiza una extensión. Se almacenan en archivos de reglas en formato JSON, que se indican a la extensión con las claves "declarative_net_request"
y "rule_resources"
como se describió anteriormente, así como con uno o más diccionarios Ruleset
. Un diccionario Ruleset
contiene una ruta al archivo de reglas, un ID para el conjunto de reglas contenido en el archivo y si el conjunto de reglas está habilitado o inhabilitado. Las dos últimas son importantes cuando habilitas o inhabilitas un conjunto de reglas de manera programática.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
Para probar los archivos de reglas, carga la extensión sin empaquetar. Los errores y las advertencias sobre reglas estáticas no válidas se muestran solo para las extensiones sin empaquetar. Se ignoran las reglas estáticas no válidas en las extensiones empaquetadas.
Habilita o inhabilita las reglas y los conjuntos de reglas estáticas
Tanto las reglas estáticas individuales como los conjuntos de reglas estáticas completos se pueden habilitar o inhabilitar durante el tiempo de ejecución.
El conjunto de reglas estáticas y conjuntos de reglas habilitados se conserva en todas las sesiones del navegador. Tampoco se mantienen en las actualizaciones de las extensiones, lo que significa que solo las reglas que dejes en sus archivos de reglas estarán disponibles después de una actualización.
Por motivos de rendimiento, también existen límites para la cantidad de reglas y conjuntos de reglas que se pueden habilitar a la vez. Llama a getAvailableStaticRuleCount()
para consultar la cantidad de reglas adicionales que pueden habilitarse. Para obtener información sobre los límites de las reglas, consulta Límites de las reglas.
Para habilitar o inhabilitar las reglas estáticas, llama a updateStaticRules()
. Este método toma un objeto UpdateStaticRulesOptions
, que contiene arrays de IDs de reglas para habilitar o inhabilitar. Los IDs se definen con la clave "id"
del diccionario Ruleset
.
Para habilitar o inhabilitar los rulesets estáticos, llama a updateEnabledRulesets()
. Este método toma un objeto UpdateRulesetOptions
, que contiene arrays de IDs de conjuntos de reglas para habilitar o inhabilitar. Los IDs se definen con la clave "id"
del diccionario Ruleset
.
Crea reglas
Independientemente del tipo, una regla comienza con cuatro campos, como se muestra a continuación. Si bien las claves "id"
y "priority"
toman un número, las claves "action"
y "condition"
pueden proporcionar varias condiciones de bloqueo y redireccionamiento. La siguiente regla bloquea todas las solicitudes de secuencias de comandos que se originan en "foo.com"
a cualquier URL con "abc"
como substring.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
urlFilter caracteres coincidentes
La clave "condition"
de una regla permite una clave "urlFilter"
para actuar sobre las URLs de un dominio especificado. Puedes crear patrones con tokens de coincidencia de patrones. A continuación, se muestran algunos ejemplos.
urlFilter |
Mostrar coincidencias | No coincide |
---|---|---|
"abc" |
https://abcd.com https://example.com/abcd |
https://ab.com |
"abc*d" |
https://abcd.com https://example.com/abcxyzd |
https://abc.com |
"||a.example.com" |
https://a.example.com/ https://b.a.example.com/xyz |
https://example.com/ |
"|https*" |
https://example.com | http://example.com/ http://https.com |
"example*^123|" |
https://example.com/123 http://abc.com/example?123 |
https://example.com/1234 https://abc.com/example0123 |
Priorización de las reglas
Las reglas se activan mediante solicitudes enviadas desde páginas web. Si varias reglas coinciden con una solicitud en particular, se deben priorizar estas reglas. En esta sección, se explica cómo se priorizan. La priorización ocurre en dos etapas.
- La prioridad se determina para las reglas de una extensión.
- Si más de una extensión puede aplicar una regla a una solicitud, la prioridad se determina para todas las extensiones que coincidan con una solicitud en particular.
Si se piensa de esta manera, cualquier regla que priorice una extensión en particular tendrá prioridad respecto de las reglas de otras extensiones.
Priorización de reglas dentro de una extensión
Dentro de una sola extensión, la priorización se determina mediante el siguiente proceso:
- Se muestra la regla con la prioridad más alta definida por el desarrollador (en otras palabras, el campo
"priority"
). Si hay más de una regla con la prioridad más alta definida por el desarrollador, las reglas se priorizan con el campo
"action"
, en el siguiente orden:allow
allowAllRequests
block
upgradeScheme
redirect
Si el tipo de acción no es
block
niredirect
, se evalúan todas las reglasmodifyHeaders
que coincidan. Ten en cuenta que, si hay reglas con una prioridad definida por el desarrollador inferior a la que se especificó paraallow
yallowAllRequests
, se ignorarán esas reglas.Si varias reglas modifican el mismo encabezado, la modificación se determina mediante el campo
"priority"
definido por el desarrollador y por las operaciones especificadas.- Si se adjunta una regla a un encabezado, las reglas de menor prioridad solo podrán adjuntarse a ese encabezado. No se permiten las operaciones de configuración y eliminación.
- Si una regla establece un encabezado, las reglas de menor prioridad solo pueden adjuntarse a ese encabezado. No se permiten otras modificaciones.
- Si una regla quita un encabezado, las reglas de menor prioridad no podrán modificarlo.
Priorización de reglas entre extensiones
Si solo una extensión tiene una regla que coincide con una solicitud, se aplica esa regla. Sin embargo, si hay más de una extensión que coincide con una solicitud, se utiliza el siguiente proceso:
Las reglas se priorizan con el campo
"action"
, en el siguiente orden:block
redirect
oupgradeScheme
allow
oallowAllRequests
Si coincide más de una regla, tendrá prioridad la extensión instalada más recientemente.
Límites de las reglas
Se genera una sobrecarga de rendimiento por la carga y la evaluación de reglas en el navegador, por lo que se aplican algunos límites cuando se usa la API. Los límites dependen del tipo de regla que uses.
Reglas estáticas
Las reglas estáticas son aquellas que se especifican en los archivos de reglas declaradas en el archivo de manifiesto. Una extensión puede especificar hasta 50 rulesets estáticos como parte de la clave de manifiesto "rule_resources"
, pero solo se pueden habilitar 10 de estos conjuntos de reglas a la vez. Esta última se denomina MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
. En conjunto, esos conjuntos de reglas tienen garantizadas al menos 30,000 reglas. Esto se denomina GUARANTEED_MINIMUM_STATIC_RULES
.
La cantidad de reglas disponibles a continuación depende de cuántas reglas estén habilitadas para todas las extensiones instaladas en el navegador del usuario. Puedes encontrar este número en el tiempo de ejecución llamando a getAvailableStaticRuleCount()
. Puedes ver un ejemplo en Ejemplos de código.
Reglas dinámicas y de sesión
Los límites que se aplican a las reglas dinámicas y de sesión son más simples que las estáticas. La cantidad total de ambos no puede ser mayor que 5,000. Esto se denomina MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
.
Reglas que usan regex
Todos los tipos de reglas pueden usar expresiones regulares. Sin embargo, la cantidad total de reglas de regex de cada tipo no puede ser mayor que 1,000. Esto se denomina MAX_NUMBER_OF_REGEX_RULES.
Además, cada regla debe ser inferior a 2 KB una vez compilada. Esto se correlaciona aproximadamente con la complejidad de la regla. Si intentas cargar una regla que exceda este límite, verás una advertencia como la que se muestra a continuación y se ignorará la regla.
rules_1.json: Rule with id 1 specified a more complext regex than allowed
as part of the "regexFilter" key.
Interacciones con service workers
Una declaración declarativeNetRequest solo se aplica a las solicitudes que alcanzan la pila de red. Esto incluye las respuestas de la caché HTTP, pero es posible que no incluyan las respuestas que pasan por el controlador onfetch
de un service worker. declarativeNetRequest no afectará las respuestas generadas por el service worker o recuperadas de CacheStorage
, pero sí las llamadas a fetch()
realizadas en un service worker.
Recursos accesibles de la Web
Una regla declarativeNetRequest no puede redireccionar desde una solicitud de recurso público hacia un recurso al que no se puede acceder desde la Web. Si lo haces, se generará un error. Esto ocurre incluso si el recurso accesible desde la Web especificado es propiedad de la extensión de redireccionamiento. Si deseas declarar recursos para declarativeNetRequest, usa el array "web_accessible_resources"
del manifiesto.
Ejemplos
Ejemplos de código
Actualizar reglas dinámicas
En el siguiente ejemplo, se muestra cómo llamar a updateDynamicRules()
. El procedimiento para updateSessionRules()
es el mismo.
// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);
// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: oldRuleIds,
addRules: newRules
});
Actualizar conjuntos de reglas estáticas
En el siguiente ejemplo, se muestra cómo inhabilitar y habilitar conjuntos de reglas teniendo en cuenta la cantidad de conjuntos de reglas estáticas disponibles y máximas habilitadas. Debes hacerlo cuando la cantidad de reglas estáticas que necesitas supere la cantidad permitida. Para que esto funcione, algunos de tus conjuntos de reglas deben instalarse con algunos de ellos inhabilitados (configura "Enabled"
como false
en el archivo de manifiesto).
async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
// Create the options structure for the call to updateEnabledRulesets()
let options = { enableRulesetIds: enableRulesetIds }
// Get the number of enabled static rules
const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
// Compare rule counts to determine if anything needs to be disabled so that
// new rules can be enabled
const proposedCount = enableRulesetIds.length;
if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
options.disableRulesetIds = disableCandidateIds
}
// Update the enabled static rules
await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}
Ejemplos de reglas
En los siguientes ejemplos, se muestra cómo Chrome prioriza las reglas en una extensión. Cuando las revises, tal vez quieras abrir las reglas de priorización en otra ventana.
La tecla de "prioridad"
Estos ejemplos requieren permiso de host para *://*.example.com/*
.
Para determinar la prioridad de una URL en particular, observa las claves "priority"
(definidas por el desarrollador), las claves "action"
y "urlFilter"
. Estos ejemplos se refieren al archivo de regla de ejemplo que se muestra debajo.
- Navegación a https://google.com
- Hay dos reglas que abarcan esta URL: las reglas con los IDs 1 y 4. Se aplica la regla con el ID 1 porque
"block"
acciones tienen una prioridad superior a"redirect"
. Las reglas restantes no se aplican porque se aplican a URLs más largas. - Navegación a https://google.com/1234
- Debido a la URL más larga, la regla con el ID 2 ahora coincide con las reglas con los IDs 1 y 4. Se aplica la regla con el ID 2 porque
"allow"
tiene una prioridad superior a"block"
y"redirect"
. - Navegación a https://google.com/12345
- Las cuatro reglas coinciden con esta URL. Se aplica la regla con el ID 3 porque su prioridad definida por el desarrollador es la más alta del grupo.
[
{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": {"urlFilter": "google.com", "resourceTypes": ["main_frame"] }
},
{
"id": 2,
"priority": 1,
"action": { "type": "allow" },
"condition": { "urlFilter": "google.com/123", "resourceTypes": ["main_frame"] }
},
{
"id": 3,
"priority": 2,
"action": { "type": "block" },
"condition": { "urlFilter": "google.com/12345", "resourceTypes": ["main_frame"] }
},
{
"id": 4,
"priority": 1,
"action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
"condition": { "urlFilter": "google.com", "resourceTypes": ["main_frame"] }
},
]
Redireccionamientos
El siguiente ejemplo requiere permiso de host para *://*.example.com/*
.
En el siguiente ejemplo, se muestra cómo redireccionar una solicitud de example.com a una página dentro de la propia extensión. La ruta de acceso de la extensión /a.jpg
se resuelve en chrome-extension://EXTENSION_ID/a.jpg
, en el que EXTENSION_ID
es el ID de la extensión. Para que esto funcione, el manifiesto debe declarar /a.jpg
como un recurso accesible desde la Web.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
En el siguiente ejemplo, se usa la clave "transform"
para redireccionar a un subdominio de example.com. Usa un ancla de nombre de dominio ("||") para interceptar solicitudes con cualquier esquema de example.com. La clave "scheme"
en "transform"
especifica que los redireccionamientos al subdominio siempre usarán "https".
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
En el siguiente ejemplo, se usan expresiones regulares para redireccionar de https://www.abc.xyz.com/path
a https://abc.xyz.com/path
. En la tecla "regexFilter"
, observa cómo se escapan los puntos y que el grupo de captura selecciona "abc" o "def". La clave "regexSubstitution"
especifica la primera coincidencia que se muestra de la expresión regular con "\1". En este caso, “abc” se captura de la URL redireccionada y se coloca en la sustitución.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "https://\\1.xyz.com/"
}
},
"condition": {
"regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
"resourceTypes": [
"main_frame"
]
}
}
Encabezados
En el siguiente ejemplo, se quitan todas las cookies de un marco principal y de cualquier submarco.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Tipos
DomainType
Esto describe si la solicitud es propia o de terceros en el marco en el que se originó. Se dice que una solicitud es propia si tiene el mismo dominio (eTLD+1) que el marco en el que se originó.
Enum
"firstParty"
La solicitud de red es propia del marco en el que se originó.
"terceros"
La solicitud de red es de un tercero en el marco en el que se originó.
ExtensionActionOptions
Propiedades
-
displayActionCountAsBadgeText
booleano opcional
Indica si se debe mostrar automáticamente el recuento de acciones de una página como el texto de la insignia de la extensión. Esta preferencia se conserva en todas las sesiones.
-
tabUpdate
TabActionCountUpdate opcional
Chrome 89 y versiones posterioresDetalles de cómo se debe ajustar el recuento de acciones de la pestaña.
GetDisabledRuleIdsOptions
Propiedades
-
rulesetId
cadena
Es el ID correspondiente a un objeto
Ruleset
estático.
GetRulesFilter
Propiedades
-
ruleIds
number[] opcional
Si se especifica, solo se incluyen las reglas con IDs coincidentes.
HeaderOperation
Esto describe las operaciones posibles para una regla "modifyHeaders".
Enum
"append"
Agrega una entrada nueva para el encabezado especificado. No se admite esta operación para los encabezados de solicitud.
"set"
Establece un valor nuevo para el encabezado especificado y quita todos los encabezados existentes con el mismo nombre.
"remove"
Quita todas las entradas del encabezado especificado.
IsRegexSupportedResult
Propiedades
-
isSupported
boolean
-
Reason
UnsupportedRegexReason opcional
Especifica el motivo por el que no se admite la expresión regular. Solo se proporciona si
isSupported
es falso.
MatchedRule
Propiedades
-
ruleId
número
El ID de una regla coincidente.
-
rulesetId
cadena
ID de
Ruleset
al que pertenece esta regla. En el caso de una regla que se origina en un conjunto de reglas dinámicas, el valor será igual aDYNAMIC_RULESET_ID
.
MatchedRuleInfo
Propiedades
-
regla
-
tabId
número
Es el tabId de la pestaña desde la que se originó la solicitud si la pestaña aún está activa. De lo contrario, -1.
-
timeStamp
número
Indica la hora en la que coincidió la regla. Las marcas de tiempo corresponderán a la convención de JavaScript para los horarios, es decir, la cantidad de milisegundos desde el ciclo de entrenamiento.
MatchedRuleInfoDebug
Propiedades
-
request
Detalles sobre la solicitud con la que coincidió la regla.
-
regla
MatchedRulesFilter
Propiedades
-
minTimeStamp
número opcional
Si se especifica, solo coincide con las reglas posteriores a la marca de tiempo dada.
-
tabId
número opcional
Si se especifica, solo coincide con las reglas de la pestaña correspondiente. Coincide con las reglas que no están asociadas con ninguna pestaña activa si se establece en -1.
ModifyHeaderInfo
Propiedades
-
encabezado
cadena
El nombre del encabezado que se modificará.
-
operación
La operación que se realizará en un encabezado.
-
value
cadena opcional
El valor nuevo del encabezado. Se debe especificar para las operaciones
append
yset
.
QueryKeyValue
Propiedades
-
clave
cadena
-
replaceOnly
booleano opcional
Chrome 94 y versiones posterioresSi es verdadero, la clave de consulta se reemplaza solo si ya está presente. De lo contrario, también se agrega la clave si falta. La configuración predeterminada es "false".
-
value
cadena
QueryTransform
Propiedades
-
addOrReplaceParams
QueryKeyValue[] opcional
La lista de pares clave-valor de consulta que se agregarán o reemplazarán.
-
removeParams
string[] opcional
La lista de claves de consulta que se quitarán.
Redirect
Propiedades
-
extensionPath
cadena opcional
Es la ruta de acceso relativa al directorio de la extensión. Debe comenzar con “/”.
-
regexSubstitution
cadena opcional
Patrón de sustitución de reglas que especifican un
regexFilter
. La primera coincidencia deregexFilter
dentro de la URL se reemplazará por este patrón. Dentro deregexSubstitution
, se pueden usar dígitos con escape de barra inversa (de \1 a \9) para insertar los grupos de captura correspondientes. \0 se refiere a todo el texto coincidente. -
transform
URLTransform opcional
Transformaciones de URL que se realizarán.
-
url
cadena opcional
La URL de redireccionamiento. No se permiten redireccionamientos a URLs de JavaScript.
RegexOptions
Propiedades
-
isCaseSensitive
booleano opcional
Si el
regex
especificado distingue mayúsculas de minúsculas. El valor predeterminado es verdadero. -
regex
cadena
La expresión regular que se debe comprobar.
-
requireCapturing
booleano opcional
Indica si el
regex
especificado requiere captura. La captura solo es necesaria para las reglas de redireccionamiento que especifican una acciónregexSubstition
. El valor predeterminado es falso.
RequestDetails
Propiedades
-
documentId
cadena opcional
Chrome 106 y versiones posterioresEl identificador único del documento de marco, si esta solicitud es de un marco.
-
documentLifecycle
DocumentLifecycle opcional
Chrome 106 y versiones posterioresEl ciclo de vida del documento del marco, si esta solicitud es para un fotograma.
-
frameId
número
El valor 0 indica que la solicitud se realiza en el marco principal; un valor positivo indica el ID de una subtrama en la que ocurre la solicitud. Si se carga el documento de un (sub)marco (
type
esmain_frame
osub_frame
),frameId
indica el ID de ese marco, no el ID del marco externo. Los IDs de marco son únicos dentro de una pestaña. -
frameType
FrameType opcional
Chrome 106 y versiones posterioresEl tipo de marco, si la solicitud es para uno.
-
iniciador
cadena opcional
Origen donde se inició la solicitud. Esto no cambia a través de redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".
-
method
cadena
Método HTTP estándar.
-
parentDocumentId
cadena opcional
Chrome 106 y versiones posterioresEl identificador único del documento superior del marco, si esta solicitud es para un marco y tiene un elemento superior.
-
parentFrameId
número
ID del marco que une al marco que envió la solicitud. Se establece en -1 si no existe un marco superior.
-
requestId
cadena
El ID de la solicitud. Los IDs de solicitud son únicos dentro de la sesión del navegador.
-
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.
-
Tipo
Es el tipo de recurso de la solicitud.
-
url
cadena
La URL de la solicitud.
RequestMethod
Esto describe el método de solicitud HTTP de una solicitud de red.
Enum
"head"
"patch"
"put"
ResourceType
Esto describe el tipo de recurso de la solicitud de red.
Enum
"sub_frame"
"script"
"font"
"object"
"xmlhttprequest"
"ping"
"csp_report"
"websocket"
"webbundle"
Rule
Propiedades
-
acción
La acción que se realiza si esta regla coincide.
-
condición
Es la condición en la que se activa esta regla.
-
id
número
Un ID que identifica de forma exclusiva una regla. Es obligatoria y debe ser mayor o igual que 1.
-
priority
número opcional
Prioridad de la regla. El valor predeterminado es 1. Cuando se especifica, debe ser >= 1.
RuleAction
Propiedades
-
Redireccionar
Redireccionamiento opcional
Describe cómo se debe realizar el redireccionamiento. Solo es válido para reglas de redireccionamiento.
-
requestHeaders
ModifyHeaderInfo[] opcional
Chrome 86 y versiones posterioresLos encabezados de solicitud que se deben modificar para la solicitud. Solo es válido si RuleActionType es "modifyHeaders".
-
responseHeaders
ModifyHeaderInfo[] opcional
Chrome 86 y versiones posterioresLos encabezados de respuesta que se deben modificar para la solicitud. Solo es válido si RuleActionType es "modifyHeaders".
-
Tipo
El tipo de acción que se realizará.
RuleActionType
Describe el tipo de acción que se debe realizar si una RuleCondition determinada coincide.
Enum
"block"
Bloquea la solicitud de red.
"redirect"
Redirecciona la solicitud de red.
"allow"
Permite la solicitud de red. No se interceptará la solicitud si hay una regla de permiso que coincida.
"upgradeScheme"
Actualiza el esquema de la URL de solicitud de red a https si la solicitud es http o ftp.
"modifyHeaders"
Modifica los encabezados de solicitud o respuesta desde la solicitud de red.
"allowAllRequests"
Permite todas las solicitudes dentro de una jerarquía de marcos, incluida la solicitud de marco en sí.
RuleCondition
Propiedades
-
domainType
DomainType opcional
Especifica si la solicitud de red es propia o de terceros del dominio donde se originó. Si se omite, se aceptan todas las solicitudes.
-
dominios
string[] opcional
Obsoleta a partir de Chrome 101En su lugar, usa
initiatorDomains
.La regla solo hará coincidir las solicitudes de red que se originen en la lista de
domains
. -
excludedDomains
string[] opcional
Obsoleta a partir de Chrome 101En su lugar, usa
excludedInitiatorDomains
.La regla no coincidirá con las solicitudes de red que se originan en la lista de
excludedDomains
. -
excludedInitiatorDomains
string[] opcional
Chrome 101 y versiones posterioresLa regla no coincidirá con las solicitudes de red que se originan en la lista de
excludedInitiatorDomains
. Si la lista está vacía o se omite, no se excluirá ningún dominio. Este campo tiene prioridad sobreinitiatorDomains
.Notas:
- También se permiten subdominios como "a.example.com".
- Las entradas deben constar solo de caracteres ASCII.
- Usa la codificación punycode para dominios internacionalizados.
- Coincide con el iniciador de la solicitud y no con la URL de la solicitud.
- También se excluyen los subdominios de los dominios enumerados.
-
excludedRequestDomains
string[] opcional
Chrome 101 y versiones posterioresLa regla no coincidirá con las solicitudes de red cuando los dominios coincidan con una de la lista de
excludedRequestDomains
. Si la lista está vacía o se omite, no se excluirá ningún dominio. Este campo tiene prioridad sobrerequestDomains
.Notas:
- También se permiten subdominios como "a.example.com".
- Las entradas deben constar solo de caracteres ASCII.
- Usa la codificación punycode para dominios internacionalizados.
- También se excluyen los subdominios de los dominios enumerados.
-
excludedRequestMethods
RequestMethod[] opcional
Chrome 91 y versiones posterioresLista de métodos de solicitud con los que la regla no coincidirá. Solo se debe especificar uno de
requestMethods
oexcludedRequestMethods
. Si no se especifica ninguno de ellos, se establece una coincidencia con todos los métodos de solicitud. -
excludedResourceTypes
ResourceType[] opcional
Lista de tipos de recursos con los que la regla no coincidirá. Solo se debe especificar uno de
resourceTypes
oexcludedResourceTypes
. Si no se especifica ninguno de ellos, se bloquearán todos los tipos de recursos, excepto "main_frame". -
excludedTabIds
number[] opcional
Chrome 92 y versiones posterioresLista de
tabs.Tab.id
con las que la regla no debe coincidir. El ID detabs.TAB_ID_NONE
excluye las solicitudes que no se originan en una pestaña. Solo es compatible con reglas centradas en la sesión. -
initiatorDomains
string[] opcional
Chrome 101 y versiones posterioresLa regla solo hará coincidir las solicitudes de red que se originen en la lista de
initiatorDomains
. Si se omite la lista, la regla se aplica a las solicitudes de todos los dominios. No se permite una lista vacía.Notas:
- También se permiten subdominios como "a.example.com".
- Las entradas deben constar solo de caracteres ASCII.
- Usa la codificación punycode para dominios internacionalizados.
- Coincide con el iniciador de la solicitud y no con la URL de la solicitud.
- También se establecen coincidencias con los subdominios de los dominios enumerados.
-
isUrlFilterCaseSensitive
booleano opcional
Si
urlFilter
oregexFilter
(lo que se especifique) distinguen mayúsculas de minúsculas El valor predeterminado es falso. -
regexFilter
cadena opcional
Expresión regular que debe coincidir con la URL de la solicitud de red. Esto sigue la sintaxis RE2.
Nota: Solo se puede especificar uno de
urlFilter
oregexFilter
.Nota: El elemento
regexFilter
debe contener solo caracteres ASCII. Se compara con una URL en la que el host está codificado en formato punycode (en el caso de los dominios internacionalizados) y cualquier otro carácter que no sea ASCII se codifica como URL en utf-8. -
requestDomains
string[] opcional
Chrome 101 y versiones posterioresLa regla solo coincidirá con las solicitudes de red cuando el dominio coincida con una de la lista de
requestDomains
. Si se omite la lista, la regla se aplica a las solicitudes de todos los dominios. No se permite una lista vacía.Notas:
- También se permiten subdominios como "a.example.com".
- Las entradas deben constar solo de caracteres ASCII.
- Usa la codificación punycode para dominios internacionalizados.
- También se establecen coincidencias con los subdominios de los dominios enumerados.
-
requestMethods
RequestMethod[] opcional
Chrome 91 y versiones posterioresLista de métodos de solicitud HTTP con los que la regla puede coincidir. No se permite una lista vacía.
Nota: Si especificas una condición de regla
requestMethods
, también se excluirán las solicitudes que no sean HTTP(s), mientras que si especificasexcludedRequestMethods
, no. -
resourceTypes
ResourceType[] opcional
Lista de tipos de recursos con los que la regla puede coincidir. No se permite una lista vacía.
Nota: Esto se debe especificar para las reglas de
allowAllRequests
y solo puede incluir los tipos de recursossub_frame
ymain_frame
. -
tabIds
number[] opcional
Chrome 92 y versiones posterioresLista de
tabs.Tab.id
con las que la regla debe coincidir. Un ID detabs.TAB_ID_NONE
coincide con las solicitudes que no se originan en una pestaña. No se permite una lista vacía. Solo es compatible con reglas centradas en la sesión. -
urlFilter
cadena opcional
El patrón que se compara con la URL de la solicitud de red. Construcciones admitidas:
'*' : Comodín: Coincide con cualquier cantidad de caracteres.
'|': Anclaje a la izquierda/derecha. Si se usa en cualquiera de los extremos del patrón, especifica el principio o el final de la URL, respectivamente.
'||': Si se usa al principio del patrón, especifica el inicio de un (sub)dominio de la URL.
'^' : carácter de separador: coincide con cualquier elemento, excepto una letra, un dígito o uno de los siguientes elementos:
_
,-
,.
o%
. También coincide con el final de la URL.Por lo tanto,
urlFilter
se compone de las siguientes partes: (anclaje izquierdo o del nombre de dominio opcional) + patrón + (anclaje derecho opcional).Si se omite, se establece la coincidencia con todas las URLs. No se permite una cadena vacía.
No se permite un patrón que comience con
||*
. Se usa*
en su lugar.Nota: Solo se puede especificar uno de
urlFilter
oregexFilter
.Nota: El elemento
urlFilter
debe contener solo caracteres ASCII. Se compara con una URL en la que el host está codificado en formato punycode (en el caso de los dominios internacionalizados) y cualquier otro carácter que no sea ASCII se codifica como URL en utf-8. Por ejemplo, si la URL de la solicitud es http://abc.abc?q=Ą, laurlFilter
se compara con la URL http://abc.xn--p1ai/?q=%D1%84.
Ruleset
Propiedades
-
habilitado
boolean
Indica si el conjunto de reglas está habilitado de forma predeterminada.
-
id
cadena
Es una cadena que no está vacía que identifica de forma inequívoca el conjunto de reglas. Los ID que comienzan con “_” están reservados para uso interno.
-
ruta de acceso
cadena
Es la ruta de acceso del conjunto de reglas JSON en relación con el directorio de la extensión.
RulesMatchedDetails
Propiedades
-
rulesMatchedInfo
Las reglas coinciden con el filtro especificado.
TabActionCountUpdate
Propiedades
-
increment
número
La cantidad en la que se debe aumentar el recuento de acciones de la pestaña. Los valores negativos disminuirán la cantidad.
-
tabId
número
La pestaña para la que se actualiza el recuento de acciones.
TestMatchOutcomeResult
Propiedades
-
matchedRules
Las reglas (si las hay) que coinciden con la solicitud hipotética.
TestMatchRequestDetails
Propiedades
-
iniciador
cadena opcional
Es la URL del iniciador (si existe) de la solicitud hipotética.
-
method
RequestMethod opcional
Método HTTP estándar de la solicitud hipotética. La configuración predeterminada es “get” para las solicitudes HTTP y se ignora para las solicitudes que no son HTTP.
-
tabId
número opcional
El ID de la pestaña en la que se realiza la solicitud hipotética. No es necesario que corresponda a un ID de pestaña real. El valor predeterminado es -1, lo que significa que la solicitud no está relacionada con una pestaña.
-
Tipo
El tipo de recurso de la solicitud hipotética.
-
url
cadena
Es la URL de la solicitud hipotética.
UnsupportedRegexReason
Describe el motivo por el que no se admite una expresión regular determinada.
Enum
"syntaxError"
La expresión regular es sintácticamente incorrecta o usa funciones que no están disponibles en la sintaxis RE2.
"memoryLimit permanecer"
La expresión regular supera el límite de memoria.
UpdateRuleOptions
Propiedades
-
addRules
Regla[] opcional
Reglas para agregar.
-
removeRuleIds
number[] opcional
ID de las reglas que se quitarán. Se ignorarán los IDs no válidos.
UpdateRulesetOptions
Propiedades
UpdateStaticRulesOptions
Propiedades
-
disableRuleIds
number[] opcional
Es un conjunto de IDs correspondientes a las reglas de
Ruleset
que se debe inhabilitar. -
enableRuleIds
number[] opcional
Es un conjunto de IDs correspondientes a las reglas de
Ruleset
que se habilitarán. -
rulesetId
cadena
Es el ID correspondiente a un objeto
Ruleset
estático.
URLTransform
Propiedades
-
fragment
cadena opcional
El nuevo fragmento de la solicitud. Debe estar vacío, en cuyo caso se borra el fragmento existente, o debe comenzar con "'#'".
-
host
cadena opcional
El nuevo host de la solicitud.
-
contraseña
cadena opcional
La contraseña nueva para la solicitud.
-
ruta de acceso
cadena opcional
La nueva ruta de acceso para la solicitud. Si está vacío, se borra la ruta existente.
-
puerto
cadena opcional
El nuevo puerto para la solicitud. Si está vacío, se borra el puerto existente.
-
búsqueda
cadena opcional
La consulta nueva para la solicitud. Debe estar vacía. En ese caso, se borra la consulta existente o debe comenzar con '?'.
-
queryTransform
QueryTransform opcional
Agrega, quita o reemplaza pares clave-valor de consulta.
-
esquema
cadena opcional
Esquema nuevo para la solicitud. Los valores permitidos son "http", "https", "ftp" y "chrome-extension".
-
username
cadena opcional
El nuevo nombre de usuario para la solicitud.
Propiedades
DYNAMIC_RULESET_ID
Es el ID del conjunto de reglas de las reglas dinámicas que agregó la extensión.
Valor
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
Es el intervalo de tiempo dentro del cual se pueden realizar llamadas de MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
, especificado en minutos. Las llamadas adicionales fallarán de inmediato y se configurarán runtime.lastError
. Nota: Las llamadas de getMatchedRules
asociadas con un gesto del usuario están exentas de la cuota.
Valor
10
GUARANTEED_MINIMUM_STATIC_RULES
Es la cantidad mínima de reglas estáticas garantizadas para una extensión en sus conjuntos de reglas estáticas habilitadas. Las reglas que superen ese límite se tendrán en cuenta para el límite de reglas estáticas globales.
Valor
30,000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
La cantidad de veces que se puede llamar a getMatchedRules
en un período de GETMATCHEDRULES_QUOTA_INTERVAL
.
Valor
20
MAX_NUMBER_OF_DYNAMIC_RULES
Indica la cantidad máxima de reglas dinámicas que puede agregar una extensión.
Valor
30,000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Es la cantidad máxima de Rulesets
estáticos que una extensión puede habilitar al mismo tiempo.
Valor
50
MAX_NUMBER_OF_REGEX_RULES
La cantidad máxima de reglas de expresión regular que puede agregar una extensión. Este límite se evalúa por separado para el conjunto de reglas dinámicas y las que se especifican en el archivo de recursos de la regla.
Valor
1,000
MAX_NUMBER_OF_SESSION_RULES
Es la cantidad máxima de reglas centradas en la sesión que puede agregar una extensión.
Valor
5,000
MAX_NUMBER_OF_STATIC_RULESETS
Es la cantidad máxima de Rulesets
estáticas que una extensión puede especificar como parte de la clave de manifiesto "rule_resources"
.
Valor
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Indica la cantidad máxima de reglas dinámicas "no seguras" que puede agregar una extensión.
Valor
5,000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Es la cantidad máxima de reglas con alcance de sesión "no seguras" que puede agregar una extensión.
Valor
5,000
SESSION_RULESET_ID
ID del conjunto de reglas para las reglas centradas en la sesión que agregó la extensión.
Valor
"_session"
Métodos
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
)
Muestra la cantidad de reglas estáticas que una extensión puede habilitar antes de alcanzar el límite de reglas estáticas globales.
Parámetros
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(count: number)=>void
-
recuento
número
-
Devuelve
-
Promesa<number>
Chrome 91 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
)
Muestra la lista de reglas estáticas en la Ruleset
especificada que están inhabilitadas actualmente.
Parámetros
-
Opciones
Especifica el conjunto de reglas que se consultará.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(disabledRuleIds: number[])=>void
-
disabledRuleIds
número
-
Devuelve
-
Promesa<number[]>
Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
)
Devuelve el conjunto actual de reglas dinámicas para la extensión. De manera opcional, los emisores pueden filtrar la lista de reglas recuperadas mediante la especificación de un filter
.
Parámetros
-
filter
GetRulesFilter opcional
Chrome 111 y versiones posterioresUn objeto para filtrar la lista de reglas recuperadas.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(rules: Rule[])=>void
-
reglas
-
Devuelve
-
Promesa<Rule[]>
Chrome 91 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
)
Muestra los IDs del conjunto actual de conjuntos de reglas estáticos habilitados.
Parámetros
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(rulesetIds: string[])=>void
-
rulesetIds
string[]
-
Devuelve
-
Promesa<string[]>
Chrome 91 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
)
Muestra todas las reglas que coincidieron con la extensión. De manera opcional, los emisores pueden filtrar la lista de reglas coincidentes mediante la especificación de un filter
. Este método solo está disponible para extensiones con el permiso "declarativeNetRequestFeedback"
o que tienen el permiso "activeTab"
otorgado para el tabId
especificado en filter
. Nota: No se mostrarán las reglas que no estén asociadas con un documento activo que coincidieron hace más de cinco minutos.
Parámetros
-
filter
MatchedRulesFilter opcional
Un objeto para filtrar la lista de reglas coincidentes.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(details: RulesMatchedDetails)=>void
-
detalles
-
Devuelve
-
Promise<RulesMatchedDetails>
Chrome 91 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
)
Muestra el conjunto actual de reglas con alcance de sesión para la extensión. De manera opcional, los emisores pueden filtrar la lista de reglas recuperadas mediante la especificación de un filter
.
Parámetros
-
filter
GetRulesFilter opcional
Chrome 111 y versiones posterioresUn objeto para filtrar la lista de reglas recuperadas.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(rules: Rule[])=>void
-
reglas
-
Devuelve
-
Promesa<Rule[]>
Chrome 91 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
)
Comprueba si la expresión regular dada se admitirá como una condición de regla regexFilter
.
Parámetros
-
regexOptions
La expresión regular que se va a comprobar.
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(result: IsRegexSupportedResult)=>void
-
resultado
-
Devuelve
-
Promise<IsRegexSupportedResult>
Chrome 91 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
)
Establece si se debe mostrar el recuento de acciones para las pestañas como el texto de la insignia de la acción de la extensión y proporciona una manera de aumentar ese recuento de acciones.
Parámetros
-
Opciones
-
callback
Función opcional
Chrome 89 y versiones posterioresEl parámetro
callback
se ve de la siguiente manera:()=>void
Devuelve
-
Promise<void>
Chrome 91 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
)
Comprueba si alguna de las reglas declarativeNetRequest de la extensión coincidiría con una solicitud hipotética. Nota: Esta opción solo está disponible para extensiones sin empaquetar, ya que solo debe usarse durante el desarrollo de extensiones.
Parámetros
-
request
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:(result: TestMatchOutcomeResult)=>void
-
resultado
-
Devuelve
-
Promise<TestMatchOutcomeResult>
Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
)
Modifica el conjunto actual de reglas dinámicas para la extensión. Primero, se quitan las reglas con IDs que figuran en options.removeRuleIds
y, luego, se agregan las reglas determinadas en options.addRules
. Notas:
- Esta actualización ocurre como una sola operación atómica: se agregan y quitan todas las reglas especificadas o se muestra un error.
- Estas reglas persisten en todas las sesiones del navegador y en las actualizaciones de extensiones.
- Con esta función, no se pueden quitar las reglas estáticas que se especifican como parte del paquete de extensión.
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
es la cantidad máxima combinada de reglas dinámicas y de sesión que puede agregar una extensión.
Parámetros
-
OpcionesChrome 87 y versiones posteriores
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:()=>void
Devuelve
-
Promise<void>
Chrome 91 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
)
Actualiza el conjunto de conjuntos de reglas estáticas habilitadas para la extensión. Primero, se quitan los conjuntos de reglas con los IDs enumerados en options.disableRulesetIds
y, luego, se agregan los conjuntos de reglas enumerados en options.enableRulesetIds
.
Ten en cuenta que el conjunto de conjuntos de reglas estáticas habilitadas se conserva en todas las sesiones, pero no en todas las actualizaciones de extensiones, es decir, la clave del manifiesto de rule_resources
determinará el conjunto de conjuntos de reglas estáticas habilitadas en cada actualización de extensión.
Parámetros
-
OpcionesChrome 87 y versiones posteriores
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:()=>void
Devuelve
-
Promise<void>
Chrome 91 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
)
Modifica el conjunto actual de reglas centradas en la sesión para la extensión. Primero, se quitan las reglas con IDs que figuran en options.removeRuleIds
y, luego, se agregan las reglas determinadas en options.addRules
. Notas:
- Esta actualización ocurre como una sola operación atómica: se agregan y quitan todas las reglas especificadas o se muestra un error.
- Estas reglas no persisten en las sesiones y se guardan en la memoria.
MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
es la cantidad máxima combinada de reglas dinámicas y de sesión que puede agregar una extensión.
Parámetros
-
Opciones
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:()=>void
Devuelve
-
Promise<void>
Chrome 91 y versiones posterioresLas promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
)
Inhabilita y habilita reglas estáticas individuales en un Ruleset
. Los cambios en las reglas que pertenecen a un Ruleset
inhabilitado se aplicarán la próxima vez que se habilite.
Parámetros
-
Opciones
-
callback
Función opcional
El parámetro
callback
se ve de la siguiente manera:()=>void
Devuelve
-
Promise<void>
Las promesas solo son compatibles con Manifest V3 y versiones posteriores; otras plataformas deben usar devoluciones de llamada.
Eventos
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Se activa cuando una regla coincide con una solicitud. Solo está disponible para extensiones sin empaquetar con el permiso "declarativeNetRequestFeedback"
, ya que está diseñado para usarse solo con fines de depuración.
Parámetros
-
callback
la función
El parámetro
callback
se ve de la siguiente manera:(info: MatchedRuleInfoDebug)=>void
-
info
-