Descrição
A API chrome.declarativeNetRequest
é usada para bloquear ou modificar solicitações de rede especificando regras declarativas. Isso permite que as extensões modifiquem as solicitações de rede sem interceptá-las e ver o conteúdo delas, oferecendo mais privacidade.
Permissões
declarativeNetRequest
declarativeNetRequestWithHostAccess
As permissões "declarativeNetRequest
" e "declarativeNetRequestWithHostAccess
" oferecem os mesmos recursos. A diferença entre eles é quando as permissões são solicitadas ou concedidas.
"declarativeNetRequest"
- Aciona um aviso de permissão no momento da instalação, mas fornece acesso implícito às regras
allow
,allowAllRequests
eblock
. Use essa opção sempre que possível para evitar pedir acesso total aos organizadores. "declarativeNetRequestFeedback"
- Ativa recursos de depuração para extensões descompactadas, especificamente
getMatchedRules()
eonRuleMatchedDebug
. "declarativeNetRequestWithHostAccess"
- Um aviso de permissão não é mostrado no momento da instalação, mas você precisa solicitar permissões de host antes de realizar qualquer ação em um host. Isso é adequado quando você quer usar regras declarativas de solicitação de rede em uma extensão que já tem permissões de host sem gerar avisos adicionais.
Disponibilidade
Manifesto
Além das permissões descritas anteriormente, alguns tipos de conjuntos de regras, especificamente os estáticos, exigem a declaração da chave de manifesto "declarative_net_request"
, que precisa ser um dicionário com uma única chave chamada "rule_resources"
. Essa chave é uma matriz que contém dicionários do tipo Ruleset
, conforme mostrado abaixo. O nome "Ruleset" não aparece no JSON do manifesto porque é apenas uma matriz. Os conjuntos de regras estáticos são explicados mais adiante neste 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/*" ], ... }
Regras e conjuntos de regras
Para usar essa API, especifique um ou mais conjuntos de regras. Um conjunto de regras contém uma matriz de regras. Uma única regra faz uma das seguintes ações:
- Bloqueie uma solicitação de rede.
- Faça upgrade do esquema (http para https).
- Impedir que uma solicitação seja bloqueada negando todas as regras bloqueadas correspondentes.
- Redirecionar uma solicitação de rede.
- Modificar cabeçalhos de solicitação ou resposta.
Há três tipos de conjuntos de regras, gerenciados de maneiras um pouco diferentes.
- Dinâmico
- Persistem em sessões do navegador e upgrades de extensão e são gerenciados usando JavaScript enquanto uma extensão está em uso.
- Sessão
- É limpo quando o navegador é fechado e quando uma nova versão da extensão é instalada. As regras de sessão são gerenciadas usando JavaScript enquanto uma extensão está em uso.
- Estático
- Empacotado, instalado e atualizado quando uma extensão é instalada ou atualizada. As regras estáticas são armazenadas em arquivos de regras formatados em JSON e listadas no arquivo de manifesto.
Conjuntos de regras dinâmicos e no escopo da sessão
Os conjuntos de regras dinâmicos e de sessão são gerenciados usando JavaScript enquanto uma extensão está em uso.
- As regras dinâmicas persistem nas sessões do navegador e nos upgrades de extensão.
- As regras de sessão são limpas quando o navegador é fechado e quando uma nova versão da extensão é instalada.
Há apenas um de cada tipo de conjunto de regras. Uma extensão pode adicionar ou remover regras de forma dinâmica chamando updateDynamicRules()
e updateSessionRules()
, desde que os limites de regras não sejam excedidos. Para informações sobre limites de regras, consulte Limites de regras. Confira um exemplo disso em exemplos de código.
Conjuntos de regras estáticos
Ao contrário das regras dinâmicas e de sessão, as regras estáticas são empacotadas, instaladas e atualizadas quando uma extensão é instalada ou atualizada. Eles são armazenados em arquivos de regras no formato JSON, que são indicados à extensão usando as chaves "declarative_net_request"
e "rule_resources"
conforme descrito acima, além de um ou mais dicionários Ruleset
. Um dicionário Ruleset
contém um caminho para o arquivo de regras, um ID para o conjunto de regras contido no arquivo e se o conjunto de regras está ativado ou desativado. Os dois últimos são importantes quando você ativa ou desativa um conjunto de regras de maneira programática.
{ ... "declarative_net_request" : { "rule_resources" : [{ "id": "ruleset_1", "enabled": true, "path": "rules_1.json" }, ... ] } ... }
Para testar arquivos de regras, carregue a extensão descompactada. Erros e avisos sobre regras estáticas inválidas só são mostrados para extensões descompactadas. Regras estáticas inválidas em extensões compactadas são ignoradas.
Análise acelerada
As mudanças em conjuntos de regras estáticas podem estar qualificadas para revisão acelerada. Consulte revisão acelerada para mudanças qualificadas.
Ativar e desativar regras e conjuntos de regras estáticos
Tanto regras estáticas individuais quanto conjuntos de regras estáticas completos podem ser ativados ou desativados durante a execução.
O conjunto de regras estáticas e conjuntos de regras ativados é mantido em todas as sessões do navegador. Nenhum dos dois é mantido nas atualizações de extensão. Isso significa que apenas as regras que você escolheu deixar nos arquivos de regras ficam disponíveis após uma atualização.
Por motivos de desempenho, também há limites para o número de regras e conjuntos de regras que podem ser ativados ao mesmo tempo. Chame getAvailableStaticRuleCount()
para verificar o número de regras adicionais que podem ser ativadas. Para informações sobre limites de regras, consulte Limites de regras.
Para ativar ou desativar regras estáticas, chame updateStaticRules()
. Esse método usa um objeto UpdateStaticRulesOptions
, que contém matrizes de IDs de regras a serem ativadas ou desativadas. Os IDs são definidos usando a chave "id"
do dicionário Ruleset
. Há um limite máximo de 5.000 regras estáticas desativadas.
Para ativar ou desativar conjuntos de regras estáticos, chame updateEnabledRulesets()
. Esse método usa um objeto UpdateRulesetOptions
, que contém matrizes de IDs de conjuntos de regras a serem ativados ou desativados. Os IDs são definidos usando a chave "id"
do dicionário Ruleset
.
Regras de build
Independentemente do tipo, uma regra começa com quatro campos, conforme mostrado abaixo. Enquanto as chaves "id"
e "priority"
usam um número, as chaves "action"
e "condition"
podem fornecer várias condições de bloqueio e redirecionamento. A regra a seguir bloqueia todas as solicitações de script originadas de "foo.com"
para qualquer URL com "abc"
como uma substring.
{ "id" : 1, "priority": 1, "action" : { "type" : "block" }, "condition" : { "urlFilter" : "abc", "initiatorDomains" : ["foo.com"], "resourceTypes" : ["script"] } }
Correspondência de URL
A solicitação de rede declarativa permite corresponder URLs com uma sintaxe de correspondência de padrão ou expressões regulares.
Sintaxe do filtro de URL
A chave "condition"
de uma regra permite uma chave "urlFilter"
para agir em URLs de um domínio especificado. Você cria padrões usando tokens de correspondência de padrões. Confira alguns deles:
urlFilter | Correspondências | Não corresponde |
---|---|---|
"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://a.example.company | 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 |
Expressões regulares
As condições também podem usar expressões regulares. Consulte a chave "regexFilter"
. Para saber mais sobre os limites aplicados a essas condições, consulte Regras que usam expressões regulares.
Escrever boas condições de URL
Tenha cuidado ao escrever regras para sempre corresponder a um domínio inteiro. Caso contrário, a regra pode corresponder em situações inesperadas. Por exemplo, ao usar a sintaxe de correspondência de padrões:
google.com
corresponde incorretamente ahttps://example.com/?param=google.com
||google.com
corresponde incorretamente ahttps://google.company
https://www.google.com
corresponde incorretamente ahttps://example.com/?param=https://www.google.com
Considere usar:
||google.com/
, que corresponde a todos os caminhos e subdomínios.|https://www.google.com/
, que corresponde a todos os caminhos e nenhum subdomínio.
Da mesma forma, use os caracteres ^
e /
para ancorar uma expressão regular. Por exemplo, ^https:\/\/www\.google\.com\/
corresponde a qualquer caminho em https://www.google.com.
Avaliação de regras
As regras de DNR são aplicadas pelo navegador em várias etapas do ciclo de vida da solicitação de rede.
Antes da solicitação
Antes de uma solicitação ser feita, uma extensão pode bloquear ou redirecionar (incluindo o upgrade do esquema de HTTP para HTTPS) com uma regra correspondente.
Para cada extensão, o navegador determina uma lista de regras correspondentes. As regras com uma ação modifyHeaders
não estão incluídas aqui porque serão processadas mais tarde. Além disso, as regras com uma condição responseHeaders
serão consideradas mais tarde (quando os cabeçalhos de resposta estiverem disponíveis) e não serão incluídas.
Em seguida, para cada extensão, o Chrome escolhe no máximo um candidato por solicitação. O Chrome encontra uma regra correspondente, ordenando todas as regras correspondentes por prioridade. Regras com a mesma prioridade são ordenadas por ação (allow
ou allowAllRequests
> block
> upgradeScheme
> redirect
).
Se o candidato for uma regra allow
ou allowAllRequests
, ou se o frame em que a solicitação está sendo feita já tiver correspondido a uma regra allowAllRequests
de prioridade maior ou igual desta extensão, a solicitação será "permitida" e a extensão não terá efeito sobre ela.
Se mais de uma extensão quiser bloquear ou redirecionar essa solicitação, uma única ação será escolhida. O Chrome faz isso classificando as regras na ordem block
> redirect
ou upgradeScheme
> allow
ou allowAllRequests
. Se duas regras forem do mesmo tipo, o Chrome vai escolher a regra da extensão instalada mais recentemente.
Antes do envio dos cabeçalhos de solicitação
Antes de o Chrome enviar cabeçalhos de solicitação ao servidor, eles são atualizados com base nas regras modifyHeaders
correspondentes.
Em uma única extensão, o Chrome cria a lista de modificações a serem realizadas encontrando todas as regras modifyHeaders
correspondentes. Assim como antes, apenas as regras com uma prioridade maior do que qualquer regra allow
ou allowAllRequests
correspondente são incluídas.
Essas regras são aplicadas pelo Chrome em uma ordem em que as regras de uma extensão instalada mais recentemente são sempre avaliadas antes das regras de uma extensão mais antiga. Além disso, as regras de uma extensão com prioridade mais alta são sempre aplicadas antes das regras de uma extensão com prioridade mais baixa. Principalmente em todas as extensões:
- Se uma regra for adicionada a um cabeçalho, as regras de prioridade mais baixa só poderão ser adicionadas a esse cabeçalho. Não é permitido definir nem remover operações.
- Se uma regra definir um cabeçalho, somente as regras de menor prioridade da mesma extensão poderão anexar a ele. Nenhuma outra modificação é permitida.
- Se uma regra remover um cabeçalho, as regras de prioridade mais baixa não poderão modificar o cabeçalho.
Quando uma resposta é recebida
Depois que os cabeçalhos de resposta são recebidos, o Chrome avalia as regras com uma condição responseHeaders
.
Depois de classificar essas regras por action
e priority
e excluir as regras que se tornaram redundantes por uma regra allow
ou allowAllRequests
correspondente (isso acontece de maneira idêntica às etapas em "Antes da solicitação"), o Chrome pode bloquear ou redirecionar a solicitação em nome de uma extensão.
Se uma solicitação chegar a essa etapa, ela já terá sido enviada ao servidor, e o servidor terá recebido dados como o corpo da solicitação. Uma regra de bloqueio ou redirecionamento com uma condição de cabeçalhos de resposta ainda será executada, mas não poderá bloquear ou redirecionar a solicitação.
No caso de uma regra de bloqueio, isso é processado pela página que fez a solicitação, recebendo uma resposta bloqueada e o Chrome encerrando a solicitação antecipadamente. No caso de uma regra de redirecionamento, o Chrome faz uma nova solicitação ao URL redirecionado. Considere se esses comportamentos atendem às expectativas de privacidade da sua extensão.
Se a solicitação não for bloqueada ou redirecionada, o Chrome vai aplicar as regras modifyHeaders
. Aplicar modificações aos cabeçalhos de resposta funciona da mesma forma que descrito em "Antes do envio dos cabeçalhos de solicitação". Aplicar modificações aos cabeçalhos de solicitação não faz nada, já que a solicitação já foi feita.
Regras seguras
As regras seguras são definidas como regras com uma ação de block
, allow
, allowAllRequests
ou upgradeScheme
. Essas regras estão sujeitas a uma cota dinâmica maior.
Limites das regras
Há uma sobrecarga de desempenho ao carregar e avaliar regras no navegador. Por isso, alguns limites se aplicam ao usar a API. Os limites dependem do tipo de regra que você está usando.
Regras estáticas
As regras estáticas são aquelas especificadas em arquivos de regras declarados no arquivo de manifesto. Uma extensão pode especificar até 100 conjuntos de regras estáticos como parte da chave de manifesto "rule_resources"
, mas apenas 50 deles podem ser ativados por vez. O último é chamado de MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
. No total, esses conjuntos de regras têm pelo menos 30.000 regras. Isso é chamado de GUARANTEED_MINIMUM_STATIC_RULES
.
O número de regras disponíveis depois disso depende de quantas regras são ativadas por todas as extensões instaladas no navegador de um usuário. Você pode encontrar esse número no tempo de execução chamando getAvailableStaticRuleCount()
. Confira um exemplo disso em exemplos de código.
Regras de sessão
Uma extensão pode ter até 5.000 regras de sessão. Ele é exposto como o MAX_NUMBER_OF_SESSION_RULES
.
Antes do Chrome 120, havia um limite de 5.000 regras dinâmicas e de sessão combinadas.
Regras dinâmicas
Uma extensão pode ter pelo menos 5.000 regras dinâmicas. Ele é exposto como o MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
.
A partir do Chrome 121, há um limite maior de 30.000 regras disponíveis para regras dinâmicas seguras, expostas como MAX_NUMBER_OF_DYNAMIC_RULES
. Todas as regras não seguras adicionadas dentro do limite de 5.000 também contam para esse limite.
Antes do Chrome 120, havia um limite de 5.000 regras dinâmicas e de sessão combinadas.
Regras que usam expressões regulares
Todos os tipos de regras podem usar expressões regulares, mas o número total de regras de expressão regular de cada tipo não pode exceder 1.000. Isso é chamado de MAX_NUMBER_OF_REGEX_RULES.
Além disso, cada regra precisa ter menos de 2 KB depois de compilada. Isso se correlaciona aproximadamente com a complexidade da regra. Se você tentar carregar uma regra que exceda esse limite, vai aparecer um aviso como este, e a regra será ignorada.
rules_1.json: Rule with id 1 specified a more complex regex than allowed as part of the "regexFilter" key.
Interações com service workers
Uma declarativeNetRequest só se aplica a solicitações que chegam à pilha de rede. Isso inclui respostas do cache HTTP, mas não as que passam pelo manipulador onfetch
de um service worker. O declarativeNetRequest não afeta as respostas geradas pelo service worker ou recuperadas de CacheStorage
, mas afeta as chamadas para fetch()
feitas em um service worker.
Recursos acessíveis da Web
Uma regra declarativeNetRequest não pode redirecionar de uma solicitação de recurso público para um recurso que não seja acessível pela Web. Isso aciona um erro. Isso é válido mesmo que o recurso acessível da Web especificado seja de propriedade da extensão de redirecionamento. Para declarar recursos para declarativeNetRequest, use a matriz "web_accessible_resources"
do manifesto.
Modificação de cabeçalho
A operação de adição só é compatível com os seguintes cabeçalhos: accept
, accept-encoding
, accept-language
, access-control-request-headers
, cache-control
, connection
, content-language
, cookie
, forwarded
, if-match
, if-none-match
, keep-alive
, range
, te
, trailer
, transfer-encoding
, upgrade
, user-agent
, via
, want-digest
, x-forwarded-for
.
Exemplos
Exemplos de código
Atualizar regras dinâmicas
O exemplo a seguir mostra como chamar updateDynamicRules()
. O procedimento para updateSessionRules()
é o mesmo.
// 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 });
Atualizar conjuntos de regras estáticos
O exemplo a seguir mostra como ativar e desativar conjuntos de regras considerando o número de conjuntos estáticos disponíveis e o número máximo de conjuntos ativados. Isso é feito quando o número de regras estáticas necessárias excede o permitido. Para que isso funcione, alguns conjuntos de regras precisam ser instalados com outros desativados (definindo "Enabled"
como false
no arquivo de manifesto).
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); }
Exemplos de regras
Os exemplos a seguir ilustram como o Chrome prioriza regras em uma extensão. Ao analisar, abra as regras de priorização em uma janela separada.
A chave "priority"
Esses exemplos exigem permissão de host para *://*.example.com/*
.
Para determinar a prioridade de um URL específico, consulte as chaves "priority"
, "action"
e "urlFilter"
(definidas pelo desenvolvedor). Esses exemplos se referem ao arquivo de regra de exemplo mostrado abaixo deles.
- Navegação para https://google.com
- Duas regras abrangem este URL: as regras com IDs 1 e 4. A regra com ID 1 é aplicada porque as ações
"block"
têm uma prioridade maior do que as ações"redirect"
. As regras restantes não se aplicam porque são para URLs mais longos. - Navegação para https://google.com/1234
- Devido ao URL mais longo, a regra com ID 2 agora também corresponde às regras com IDs 1 e 4. A regra com ID 2 é aplicada porque
"allow"
tem uma prioridade maior que"block"
e"redirect"
. - Navegação para https://google.com/12345
- Todas as quatro regras correspondem a este URL. A regra com ID 3 é aplicada porque a prioridade definida pelo desenvolvedor é a mais alta do 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"] } }, ]
Redirecionamentos
O exemplo abaixo exige permissão de host para *://*.example.com/*
.
O exemplo a seguir mostra como redirecionar uma solicitação de example.com para uma página na própria extensão. O caminho da extensão /a.jpg
é resolvido como chrome-extension://EXTENSION_ID/a.jpg
, em que EXTENSION_ID
é o ID da extensão. Para que isso funcione, o manifesto precisa declarar /a.jpg
como um recurso acessível à Web.
{ "id": 1, "priority": 1, "action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } }, "condition": { "urlFilter": "||https://www.example.com/", "resourceTypes": ["main_frame"] } }
O exemplo a seguir usa a chave "transform"
para redirecionar para um subdomínio de example.com. Ele usa uma âncora de nome de domínio ("||") para interceptar solicitações com qualquer esquema de example.com. A chave "scheme"
em "transform"
especifica que os redirecionamentos para o subdomínio sempre usarão "https".
{ "id": 1, "priority": 1, "action": { "type": "redirect", "redirect": { "transform": { "scheme": "https", "host": "new.example.com" } } }, "condition": { "urlFilter": "||example.com/", "resourceTypes": ["main_frame"] } }
O exemplo a seguir usa expressões regulares para redirecionar de https://www.abc.xyz.com/path
para https://abc.xyz.com/path
. Na chave "regexFilter"
, observe como os pontos são escapados e que o grupo de captura seleciona "abc" ou "def". A chave "regexSubstitution"
especifica a primeira correspondência retornada da expressão regular usando "\1". Nesse caso, "abc" é capturado do URL redirecionado e colocado na substituição.
{ "id": 1, "priority": 1, "action": { "type": "redirect", "redirect": { "regexSubstitution": "https://\\1.xyz.com/" } }, "condition": { "regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/", "resourceTypes": [ "main_frame" ] } }
Cabeçalhos
O exemplo a seguir remove todos os cookies de um frame principal e de todos os subframes.
{ "id": 1, "priority": 1, "action": { "type": "modifyHeaders", "requestHeaders": [{ "header": "cookie", "operation": "remove" }] }, "condition": { "resourceTypes": ["main_frame", "sub_frame"] } }
Tipos
DomainType
Isso descreve se a solicitação é própria ou de terceiros para o frame em que foi originada. Uma solicitação é considerada de terceiros se tiver o mesmo domínio (eTLD+1) do frame em que foi originada.
Enumeração
"firstParty"
A solicitação de rede é própria do frame em que foi originada.
"thirdParty"
A solicitação de rede é de terceiros para o frame em que foi originada.
ExtensionActionOptions
Propriedades
- displayActionCountAsBadgeText
booleano opcional
Se a contagem de ações de uma página deve ser mostrada automaticamente como o texto do selo da extensão. Essa preferência é mantida entre as sessões.
- tabUpdate
TabActionCountUpdate opcional
Chrome 89+Detalhes de como a contagem de ações da guia deve ser ajustada.
GetDisabledRuleIdsOptions
Propriedades
- rulesetId
string
O ID correspondente a um
Ruleset
estático.
GetRulesFilter
Propriedades
- ruleIds
number[] opcional
Se especificado, somente as regras com IDs correspondentes serão incluídas.
HeaderInfo
Propriedades
- excludedValues
string[] opcional
Se especificada, essa condição não será correspondida se o cabeçalho existir, mas o valor dele tiver pelo menos um elemento nesta lista. Isso usa a mesma sintaxe de padrão de correspondência que
values
. - cabeçalho
string
O nome do cabeçalho. Essa condição só corresponde ao nome se
values
eexcludedValues
não forem especificados. - values
string[] opcional
Se especificada, essa condição vai corresponder se o valor do cabeçalho corresponder a pelo menos um padrão nesta lista. Isso oferece suporte à correspondência de valores de cabeçalho sem diferenciação de maiúsculas e minúsculas, além das seguintes construções:
"*" : corresponde a qualquer número de caracteres.
'?' : corresponde a zero ou um caractere.
"*" e "?" podem ser escapados com uma barra invertida, por exemplo, "\*" e "\?".
HeaderOperation
Isso descreve as operações possíveis para uma regra "modifyHeaders".
Enumeração
"append"
Adiciona uma nova entrada para o cabeçalho especificado. Essa operação não é compatível com cabeçalhos de solicitação.
"set"
Define um novo valor para o cabeçalho especificado, removendo todos os cabeçalhos com o mesmo nome.
"remove"
Remove todas as entradas do cabeçalho especificado.
IsRegexSupportedResult
Propriedades
- isSupported
booleano
- reason
UnsupportedRegexReason opcional
Especifica o motivo pelo qual a expressão regular não é compatível. Só é fornecido se
isSupported
for falso.
MatchedRule
Propriedades
- ruleId
número
O ID de uma regra de correspondência.
- rulesetId
string
ID do
Ruleset
a que esta regra pertence. Para uma regra originada do conjunto de regras dinâmicas, isso será igual aDYNAMIC_RULESET_ID
.
MatchedRuleInfo
Propriedades
- regra
- tabId
número
O tabId da guia de origem da solicitação, se ela ainda estiver ativa. Else -1.
- timeStamp
número
O horário em que a regra foi correspondida. Os carimbos de data/hora correspondem à convenção JavaScript para horários, ou seja, o número de milissegundos desde a época.
MatchedRuleInfoDebug
Propriedades
- solicitação
Detalhes sobre a solicitação para a qual a regra foi correspondida.
- regra
MatchedRulesFilter
Propriedades
- minTimeStamp
number optional
Se especificado, só vai corresponder a regras após o carimbo de data/hora fornecido.
- tabId
number optional
Se especificado, só vai corresponder a regras da guia em questão. Corresponde a regras não associadas a nenhuma guia ativa se definido como -1.
ModifyHeaderInfo
Propriedades
- cabeçalho
string
O nome do cabeçalho a ser modificado.
- operação
A operação a ser realizada em um cabeçalho.
- valor
string opcional
O novo valor do cabeçalho. Precisa ser especificado para operações
append
eset
.
QueryKeyValue
Propriedades
- chave
string
- replaceOnly
booleano opcional
Chrome 94+Se for "true", a chave de consulta será substituída apenas se já estiver presente. Caso contrário, a chave também será adicionada se estiver faltando. O padrão é "false".
- valor
string
QueryTransform
Propriedades
- addOrReplaceParams
QueryKeyValue[] opcional
A lista de pares de chave-valor de consulta a serem adicionados ou substituídos.
- removeParams
string[] opcional
A lista de chaves de consulta a serem removidas.
Redirect
Propriedades
- extensionPath
string opcional
Caminho relativo ao diretório da extensão. Precisa começar com "/".
- regexSubstitution
string opcional
Padrão de substituição para regras que especificam um
regexFilter
. A primeira correspondência deregexFilter
no URL será substituída por esse padrão. EmregexSubstitution
, dígitos de escape com barra invertida (\1 a \9) podem ser usados para inserir os grupos de captura correspondentes. \0 se refere a todo o texto correspondente. - transform
URLTransform opcional
Transformações de URL a serem realizadas.
- url
string opcional
O URL de redirecionamento. Não são permitidos redirecionamentos para URLs JavaScript.
RegexOptions
Propriedades
- isCaseSensitive
booleano opcional
Se o
regex
especificado diferencia maiúsculas de minúsculas. O padrão é verdadeiro. - Regex
string
A expressão regular a ser verificada.
- requireCapturing
booleano opcional
Se o
regex
especificado exige captura. A captura só é necessária para regras de redirecionamento que especificam uma açãoregexSubstition
. O valor padrão é falso.
RequestDetails
Propriedades
- documentId
string opcional
Chrome 106 ou mais recenteO identificador exclusivo do documento do frame, se esta solicitação for para um frame.
- documentLifecycle
DocumentLifecycle opcional
Chrome 106 ou mais recenteO ciclo de vida do documento do frame, se esta solicitação for para um frame.
- frameId
número
O valor 0 indica que a solicitação acontece no frame principal. Um valor positivo indica o ID de um subframe em que a solicitação acontece. Se o documento de um (sub)frame for carregado (
type
émain_frame
ousub_frame
),frameId
vai indicar o ID desse frame, não do frame externo. Os IDs de frame são exclusivos em uma guia. - frameType
FrameType opcional
Chrome 106 ou mais recenteO tipo do frame, se esta solicitação for para um frame.
- iniciador
string opcional
A origem em que a solicitação foi iniciada. Isso não muda com redirecionamentos. Se for uma origem opaca, a string "null" será usada.
- method
string
Método HTTP padrão.
- parentDocumentId
string opcional
Chrome 106 ou mais recenteO identificador exclusivo do documento pai do frame, se esta solicitação for para um frame e tiver um pai.
- parentFrameId
número
ID do frame que envolve o frame que enviou a solicitação. Defina como -1 se não houver um frame principal.
- requestId
string
O ID da solicitação. Os IDs de solicitação são exclusivos em uma sessão do navegador.
- tabId
número
O ID da guia em que a solicitação é feita. Defina como -1 se a solicitação não estiver relacionada a uma guia.
- tipo
O tipo de recurso da solicitação.
- url
string
O URL da solicitação.
RequestMethod
Isso descreve o método de solicitação HTTP de uma solicitação de rede.
Enumeração
"conectar"
"delete"
"get"
"head"
"options"
"patch"
"post"
"put"
"other"
ResourceType
Isso descreve o tipo de recurso da solicitação de rede.
Enumeração
"main_frame"
"sub_frame"
"stylesheet"
"script"
"image"
"font"
"object"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"webtransport"
"webbundle"
"other"
Rule
Propriedades
- ação
A ação a ser realizada se esta regra for correspondente.
- condição
A condição em que essa regra é acionada.
- ID
número
Um ID que identifica uma regra de forma exclusiva. Obrigatório e precisa ser >= 1.
- prioridade
number optional
Prioridade da regra. O padrão é 1. Quando especificado, precisa ser >= 1.
RuleAction
Propriedades
- Redirecionar
Redirecionamento opcional
Descreve como o redirecionamento deve ser realizado. Válido apenas para regras de redirecionamento.
- requestHeaders
ModifyHeaderInfo[] opcional
Chrome 86+Os cabeçalhos de solicitação a serem modificados. Válido apenas se RuleActionType for "modifyHeaders".
- responseHeaders
ModifyHeaderInfo[] opcional
Chrome 86+Os cabeçalhos de resposta a serem modificados para a solicitação. Válido apenas se RuleActionType for "modifyHeaders".
- tipo
O tipo de ação a ser realizada.
RuleActionType
Descreve o tipo de ação a ser tomada se uma determinada RuleCondition corresponder.
Enumeração
"block"
Bloqueia a solicitação de rede.
"redirect"
Redireciona a solicitação de rede.
"allow"
Permite a solicitação de rede. A solicitação não será interceptada se houver uma regra de permissão correspondente.
"upgradeScheme"
Atualiza o esquema do URL da solicitação de rede para HTTPS se a solicitação for HTTP ou FTP.
"modifyHeaders"
Modifica os cabeçalhos de solicitação/resposta da solicitação de rede.
"allowAllRequests"
Permite todas as solicitações em uma hierarquia de frames, incluindo a própria solicitação de frame.
RuleCondition
Propriedades
- domainType
DomainType opcional
Especifica se a solicitação de rede é própria ou de terceiros para o domínio de origem. Se for omitido, todas as solicitações serão aceitas.
- domínios
string[] opcional
Descontinuado desde o Chrome 101Use
initiatorDomains
em vez dissoA regra só vai corresponder a solicitações de rede originadas da lista de
domains
. - excludedDomains
string[] opcional
Descontinuado desde o Chrome 101Use
excludedInitiatorDomains
em vez dissoA regra não vai corresponder a solicitações de rede originadas da lista de
excludedDomains
. - excludedInitiatorDomains
string[] opcional
Chrome 101 ou mais recenteA regra não vai corresponder a solicitações de rede originadas da lista de
excludedInitiatorDomains
. Se a lista estiver vazia ou for omitida, nenhum domínio será excluído. Isso tem precedência sobreinitiatorDomains
.Observações:
- Subdomínios como "a.example.com" também são permitidos.
- As entradas precisam consistir apenas de caracteres ASCII.
- Use a codificação punycode para domínios internacionalizados.
- Isso corresponde ao iniciador da solicitação, não ao URL dela.
- Os subdomínios dos domínios listados também são excluídos.
- excludedRequestDomains
string[] opcional
Chrome 101 ou mais recenteA regra não vai corresponder a solicitações de rede quando os domínios corresponderem a um da lista de
excludedRequestDomains
. Se a lista estiver vazia ou for omitida, nenhum domínio será excluído. Isso tem precedência sobrerequestDomains
.Observações:
- Subdomínios como "a.example.com" também são permitidos.
- As entradas precisam consistir apenas de caracteres ASCII.
- Use a codificação punycode para domínios internacionalizados.
- Os subdomínios dos domínios listados também são excluídos.
- excludedRequestMethods
RequestMethod[] opcional
Chrome 91+Lista de métodos de solicitação que a regra não vai corresponder. Só é possível especificar
requestMethods
ouexcludedRequestMethods
. Se nenhum deles for especificado, todos os métodos de solicitação serão correspondentes. - excludedResourceTypes
ResourceType[] opcional
Lista de tipos de recursos que a regra não vai corresponder. Só é possível especificar
resourceTypes
ouexcludedResourceTypes
. Se nenhum deles for especificado, todos os tipos de recursos, exceto "main_frame", serão bloqueados. - excludedResponseHeaders
HeaderInfo[] opcional
Chrome 128 ou mais recenteA regra não corresponde se a solicitação corresponder a qualquer condição de cabeçalho de resposta nesta lista (se especificada). Se
excludedResponseHeaders
eresponseHeaders
forem especificados, a propriedadeexcludedResponseHeaders
terá precedência. - excludedTabIds
number[] opcional
Chrome 92 ou mais recenteLista de
tabs.Tab.id
que a regra não deve corresponder. Um ID detabs.TAB_ID_NONE
exclui solicitações que não se originam de uma guia. Compatível apenas com regras no escopo da sessão. - initiatorDomains
string[] opcional
Chrome 101 ou mais recenteA regra só vai corresponder a solicitações de rede originadas da lista de
initiatorDomains
. Se a lista for omitida, a regra será aplicada a solicitações de todos os domínios. Não é permitido deixar a lista vazia.Observações:
- Subdomínios como "a.example.com" também são permitidos.
- As entradas precisam consistir apenas de caracteres ASCII.
- Use a codificação punycode para domínios internacionalizados.
- Isso corresponde ao iniciador da solicitação, não ao URL dela.
- Os subdomínios dos domínios listados também são correspondentes.
- isUrlFilterCaseSensitive
booleano opcional
Se o
urlFilter
ou oregexFilter
(o que for especificado) diferencia maiúsculas de minúsculas. O padrão é false - regexFilter
string opcional
Expressão regular para corresponder ao URL da solicitação de rede. Isso segue a sintaxe RE2.
Observação: só é possível especificar
urlFilter
ouregexFilter
.Observação: o
regexFilter
precisa ser composto apenas de caracteres ASCII. Isso é comparado com um URL em que o host é codificado no formato punycode (no caso de domínios internacionalizados) e qualquer outro caractere não ASCII é codificado em URL em UTF-8. - requestDomains
string[] opcional
Chrome 101 ou mais recenteA regra só vai corresponder a solicitações de rede quando o domínio corresponder a um da lista de
requestDomains
. Se a lista for omitida, a regra será aplicada a solicitações de todos os domínios. Não é permitido deixar a lista vazia.Observações:
- Subdomínios como "a.example.com" também são permitidos.
- As entradas precisam consistir apenas de caracteres ASCII.
- Use a codificação punycode para domínios internacionalizados.
- Os subdomínios dos domínios listados também são correspondentes.
- requestMethods
RequestMethod[] opcional
Chrome 91+Lista de métodos de solicitação HTTP que a regra pode corresponder. Não é permitido deixar a lista vazia.
Observação: especificar uma condição de regra
requestMethods
também exclui solicitações não HTTP(s), enquanto especificarexcludedRequestMethods
não faz isso. - resourceTypes
ResourceType[] opcional
Lista de tipos de recursos que a regra pode corresponder. Não é permitido deixar a lista vazia.
Observação: isso precisa ser especificado para regras
allowAllRequests
e só pode incluir os tipos de recursossub_frame
emain_frame
. - responseHeaders
HeaderInfo[] opcional
Chrome 128 ou mais recenteA regra vai corresponder se a solicitação corresponder a qualquer condição de cabeçalho de resposta nesta lista (se especificada).
- tabIds
number[] opcional
Chrome 92 ou mais recenteLista de
tabs.Tab.id
que a regra precisa corresponder. Um ID detabs.TAB_ID_NONE
corresponde a solicitações que não se originam de uma guia. Não é permitido deixar a lista vazia. Compatível apenas com regras no escopo da sessão. - urlFilter
string opcional
O padrão que corresponde ao URL da solicitação de rede. Construções compatíveis:
"*": caractere curinga. Corresponde a qualquer número de caracteres.
'|': âncora esquerda/direita. Se usado em qualquer extremidade do padrão, especifica o início/fim do URL, respectivamente.
'||': âncora de nome de domínio. Se usado no início do padrão, especifica o início de um (sub)domínio do URL.
'^': caractere separador. Corresponde a qualquer coisa, exceto uma letra, um dígito ou um dos seguintes:
_
,-
,.
ou%
. Isso também corresponde ao final do URL.Portanto,
urlFilter
é composto das seguintes partes: (âncora esquerda/nome de domínio opcional) + padrão + (âncora direita opcional).Se omitido, todos os URLs serão correspondentes. Não é permitido usar uma string vazia.
Não é permitido um padrão que comece com
||*
. Use*
.Observação: só é possível especificar
urlFilter
ouregexFilter
.Observação: o
urlFilter
precisa ser composto apenas de caracteres ASCII. Isso é comparado com um URL em que o host é codificado no formato punycode (no caso de domínios internacionalizados) e qualquer outro caractere não ASCII é codificado em URL em UTF-8. Por exemplo, quando o URL da solicitação é http://abc.рф?q=ф, ourlFilter
é comparado com o URL http://abc.xn--p1ai/?q=%D1%84.
Ruleset
Propriedades
- ativado
booleano
Indica se o conjunto de regras está ativado por padrão.
- ID
string
Uma string não vazia que identifica o conjunto de regras de forma exclusiva. IDs que começam com "_" são reservados para uso interno.
- caminho
string
O caminho do conjunto de regras JSON relativo ao diretório da extensão.
RulesMatchedDetails
Propriedades
- rulesMatchedInfo
Regras que correspondem ao filtro especificado.
TabActionCountUpdate
Propriedades
- increment
número
O valor pelo qual incrementar a contagem de ações da guia. Valores negativos diminuem a contagem.
- tabId
número
A guia para a qual atualizar a contagem de ações.
TestMatchOutcomeResult
Propriedades
- matchedRules
As regras (se houver) que correspondem à solicitação hipotética.
TestMatchRequestDetails
Propriedades
- iniciador
string opcional
O URL do iniciador (se houver) para a solicitação hipotética.
- method
RequestMethod opcional
Método HTTP padrão da solicitação hipotética. O padrão é "get" para solicitações HTTP e é ignorado para solicitações não HTTP.
- responseHeaders
objeto opcional
Chrome 129+Os cabeçalhos fornecidos por uma resposta hipotética se a solicitação não for bloqueada ou redirecionada antes de ser enviada. Representado como um objeto que mapeia um nome de cabeçalho para uma lista de valores de string. Se não for especificado, a resposta hipotética vai retornar cabeçalhos de resposta vazios, que podem corresponder a regras que correspondem à não existência de cabeçalhos. Por exemplo,
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}
- tabId
number optional
O ID da guia em que a solicitação hipotética ocorre. Não precisa corresponder a um ID de guia real. O padrão é -1, o que significa que a solicitação não está relacionada a uma guia.
- tipo
O tipo de recurso da solicitação hipotética.
- url
string
O URL da solicitação hipotética.
UnsupportedRegexReason
Descreve o motivo pelo qual uma determinada expressão regular não é compatível.
Enumeração
"syntaxError"
A expressão regular está sintaticamente incorreta ou usa recursos não disponíveis na sintaxe RE2.
"memoryLimitExceeded"
A expressão regular excede o limite de memória.
UpdateRuleOptions
Propriedades
- addRules
Rule[] optional
Regras a serem adicionadas.
- removeRuleIds
number[] opcional
IDs das regras a serem removidas. Os IDs inválidos serão ignorados.
UpdateRulesetOptions
Propriedades
UpdateStaticRulesOptions
Propriedades
URLTransform
Propriedades
- fragment
string opcional
O novo fragmento da solicitação. Precisa estar vazio, caso em que o fragmento atual é limpo, ou começar com "#".
- host
string opcional
O novo host da solicitação.
- senha
string opcional
A nova senha da solicitação.
- caminho
string opcional
O novo caminho para a solicitação. Se estiver vazio, o caminho atual será apagado.
- porta
string opcional
A nova porta para a solicitação. Se estiver vazio, a porta atual será limpa.
- consulta
string opcional
A nova consulta para a solicitação. Precisa estar vazio, caso em que a consulta atual é apagada, ou começar com "?".
- queryTransform
QueryTransform opcional
Adicione, remova ou substitua pares de chave-valor de consulta.
- planejar
string opcional
O novo esquema da solicitação. Os valores permitidos são "http", "https", "ftp" e "chrome-extension".
- nome de usuário
string opcional
O novo nome de usuário da solicitação.
Propriedades
DYNAMIC_RULESET_ID
ID do conjunto de regras para as regras dinâmicas adicionadas pela extensão.
Valor
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
Intervalo de tempo em que as chamadas MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
podem ser feitas, especificado em minutos. As chamadas adicionais vão falhar imediatamente e definir runtime.lastError
. Observação: as chamadas getMatchedRules
associadas a um gesto do usuário estão isentas da cota.
Valor
10
GUARANTEED_MINIMUM_STATIC_RULES
O número mínimo de regras estáticas garantidas para uma extensão em todos os conjuntos de regras estáticas ativados. As regras acima desse limite serão contabilizadas no limite global de regras estáticas.
Valor
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
O número de vezes que getMatchedRules
pode ser chamado em um período de GETMATCHEDRULES_QUOTA_INTERVAL
.
Valor
20
MAX_NUMBER_OF_DYNAMIC_RULES
O número máximo de regras dinâmicas que uma extensão pode adicionar.
Valor
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
O número máximo de Rulesets
estáticos que uma extensão pode ativar por vez.
Valor
50
MAX_NUMBER_OF_REGEX_RULES
O número máximo de regras de expressão regular que uma extensão pode adicionar. Esse limite é avaliado separadamente para o conjunto de regras dinâmicas e as especificadas no arquivo de recursos de regras.
Valor
1000
MAX_NUMBER_OF_SESSION_RULES
O número máximo de regras no escopo da sessão que uma extensão pode adicionar.
Valor
5000
MAX_NUMBER_OF_STATIC_RULESETS
O número máximo de Rulesets
estáticos que uma extensão pode especificar como parte da chave de manifesto "rule_resources"
.
Valor
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
O número máximo de regras dinâmicas "inseguras" que uma extensão pode adicionar.
Valor
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
O número máximo de regras "não seguras" no escopo da sessão que uma extensão pode adicionar.
Valor
5000
SESSION_RULESET_ID
ID do conjunto de regras para as regras no escopo da sessão adicionadas pela extensão.
Valor
"_session"
Métodos
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(): Promise<number>
Retorna o número de regras estáticas que uma extensão pode ativar antes de atingir o limite global de regras estáticas.
Retorna
-
Promise<number>
Chrome 91+
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
): Promise<number[]>
Retorna a lista de regras estáticas no Ruleset
especificado que estão desativadas no momento.
Parâmetros
- opções
Especifica o conjunto de regras a ser consultado.
Retorna
-
Promise<number[]>
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
): Promise<Rule[]>
Retorna o conjunto atual de regras dinâmicas para a extensão. Os autores da chamada podem filtrar a lista de regras buscadas especificando um filter
.
Parâmetros
- filtrar
GetRulesFilter opcional
Chrome 111 ou mais recenteUm objeto para filtrar a lista de regras buscadas.
Retorna
-
Promise<Rule[]>
Chrome 91+
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(): Promise<string[]>
Retorna os IDs do conjunto atual de conjuntos de regras estáticas ativados.
Retorna
-
Promise<string[]>
Chrome 91+
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
): Promise<RulesMatchedDetails>
Retorna todas as regras correspondentes para a extensão. Os autores da chamada podem filtrar a lista de regras correspondentes especificando um filter
. Esse método está disponível apenas para extensões com a permissão "declarativeNetRequestFeedback"
ou com a permissão "activeTab"
concedida para o tabId
especificado em filter
. Observação: as regras não associadas a um documento ativo que foram correspondidas há mais de cinco minutos não serão retornadas.
Parâmetros
- filtrar
MatchedRulesFilter opcional
Um objeto para filtrar a lista de regras correspondentes.
Retorna
-
Promise<RulesMatchedDetails>
Chrome 91+
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
): Promise<Rule[]>
Retorna o conjunto atual de regras no escopo da sessão para a extensão. Os autores da chamada podem filtrar a lista de regras buscadas especificando um filter
.
Parâmetros
- filtrar
GetRulesFilter opcional
Chrome 111 ou mais recenteUm objeto para filtrar a lista de regras buscadas.
Retorna
-
Promise<Rule[]>
Chrome 91+
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
): Promise<IsRegexSupportedResult>
Verifica se a expressão regular especificada será compatível como uma condição de regra regexFilter
.
Parâmetros
- regexOptions
A expressão regular a ser verificada.
Retorna
-
Promise<IsRegexSupportedResult>
Chrome 91+
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
): Promise<void>
Configura se a contagem de ações para guias deve ser mostrada como o texto do selo da ação de extensão e oferece uma maneira de incrementar essa contagem.
Parâmetros
- opções
Retorna
-
Promise<void>
Chrome 91+
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
): Promise<TestMatchOutcomeResult>
Verifica se alguma das regras declarativeNetRequest da extensão corresponderia a uma solicitação hipotética. Observação: disponível apenas para extensões descompactadas, já que essa opção é destinada apenas ao uso durante o desenvolvimento de extensões.
Parâmetros
- solicitação
Retorna
-
Promise<TestMatchOutcomeResult>
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
): Promise<void>
Modifica o conjunto atual de regras dinâmicas para a extensão. Primeiro, as regras com IDs listados em options.removeRuleIds
são removidas. Depois, as regras em options.addRules
são adicionadas. Observações:
- Essa atualização acontece como uma única operação atômica: todas as regras especificadas são adicionadas e removidas, ou um erro é retornado.
- Essas regras são mantidas em todas as sessões do navegador e atualizações de extensão.
- Não é possível remover as regras estáticas especificadas como parte do pacote de extensão usando essa função.
MAX_NUMBER_OF_DYNAMIC_RULES
é o número máximo de regras dinâmicas que uma extensão pode adicionar. O número de regras não seguras não pode excederMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
.
Parâmetros
- opçõesChrome 87 ou mais recente
Retorna
-
Promise<void>
Chrome 91+
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
): Promise<void>
Atualiza o conjunto de conjuntos de regras estáticas ativados para a extensão. Os conjuntos de regras com IDs listados em options.disableRulesetIds
são removidos primeiro, e depois os conjuntos listados em options.enableRulesetIds
são adicionados. O conjunto de conjuntos de regras estáticos ativados é mantido entre as sessões, mas não entre as atualizações de extensão. Ou seja, a chave de manifesto rule_resources
determina o conjunto de conjuntos de regras estáticos ativados em cada atualização de extensão.
Parâmetros
- opçõesChrome 87 ou mais recente
Retorna
-
Promise<void>
Chrome 91+
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
): Promise<void>
Modifica o conjunto atual de regras no escopo da sessão para a extensão. Primeiro, as regras com IDs listados em options.removeRuleIds
são removidas. Depois, as regras em options.addRules
são adicionadas. Observações:
- Essa atualização acontece como uma única operação atômica: todas as regras especificadas são adicionadas e removidas, ou um erro é retornado.
- Essas regras não são mantidas entre as sessões e são armazenadas em backup na memória.
MAX_NUMBER_OF_SESSION_RULES
é o número máximo de regras de sessão que uma extensão pode adicionar.
Parâmetros
- opções
Retorna
-
Promise<void>
Chrome 91+
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
): Promise<void>
Desativa e ativa regras estáticas individuais em um Ruleset
. As mudanças nas regras de um Ruleset
desativado vão entrar em vigor na próxima vez que ele for ativado.
Parâmetros
- opções
Retorna
-
Promise<void>
Eventos
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Disparado quando uma regra corresponde a uma solicitação. Disponível apenas para extensões descompactadas com a permissão "declarativeNetRequestFeedback"
, já que ela é destinada apenas a fins de depuração.
Parâmetros
- callback
função
O parâmetro
callback
tem esta aparência:(info: MatchedRuleInfoDebug) => void
- informações
-