refresh date: 2026-09-25 robots: noindex
Descripción
La API de chrome.declarativeNetRequest se usa para bloquear o modificar solicitudes de red especificando 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
declarativeNetRequestdeclarativeNetRequestWithHostAccessdeclarativeNetRequestFeedbackhost_permissions
Disponibilidad
Manifiesto
Además de los permisos descritos anteriormente, ciertos tipos de conjuntos de reglas, específicamente los conjuntos de reglas estáticos, requieren declarar 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 del tipo Ruleset, como se muestra a continuación. (Ten en cuenta que el nombre "Ruleset" no aparece en el JSON del manifiesto, ya que es solo 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 hace una de las siguientes acciones:
- Bloquear una solicitud de red
- Actualiza el esquema (de HTTP a HTTPS).
- Evita que se bloquee una solicitud negando cualquier regla de bloqueo coincidente.
- Redireccionar una solicitud de red
- Modificar los encabezados de solicitud o respuesta
Existen tres tipos de conjuntos de reglas, que se administran de formas ligeramente diferentes.
- Dinámico
- Persisten en las sesiones del navegador y las actualizaciones de extensiones, y se administran con JavaScript mientras se usa una extensión.
- Sesión
- Se borra 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ática
- Se empaqueta, instala y actualiza 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 en detalle los tipos de conjuntos de reglas.
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 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 versión nueva de la extensión.
Solo hay un tipo de cada uno de estos conjuntos de reglas. Una extensión puede agregar o quitar reglas de forma dinámica llamando a updateDynamicRules() y updateSessionRules(), siempre que no se superen los límites de reglas. Para obtener información sobre los límites de las reglas, consulta Límites de las reglas. Puedes ver un ejemplo de esto en Ejemplos de código.
Conjuntos de reglas estáticos
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 uno o más diccionarios Ruleset. Un diccionario Ruleset contiene una ruta de acceso al archivo de reglas, un ID para el conjunto de reglas que contiene el archivo y si el conjunto de reglas está habilitado o inhabilitado. Los dos últimos 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 tu extensión sin empaquetar. Los errores y las advertencias sobre reglas estáticas no válidas solo se muestran para las extensiones sin empaquetar. Se ignoran las reglas estáticas no válidas en las extensiones empaquetadas.
Habilita e inhabilita reglas y conjuntos de reglas estáticos
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 y conjuntos de reglas estáticos habilitados se conserva en todas las sesiones del navegador. Ninguno de los dos se conserva en las actualizaciones de la extensión, lo que significa que solo las reglas que decidiste dejar en tus archivos de reglas estarán disponibles después de una actualización.
Por motivos de rendimiento, también hay límites en la cantidad de reglas y conjuntos de reglas que se pueden habilitar al mismo tiempo. Llama a getAvailableStaticRuleCount() para verificar la cantidad de reglas adicionales que se pueden habilitar. Para obtener información sobre los límites de las reglas, consulta Límites de las reglas.
Para habilitar o inhabilitar 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 conjuntos de reglas 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.
Reglas de compilación
Independientemente del tipo, una regla comienza con cuatro campos, como se muestra a continuación. Mientras que 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" para cualquier URL con "abc" como substring.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
Caracteres de coincidencia de urlFilter
La clave "condition" de una regla permite que una clave "urlFilter" actúe en las URLs de un dominio especificado. Los patrones se crean con tokens de coincidencia de patrones. A continuación, se muestran algunos ejemplos.
urlFilter |
Combinaciones | 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 reglas
Las reglas se activan con las solicitudes que se envían desde las páginas web. Si varias reglas coinciden con una solicitud en particular, se debe priorizar una de ellas. En esta sección, se explica cómo se priorizan. La priorización se realiza en dos etapas.
- La prioridad se determina para las reglas dentro de una extensión.
- Si más de una extensión puede aplicar una regla a una solicitud, se determina la prioridad para todas las extensiones que coincidan con una solicitud en particular.
La coincidencia se piensa de la siguiente manera: cualquier regla que priorice una extensión en particular se priorizará sobre las reglas de otras extensiones.
Priorización de reglas dentro de una extensión
Dentro de una sola extensión, la priorización se calcula con el siguiente proceso:
- Se devuelve 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:allowallowAllRequestsblockupgradeSchemeredirect
Si el tipo de acción no es
blockniredirect, se evalúan las reglasmodifyHeadersque coincidan. Ten en cuenta que, si hay reglas con una prioridad definida por el desarrollador que sea inferior a la prioridad especificada paraallowyallowAllRequests, se ignorarán esas reglas.Si varias reglas modifican el mismo encabezado, la modificación se determina por el campo
"priority"definido por el desarrollador y por las operaciones especificadas.- Si una regla agrega un encabezado, las reglas de menor prioridad solo pueden agregar 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 agregarse a ese encabezado. No se permiten otras modificaciones.
- Si una regla quita un encabezado, las reglas de menor prioridad no pueden modificarlo más.
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 más de una extensión coincide con una solicitud, se usa el siguiente proceso:
Las reglas se priorizan con el campo
"action", en el siguiente orden:blockredirectoupgradeSchemeallowoallowAllRequests
Si coincide más de una regla, la extensión instalada más recientemente tiene prioridad.
Límites de las reglas
La carga y la evaluación de reglas en el navegador generan una sobrecarga de rendimiento, 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 las que se especifican en los archivos de reglas declarados en el archivo de manifiesto. Una extensión puede especificar hasta 50 conjuntos de reglas 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. Este último 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 después de eso depende de cuántas reglas habiliten todas las extensiones instaladas en el navegador de un usuario. Puedes encontrar este número en el entorno de ejecución llamando a getAvailableStaticRuleCount(). Puedes ver un ejemplo de esto 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 los de las reglas estáticas. La cantidad total de ambos no puede superar los 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 superar las 1,000. Esto se denomina MAX_NUMBER_OF_REGEX_RULES.
Además, cada regla debe tener menos de 2 KB una vez compilada. Esto se correlaciona aproximadamente con la complejidad de la regla. Si intentas cargar una regla que supera 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 complex regex than allowed
as part of the "regexFilter" key.
Interacciones con service workers
Una declarativeNetRequest solo se aplica a las solicitudes que llegan a la pila de red. Esto incluye las respuestas de la caché HTTP, pero es posible que no incluya las respuestas que pasan por el controlador onfetch de un service worker. declarativeNetRequest no afectará las respuestas generadas por el service worker ni las recuperadas de CacheStorage, pero sí afectará las llamadas a fetch() realizadas en un service worker.
Recursos accesibles para la Web
Una regla de declarativeNetRequest no puede redireccionar de una solicitud de recurso público a un recurso al que no se puede acceder desde la Web. Si lo haces, se generará un error. Esto se aplica incluso si el recurso accesible por la Web especificado pertenece a la extensión de redireccionamiento. Para declarar recursos para declarativeNetRequest, usa el array "web_accessible_resources" del manifiesto.
Ejemplos
Ejemplos de código
Actualiza las 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
});
Actualiza conjuntos de reglas estáticos
En el siguiente ejemplo, se muestra cómo habilitar e inhabilitar conjuntos de reglas teniendo en cuenta la cantidad de conjuntos de reglas estáticos disponibles y la cantidad máxima de conjuntos de reglas estáticos habilitados. Esto se hace cuando la cantidad de reglas estáticas que necesitas supera la cantidad permitida. Para que esto funcione, algunos de tus conjuntos de reglas deben instalarse con algunos de tus conjuntos de reglas inhabilitados (estableciendo "Enabled" en false dentro del 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 ilustra cómo Chrome prioriza las reglas en una extensión. Cuando las revises, te recomendamos que abras las reglas de priorización en una ventana aparte.
La clave "priority"
Estos ejemplos requieren el permiso de host para *://*.example.com/*.
Para determinar la prioridad de una URL en particular, consulta la clave "priority" (definida por el desarrollador), la clave "action" y la clave "urlFilter". Estos ejemplos hacen referencia al archivo de reglas de ejemplo que se muestra debajo de ellos.
- Navegación a https://google.com
- Dos reglas abarcan esta URL: las reglas con los IDs 1 y 4. Se aplica la regla con el ID 1 porque las acciones
"block"tienen una prioridad más alta que las acciones"redirect". Las reglas restantes no se aplican porque son para URLs más largas. - Navegación a https://google.com/1234
- Debido a que la URL es más larga, ahora la regla con el ID 2 coincide, además de las reglas con los IDs 1 y 4. Se aplica la regla con el ID 2 porque
"allow"tiene una prioridad más alta que"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
En el siguiente ejemplo, se requiere el 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 extensión. La ruta de acceso de la extensión /a.jpg se resuelve como chrome-extension://EXTENSION_ID/a.jpg, donde EXTENSION_ID es el ID de tu 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. Se 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 clave "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 para 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ó la solicitud.
Enum
"firstParty"
La solicitud de red es propia del marco en el que se originó.
"thirdParty"
La solicitud de red es de terceros para 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 posterioresSon los detalles de cómo se debe ajustar el recuento de acciones de la pestaña.
GetDisabledRuleIdsOptions
Propiedades
-
rulesetId
string
Es el ID correspondiente a un
Rulesetestático.
GetRulesFilter
Propiedades
-
ruleIds
number[] opcional
Si se especifica, solo se incluyen las reglas con IDs que coincidan.
HeaderInfo
Propiedades
-
excludedValues
string[] opcional
Si se especifica, esta condición no se cumple si el encabezado existe, pero su valor contiene al menos un elemento de esta lista. Esto usa la misma sintaxis de patrón de coincidencia que
values. -
header
string
Es el nombre del encabezado. Esta condición coincide con el nombre solo si no se especifican
valuesniexcludedValues. -
valores
string[] opcional
Si se especifica, esta condición se cumple si el valor del encabezado coincide con al menos un patrón de esta lista. Esto admite la coincidencia de valores de encabezado que no distingue mayúsculas de minúsculas, además de las siguientes construcciones:
'*' : Coincide con cualquier cantidad de caracteres.
'?' : Coincide con cero o un carácter.
Los caracteres '*' y '?' se pueden escapar con una barra inversa, p.ej., '\*' y '\?'
HeaderOperation
Describe las operaciones posibles para una regla "modifyHeaders".
Enum
"append"
Agrega una entrada nueva para el encabezado especificado. Cuando se modifican los encabezados de una solicitud, esta operación solo se admite para encabezados específicos.
"set"
Establece un valor nuevo para el encabezado especificado y quita los encabezados existentes con el mismo nombre.
"remove"
Quita todas las entradas del encabezado especificado.
IsRegexSupportedResult
Propiedades
-
isSupported
booleano
-
Reason
UnsupportedRegexReason opcional
Especifica el motivo por el que no se admite la expresión regular. Solo se proporciona si
isSupportedes falso.
MatchedRule
Propiedades
-
ruleId
número
Es el ID de una regla coincidente.
-
rulesetId
string
ID del
Rulesetal que pertenece esta regla. En el caso de una regla que se origina en el conjunto de reglas dinámicas, este valor será igual aDYNAMIC_RULESET_ID.
MatchedRuleInfo
Propiedades
-
regla
-
tabId
número
Es el tabId de la pestaña en la que se originó la solicitud, si la pestaña aún está activa. De lo contrario, -1.
-
timeStamp
número
Es la hora en que se produjo la coincidencia con la regla. Las marcas de tiempo corresponderán a la convención de JavaScript para las horas, es decir, la cantidad de milisegundos desde la época.
MatchedRuleInfoDebug
Propiedades
-
solicitud
Son los detalles sobre la solicitud para la que coincidió la regla.
-
regla
MatchedRulesFilter
Propiedades
-
minTimeStamp
number opcional
Si se especifica, solo se buscan coincidencias con las reglas posteriores a la marca de tiempo proporcionada.
-
tabId
number opcional
Si se especifica, solo coincide con las reglas de la pestaña determinada. Coincide con las reglas que no están asociadas con ninguna pestaña activa si se establece en -1.
ModifyHeaderInfo
Propiedades
-
header
string
Es el nombre del encabezado que se modificará.
-
operación
Es la operación que se realizará en un encabezado.
-
valor
string opcional
Es el valor nuevo del encabezado. Se debe especificar para las operaciones
appendyset.
QueryKeyValue
Propiedades
-
clave
string
-
replaceOnly
booleano opcional
Chrome 94 y versiones posterioresSi es verdadero, la clave de consulta se reemplaza solo si ya está presente. De lo contrario, la clave también se agrega si falta. La configuración predeterminada es "false".
-
valor
string
QueryTransform
Propiedades
-
addOrReplaceParams
QueryKeyValue[] opcional
Es la lista de pares clave-valor de consulta que se agregarán o reemplazarán.
-
removeParams
string[] opcional
Es la lista de claves de consulta que se quitarán.
Redirect
Propiedades
-
extensionPath
string opcional
Es la ruta de acceso relativa al directorio de la extensión. Debe comenzar con "/".
-
regexSubstitution
string opcional
Es el patrón de sustitución para las reglas que especifican un
regexFilter. La primera coincidencia deregexFilteren la URL se reemplazará por este patrón. Dentro deregexSubstitution, se pueden usar dígitos con barra inversa (\1 a \9) para insertar los grupos de captura correspondientes. \0 hace referencia a todo el texto coincidente. -
transform
URLTransform opcional
Son las transformaciones de URL que se deben realizar.
-
url
string opcional
Es la URL de redireccionamiento. No se permiten los redireccionamientos a URLs de JavaScript.
RegexOptions
Propiedades
-
isCaseSensitive
booleano opcional
Indica si el
regexespecificado distingue mayúsculas de minúsculas. La opción predeterminada es true. -
regex
string
Es la expresión regular que se debe verificar.
-
requireCapturing
booleano opcional
Indica si el
regexespecificado requiere captura. La captura solo es obligatoria para las reglas de redireccionamiento que especifican una acciónregexSubstition. El valor predeterminado es falso.
RequestDetails
Propiedades
-
documentId
string opcional
Chrome 106 y versiones posterioresEs el identificador único del documento del marco, si esta solicitud es para un marco.
-
documentLifecycle
DocumentLifecycle opcional
Chrome 106 y versiones posterioresEs el ciclo de vida del documento del marco, si esta solicitud es para un marco.
-
frameId
número
El valor 0 indica que la solicitud se produce en el marco principal; un valor positivo indica el ID de un submarco en el que se produce la solicitud. Si se carga el documento de un (sub)marco (
typeesmain_frameosub_frame),frameIdindica el ID de este marco, no el ID del marco exterior. Los IDs de marco son únicos dentro de una pestaña. -
frameType
FrameType opcional
Chrome 106 y versiones posterioresEs el tipo de marco, si esta solicitud es para un marco.
-
iniciador
string opcional
Es el origen desde el que se inició la solicitud. Esto no cambia con los redireccionamientos. Si se trata de un origen opaco, se usará la cadena "null".
-
método
string
Método HTTP estándar.
-
parentDocumentId
string opcional
Chrome 106 y versiones posterioresEs el identificador único del documento superior del marco, si esta solicitud es para un marco y tiene un elemento superior.
-
parentFrameId
número
Es el ID del marco que une el marco que envió la solicitud. Se establece en -1 si no existe un marco superior.
-
requestId
string
Es el ID de la solicitud. Los IDs de solicitud son únicos dentro de una sesión del navegador.
-
tabId
número
Es el ID de la pestaña en la que se realiza la solicitud. Se establece en -1 si la solicitud no está relacionada con una pestaña.
-
tipo
Es el tipo de recurso de la solicitud.
-
url
string
La URL de la solicitud.
RequestMethod
Describe el método de solicitud HTTP de una solicitud de red.
Enum
"connect"
"delete"
"get"
"head"
"options"
"patch"
"post"
"put"
"other"
ResourceType
Describe el tipo de recurso de la solicitud de red.
Enum
"main_frame"
"sub_frame"
"stylesheet"
"script"
"image"
"font"
"object"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"webtransport"
"webbundle"
"other"
Rule
Propiedades
-
acción
Es la acción que se debe realizar si se cumple esta regla.
-
de transición
Es la condición en la que se activa esta regla.
-
id
número
Un ID que identifica de forma única una regla. Es obligatorio y debe ser >= 1.
-
priority
number opcional
Prioridad de las reglas. El valor predeterminado es 1. Cuando se especifica, debe ser >= 1.
RuleAction
Propiedades
-
redireccionamiento
Redireccionamiento (opcional)
Describe cómo se debe realizar el redireccionamiento. Solo es válido para las reglas de redireccionamiento.
-
requestHeaders
ModifyHeaderInfo[] opcional
Chrome 86 y versiones posterioresSon los encabezados de la solicitud que se modificarán para la solicitud. Solo es válido si RuleActionType es "modifyHeaders".
-
responseHeaders
ModifyHeaderInfo[] opcional
Chrome 86 y versiones posterioresSon los encabezados de respuesta que se modificarán para la solicitud. Solo es válido si RuleActionType es "modifyHeaders".
-
tipo
Es el tipo de acción que se realizará.
RuleActionType
Describe el tipo de acción que se debe realizar si coincide una RuleCondition determinada.
Enum
"block"
Bloquea la solicitud de red.
"redirect"
Redirecciona la solicitud de red.
"allow"
Permite la solicitud de red. La solicitud no se interceptará si hay una regla de permiso que coincida con ella.
"upgradeScheme"
Actualiza el esquema de la URL de la solicitud de red a HTTPS si la solicitud es HTTP o FTP.
"modifyHeaders"
Modifica los encabezados de solicitud o encabezados de respuesta de 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 para el dominio del que se originó. Si se omite, se aceptan todas las solicitudes.
-
dominios
string[] opcional
Obsoleta desde Chrome 101En su lugar, usa
initiatorDomainsLa regla solo coincidirá con las solicitudes de red que se originen en la lista de
domains. -
excludedDomains
string[] opcional
Obsoleta desde Chrome 101En su lugar, usa
excludedInitiatorDomainsLa regla no coincidirá con las solicitudes de red que se originen en la lista de
excludedDomains. -
excludedInitiatorDomains
string[] opcional
Chrome 101 y versiones posterioresLa regla no coincidirá con las solicitudes de red que se originen en la lista de
excludedInitiatorDomains. Si la lista está vacía o se omite, no se excluye ningún dominio. Esto tiene prioridad sobreinitiatorDomains.Notas:
- También se permiten subdominios como "a.example.com".
- Las entradas solo deben contener caracteres ASCII.
- Usa la codificación punycode para los dominios internacionalizados.
- Esto coincide con el iniciador de la solicitud y no con la URL de la solicitud.
- También se excluyen los subdominios de los dominios incluidos en la lista.
-
excludedRequestDomains
string[] opcional
Chrome 101 y versiones posterioresLa regla no coincidirá con las solicitudes de red cuando los dominios coincidan con uno de la lista de
excludedRequestDomains. Si la lista está vacía o se omite, no se excluye ningún dominio. Esto tiene prioridad sobrerequestDomains.Notas:
- También se permiten subdominios como "a.example.com".
- Las entradas solo deben contener caracteres ASCII.
- Usa la codificación punycode para los dominios internacionalizados.
- También se excluyen los subdominios de los dominios incluidos en la lista.
-
excludedRequestMethods
RequestMethod[] opcional
Chrome 91 y versiones posterioresEs la lista de métodos de solicitud con los que no coincidirá la regla. Solo se debe especificar uno de los valores
requestMethodsoexcludedRequestMethods. Si no se especifica ninguno de ellos, se buscan coincidencias con todos los métodos de solicitud. -
excludedResourceTypes
ResourceType[] opcional
Es la lista de tipos de recursos con los que no coincidirá la regla. Solo se debe especificar uno de los valores
resourceTypesoexcludedResourceTypes. Si no se especifica ninguno de ellos, se bloquean todos los tipos de recursos, excepto "main_frame". -
excludedResponseHeaders
HeaderInfo[] opcional
Chrome 128 y versiones posterioresLa regla no coincide si la solicitud coincide con alguna condición de encabezado de respuesta de esta lista (si se especifica). Si se especifican
excludedResponseHeadersyresponseHeaders, la propiedadexcludedResponseHeaderstiene prioridad. -
excludedTabIds
number[] opcional
Chrome 92 y versiones posterioresEs la lista de
tabs.Tab.idcon la que no debe coincidir la regla. Un ID detabs.TAB_ID_NONEexcluye las solicitudes que no se originan en una pestaña. Solo se admite para las reglas centradas en la sesión. -
excludedTopDomains
string[] opcional
Chrome 145 y versiones posterioresLa regla no coincidirá con las solicitudes de red cuando el dominio del marco de nivel superior asociado coincida con uno de la lista de
excludedTopDomains. Si la lista está vacía o se omite, no se excluye ningún dominio. Esto tiene prioridad sobretopDomains.Notas:
- También se permiten subdominios como "a.example.com".
- Las entradas solo deben contener caracteres ASCII.
- Usa la codificación punycode para los dominios internacionalizados.
- También se excluyen los subdominios de los dominios incluidos en la lista.
- En el caso de las solicitudes sin un marco de nivel superior asociado (p.ej., solicitudes iniciadas por ServiceWorker), se considera el dominio del iniciador de la solicitud.
-
initiatorDomains
string[] opcional
Chrome 101 y versiones posterioresLa regla solo coincidirá con 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 solo deben contener caracteres ASCII.
- Usa la codificación punycode para los dominios internacionalizados.
- Esto coincide con el iniciador de la solicitud y no con la URL de la solicitud.
- Los subdominios de los dominios incluidos en la lista también coinciden.
-
isUrlFilterCaseSensitive
booleano opcional
Indica si el
urlFiltero elregexFilter(el que se especifique) distingue mayúsculas de minúsculas. El valor predeterminado es falso. -
regexFilter
string opcional
Expresión regular que debe coincidir con la URL de la solicitud de red. Esto sigue la sintaxis de RE2.
Nota: Solo se puede especificar
urlFilteroregexFilter.Nota: El
regexFilterdebe estar compuesto solo por caracteres ASCII. Esto se compara con una URL en la que el host está codificado en el formato punycode (en el caso de los dominios internacionalizados) y cualquier otro carácter que no sea ASCII está codificado en 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 uno 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 solo deben contener caracteres ASCII.
- Usa la codificación punycode para los dominios internacionalizados.
- Los subdominios de los dominios incluidos en la lista también coinciden.
-
requestMethods
RequestMethod[] opcional
Chrome 91 y versiones posterioresEs la lista de métodos de solicitud HTTP con los que puede coincidir la regla. 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 se excluirán. -
resourceTypes
ResourceType[] opcional
Es la lista de tipos de recursos con los que puede coincidir la regla. No se permite una lista vacía.
Nota: Esto se debe especificar para las reglas
allowAllRequestsy solo puede incluir los tipos de recursossub_frameymain_frame. -
responseHeaders
HeaderInfo[] opcional
Chrome 128 y versiones posterioresLa regla coincide si la solicitud coincide con cualquier condición de encabezado de respuesta de esta lista (si se especifica).
-
tabIds
number[] opcional
Chrome 92 y versiones posterioresEs la lista de
tabs.Tab.idcon la que debe coincidir la regla. Un ID detabs.TAB_ID_NONEcoincide con las solicitudes que no se originan en una pestaña. No se permite una lista vacía. Solo se admite para las reglas centradas en la sesión. -
topDomains
string[] opcional
Chrome 145 y versiones posterioresLa regla solo coincidirá con las solicitudes de red cuando el dominio del marco de nivel superior asociado coincida con uno de la lista de
topDomains. Si se omite la lista, la regla se aplica a las solicitudes asociadas con todos los dominios de marcos de nivel superior. No se permite una lista vacía.Notas:
- También se permiten subdominios como "a.example.com".
- Las entradas solo deben contener caracteres ASCII.
- Usa la codificación punycode para los dominios internacionalizados.
- Los subdominios de los dominios incluidos en la lista también coinciden.
- En el caso de las solicitudes sin un marco de nivel superior asociado (p.ej., solicitudes iniciadas por ServiceWorker), se considera el dominio del iniciador de la solicitud.
-
urlFilter
string opcional
Es 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 izquierdo/derecho: Si se usa en cualquiera de los extremos del patrón, especifica el principio o el final de la URL, respectivamente.
'||': Es el ancla del nombre de dominio. Si se usa al principio del patrón, especifica el inicio de un (sub)dominio de la URL.
'^' : Carácter separador: Coincide con cualquier elemento, excepto una letra, un dígito o uno de los siguientes:
_,-,.o%. Esto también coincide con el final de la URL.Por lo tanto,
urlFilterse compone de las siguientes partes: (ancla izquierda/nombre de dominio opcional) + patrón + (ancla derecha opcional).Si se omite, se buscan coincidencias con todas las URLs. No se permite una cadena vacía.
No se permite un patrón que comience con
||*. Usa*en su lugar.Nota: Solo se puede especificar
urlFilteroregexFilter.Nota: El
urlFilterdebe estar compuesto solo por caracteres ASCII. Esto se compara con una URL en la que el host está codificado en el formato punycode (en el caso de los dominios internacionalizados) y cualquier otro carácter que no sea ASCII está codificado en URL en UTF-8. Por ejemplo, cuando la URL de la solicitud es http://abc.рф?q=ф, laurlFilterse comparará con la URL http://abc.xn--p1ai/?q=%D1%84.
RuleConditionKeys
Enum
"urlFilter"
"regexFilter"
"isUrlFilterCaseSensitive"
"initiatorDomains"
"excludedInitiatorDomains"
"requestDomains"
"excludedRequestDomains"
"topDomains"
"excludedTopDomains"
"domains"
"excludedDomains"
"resourceTypes"
"excludedResourceTypes"
"requestMethods"
"excludedRequestMethods"
"domainType"
"tabIds"
"excludedTabIds"
"responseHeaders"
"excludedResponseHeaders"
Ruleset
Propiedades
-
habilitado
booleano
Indica si el conjunto de reglas está habilitado de forma predeterminada.
-
id
string
Es una cadena no vacía que identifica de forma inequívoca el conjunto de reglas. Los IDs que comienzan con "_" están reservados para uso interno.
-
ruta de acceso
string
Es la ruta de acceso del conjunto de reglas JSON en relación con el directorio de la extensión.
RulesMatchedDetails
Propiedades
-
rulesMatchedInfo
Son las reglas que coinciden con el filtro determinado.
TabActionCountUpdate
Propiedades
-
increment
número
Es la cantidad en la que se incrementará el recuento de acciones de la pestaña. Los valores negativos disminuirán el recuento.
-
tabId
número
Es la pestaña para la que se actualizará el recuento de acciones.
TestMatchOutcomeResult
Propiedades
-
matchedRules
Las reglas (si las hay) que coinciden con la solicitud hipotética.
TestMatchRequestDetails
Propiedades
-
iniciador
string opcional
La URL del iniciador (si la hay) de la solicitud hipotética.
-
método
RequestMethod opcional
Es el método HTTP estándar de la solicitud hipotética. El valor predeterminado es "get" para las solicitudes HTTP y se ignora para las solicitudes que no son HTTP.
-
responseHeaders
objeto opcional
Chrome 129 y versiones posterioresSon los encabezados que proporciona una respuesta hipotética si la solicitud no se bloquea ni se redirecciona antes de enviarse. Se representa como un objeto que asigna un nombre de encabezado a una lista de valores de cadena. Si no se especifica, la respuesta hipotética devolvería encabezados de respuesta vacíos, que pueden coincidir con reglas que coinciden con la inexistencia de encabezados. P. ej.,
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]} -
tabId
number opcional
Es 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.
-
topUrl
string opcional
Chrome 145 y versiones posterioresLa URL del marco de nivel superior asociado (si existe) para la solicitud.
-
tipo
Es el tipo de recurso de la solicitud hipotética.
-
url
string
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.
"memoryLimitExceeded"
La expresión regular supera el límite de memoria.
UpdateRuleOptions
Propiedades
-
addRules
Rule[] opcional
Son las reglas que se agregarán.
-
removeRuleIds
number[] opcional
Son los IDs de las reglas que se quitarán. Se ignorarán los IDs no válidos.
UpdateRulesetOptions
Propiedades
UpdateStaticRulesOptions
Propiedades
URLTransform
Propiedades
-
fragment
string opcional
Es el fragmento nuevo de la solicitud. Debe estar vacío, en cuyo caso se borra el fragmento existente, o debe comenzar con "#".
-
host
string opcional
Es el host nuevo para la solicitud.
-
contraseña
string opcional
La contraseña nueva para la solicitud.
-
ruta de acceso
string opcional
Es la ruta nueva para la solicitud. Si está vacía, se borra la ruta existente.
-
puerto
string opcional
Es el puerto nuevo para la solicitud. Si está vacío, se borra el puerto existente.
-
consulta
string opcional
Es la nueva consulta para la solicitud. Debe estar vacío, en cuyo caso se borra la consulta existente, o debe comenzar con "?".
-
queryTransform
QueryTransform opcional
Agrega, quita o reemplaza pares clave-valor de consulta.
-
esquema
string opcional
Es el esquema nuevo para la solicitud. Los valores permitidos son "http", "https", "ftp" y "chrome-extension".
-
nombre de usuario
string opcional
Es el nuevo nombre de usuario para la solicitud.
Propiedades
DYNAMIC_RULESET_ID
Es el ID del conjunto de reglas para las reglas dinámicas que agrega la extensión.
Valor
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
Es el intervalo de tiempo en el que se pueden realizar llamadas a MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules, especificado en minutos. Las llamadas adicionales fallarán de inmediato y establecerán runtime.lastError. Nota: Las llamadas a 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 habilitados. Cualquier regla que supere este límite se tendrá en cuenta para el límite global de reglas estáticas.
Valor
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
Es 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
Es la cantidad máxima de reglas dinámicas que puede agregar una extensión.
Valor
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Es la cantidad máxima de Rulesets estáticas que una extensión puede habilitar en cualquier momento.
Valor
50
MAX_NUMBER_OF_REGEX_RULES
Es 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 especificadas en el archivo de recursos de reglas.
Valor
1000
MAX_NUMBER_OF_SESSION_RULES
Es la cantidad máxima de reglas con alcance de 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
Es 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
Es el ID del conjunto de reglas para las reglas centrado en la sesión que agrega la extensión.
Valor
"_session"
Métodos
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
Devuelve la cantidad de reglas estáticas que puede habilitar una extensión antes de que se alcance el límite global de reglas estáticas.
Parámetros
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(count: number) => void
-
count
número
-
Muestra
-
Promise<number>
Chrome 91 y versiones posterioresLas promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
Devuelve la lista de reglas estáticas en el Ruleset determinado que están inhabilitadas actualmente.
Parámetros
-
opciones
Especifica el conjunto de reglas que se consultará.
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(disabledRuleIds: number[]) => void
-
disabledRuleIds
number[]
-
Muestra
-
Promise<number[]>
Es una promesa que se resuelve con una lista de IDs que corresponden a las reglas inhabilitadas en ese conjunto de reglas.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Muestra el conjunto actual de reglas dinámicas para la extensión. De manera opcional, los emisores pueden filtrar la lista de reglas recuperadas especificando un filter.
Parámetros
-
filter
GetRulesFilter opcional
Chrome 111 y versiones posterioresEs un objeto para filtrar la lista de reglas recuperadas.
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(rules: Rule[]) => void
-
reglas
Regla[]
-
Muestra
-
Promise<Rule[]>
Chrome 91 y versiones posterioresEs una promesa que se resuelve con el conjunto de reglas dinámicas. Es posible que se rechace la promesa en caso de errores internos transitorios.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
Devuelve los IDs del conjunto actual de conjuntos de reglas estáticas habilitados.
Parámetros
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(rulesetIds: string[]) => void
-
rulesetIds
string[]
-
Muestra
-
Promise<string[]>
Chrome 91 y versiones posterioresEs una promesa que se resuelve con una lista de IDs, en la que cada ID corresponde a un
Rulesetestático habilitado.Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
Devuelve todas las reglas que coinciden con la extensión. De manera opcional, los emisores pueden filtrar la lista de reglas que coinciden especificando un filter. Este método solo está disponible para las extensiones con el permiso "declarativeNetRequestFeedback" o que tengan el permiso "activeTab" otorgado para el tabId especificado en filter. Nota: No se devolverán las reglas que no estén asociadas con un documento activo y que hayan coincidido hace más de cinco minutos.
Parámetros
-
filter
MatchedRulesFilter opcional
Es un objeto para filtrar la lista de reglas que coinciden.
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(details: RulesMatchedDetails) => void
-
detalles
-
Muestra
-
Promise<RulesMatchedDetails>
Chrome 91 y versiones posterioresEs una promesa que se resuelve una vez que se recupera la lista de reglas coincidentes. En caso de error, se rechazará la promesa. Esto puede suceder por varios motivos, como permisos insuficientes o exceder la cuota.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Devuelve 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 especificando un filter.
Parámetros
-
filter
GetRulesFilter opcional
Chrome 111 y versiones posterioresEs un objeto para filtrar la lista de reglas recuperadas.
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(rules: Rule[]) => void
-
reglas
Regla[]
-
Muestra
-
Promise<Rule[]>
Chrome 91 y versiones posterioresEs una promesa que se resuelve con el conjunto de reglas con alcance de sesión.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
Verifica si la expresión regular proporcionada se admitirá como una condición de regla de regexFilter.
Parámetros
-
regexOptions
Es la expresión regular que se debe verificar.
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(result: IsRegexSupportedResult) => void
-
resultado
-
Muestra
-
Promise<IsRegexSupportedResult>
Chrome 91 y versiones posterioresEs una promesa que se resuelve con detalles que indican si se admite la expresión regular y, de lo contrario, el motivo.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
Configura si el recuento de acciones para las pestañas se debe mostrar como el texto de la insignia de la acción de la extensión y proporciona una forma de incrementar ese recuento de acciones.
Parámetros
-
opciones
-
callback
función opcional
Chrome 89 y versiones posterioresEl parámetro
callbackse ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 91 y versiones posterioresLas promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
Verifica si alguna de las reglas de declarativeNetRequest de la extensión coincidiría con una solicitud hipotética. Nota: Solo está disponible para las extensiones sin empaquetar, ya que solo se debe usar durante el desarrollo de la extensión.
Parámetros
-
solicitud
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:(result: TestMatchOutcomeResult) => void
-
resultado
-
Muestra
-
Promise<TestMatchOutcomeResult>
Es una promesa que se resuelve con los detalles de las reglas que coinciden.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Modifica el conjunto actual de reglas dinámicas de la extensión. Primero se quitan las reglas con los IDs que se indican en options.removeRuleIds y, luego, se agregan las reglas que se indican en options.addRules. Notas:
- Esta actualización se produce como una sola operación atómica: se agregan y quitan todas las reglas especificadas, o bien se devuelve un error.
- Estas reglas se conservan en las sesiones del navegador y en las actualizaciones de las extensiones.
- Las reglas estáticas especificadas como parte del paquete de extensión no se pueden quitar con esta función.
MAX_NUMBER_OF_DYNAMIC_RULESes la cantidad máxima de reglas dinámicas que puede agregar una extensión. La cantidad de reglas no seguras no debe superarMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES.
Parámetros
-
opcionesChrome 87 y versiones posteriores
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 91 y versiones posterioresEs la promesa que se resuelve una vez que se completa la actualización. En caso de que se produzca un error, se rechazará la promesa y no se realizará ningún cambio en el conjunto de reglas. Esto puede suceder por varios motivos, como un formato de regla no válido, un ID de regla duplicado, un límite de recuento de reglas excedido, errores internos y otros.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
Actualiza el conjunto de conjuntos de reglas estáticos habilitados para la extensión. Primero se quitan los conjuntos de reglas con los IDs que se indican en options.disableRulesetIds y, luego, se agregan los conjuntos de reglas que se indican en options.enableRulesetIds.
Ten en cuenta que el conjunto de conjuntos de reglas estáticos habilitados se conserva entre sesiones, pero no entre actualizaciones de extensiones, es decir, la clave de manifiesto rule_resources determinará el conjunto de conjuntos de reglas estáticos habilitados en cada actualización de extensión.
Parámetros
-
opcionesChrome 87 y versiones posteriores
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 91 y versiones posterioresEs la promesa que se resuelve una vez que se completa la actualización. En caso de que se produzca un error, se rechazará la promesa y no se realizará ningún cambio en el conjunto de conjuntos de reglas habilitados. Esto puede ocurrir por varios motivos, como IDs de conjuntos de reglas no válidos, que se haya excedido el límite de recuento de reglas o errores internos.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Modifica el conjunto actual de reglas con alcance de sesión para la extensión. Primero se quitan las reglas con los IDs que se indican en options.removeRuleIds y, luego, se agregan las reglas que se indican en options.addRules. Notas:
- Esta actualización se produce como una sola operación atómica: se agregan y quitan todas las reglas especificadas, o bien se devuelve un error.
- Estas reglas no se conservan entre sesiones y se respaldan en la memoria.
MAX_NUMBER_OF_SESSION_RULESes la cantidad máxima de reglas de sesión que puede agregar una extensión.
Parámetros
-
opciones
-
callback
función opcional
El parámetro
callbackse ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Chrome 91 y versiones posterioresEs la promesa que se resuelve una vez que se completa la actualización. En caso de que se produzca un error, se rechazará la promesa y no se realizará ningún cambio en el conjunto de reglas. Esto puede suceder por varios motivos, como un formato de regla no válido, un ID de regla duplicado, un límite de recuento de reglas excedido y otros.
Las promesas solo se admiten en Manifest V3 y versiones posteriores. Otras plataformas deben usar devoluciones de llamada.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
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
callbackse ve de la siguiente manera:() => void
Muestra
-
Promise<void>
Es una promesa que se resuelve cuando se completa la actualización. En caso de error, se rechazará la promesa y no se realizarán cambios en las reglas estáticas habilitadas.
Las promesas solo se admiten en 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 solo se debe usar con fines de depuración.
Parámetros
-
callback
función
El parámetro
callbackse ve de la siguiente manera:(info: MatchedRuleInfoDebug) => void
-
información
-