Description
L'API chrome.declarativeNetRequest
permet de bloquer ou de modifier les requêtes réseau en spécifiant des règles déclaratives. Cela permet aux extensions de modifier les requêtes réseau sans les intercepter ni afficher leur contenu, et ainsi renforcer la confidentialité.
Autorisations
declarativeNetRequest
declarativeNetRequestWithHostAccess
"declarativeNetRequest
" et "declarativeNetRequestWithHostAccess
" autorisations
offrent les mêmes capacités. La différence entre les deux se situe au niveau
demandée ou accordée.
"declarativeNetRequest"
- Déclenche un avertissement d'autorisation au moment de l'installation, mais fournit un accès implicite à
Règles
allow
,allowAllRequests
etblock
. Utilisez cette méthode lorsque cela est possible pour éviter sans avoir besoin de demander un accès complet aux hôtes. "declarativeNetRequestFeedback"
- Active les fonctionnalités de débogage pour les extensions non empaquetées, en particulier
getMatchedRules()
etonRuleMatchedDebug
. "declarativeNetRequestWithHostAccess"
- Aucun avertissement d'autorisation ne s'affiche au moment de l'installation, mais vous devez demander l'hôte autorisations avant de pouvoir effectuer une action sur un hôte. Ce Cela convient lorsque vous souhaitez utiliser des règles de requête net déclaratives dans une qui dispose déjà d'autorisations d'hôte sans générer d'autres d'avertissements.
Disponibilité
Fichier manifeste
En plus des autorisations décrites précédemment, certains types d'ensembles de règles (les ensembles de règles statiques en particulier) nécessitent de déclarer la clé du fichier manifeste "declarative_net_request"
, qui doit être un dictionnaire comportant une seule clé appelée "rule_resources"
. Cette clé est un tableau contenant des dictionnaires de type Ruleset
, comme indiqué ci-dessous. Notez que le nom "Ruleset" (Ensemble de règles) n'apparaît pas dans le fichier JSON du fichier manifeste, car il s'agit simplement d'un tableau. Les ensembles de règles statiques sont expliqués plus loin dans ce document.
{
"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/*"
],
...
}
Règles et ensembles de règles
Pour utiliser cette API, spécifiez un ou plusieurs ensembles de règles. Un ensemble de règles contient un tableau de règles. Une seule règle permet d'effectuer l'une des opérations suivantes:
- Bloquez une requête réseau.
- Mettez à niveau le schéma (de HTTP à HTTPS).
- Évitez le blocage d'une requête en annulant les règles bloquées correspondantes.
- Redirigez une requête réseau.
- Modifiez les en-têtes de requête ou de réponse.
Il existe trois types d'ensembles de règles, gérés de manière légèrement différente.
- Dynamique
- Les extensions restent disponibles entre les sessions de navigateur et les mises à niveau des extensions. Elles sont gérées à l'aide de JavaScript lorsqu'une extension est utilisée.
- Session
- Effacement des données lorsque le navigateur s'arrête et qu'une nouvelle version de l'extension est installée. Les règles de session sont gérées à l'aide de JavaScript lorsqu'une extension est utilisée.
- Statique
- Empaquetées, installées et mises à jour lors de l'installation ou de la mise à niveau d'une extension Les règles statiques sont stockées dans des fichiers de règles au format JSON et listées dans le fichier manifeste.
Ensembles de règles dynamiques et de portée session
Les ensembles de règles dynamiques et de session sont gérés à l'aide de JavaScript lorsqu'une extension est utilisée.
- Les règles dynamiques sont conservées entre les sessions de navigateur et les mises à niveau des extensions.
- Les règles de session sont effacées lorsque le navigateur s'arrête et lorsqu'une nouvelle version de l'extension est installée.
Il n'existe qu'un seul type de jeu de règles. Une extension peut ajouter ou supprimer des règles de manière dynamique en appelant updateDynamicRules()
et updateSessionRules()
, à condition que le nombre maximal de règles ne soit pas dépassé. Pour en savoir plus sur les limites des règles, consultez la section Limites de règles. Vous trouverez un exemple dans la section Exemples de code.
Ensembles de règles statiques
Contrairement aux règles dynamiques et aux règles de session, les règles statiques sont empaquetées, installées et mises à jour lors de l'installation ou de la mise à niveau d'une extension. Ils sont stockés dans des fichiers de règles au format JSON, qui sont indiqués à l'extension à l'aide des clés "declarative_net_request"
et "rule_resources"
comme décrit ci-dessus, ainsi que d'un ou plusieurs dictionnaires Ruleset
. Un dictionnaire Ruleset
contient un chemin d'accès au fichier de règles et un ID pour l'ensemble de règles qu'il contient. Il indique également si l'ensemble de règles est activé ou désactivé. Les deux derniers sont importants lorsque vous activez ou désactivez un ensemble de règles de manière programmatique.
{
...
"declarative_net_request" : {
"rule_resources" : [{
"id": "ruleset_1",
"enabled": true,
"path": "rules_1.json"
},
...
]
}
...
}
Pour tester les fichiers de règles, chargez votre extension non empaquetée. Les erreurs et les avertissements concernant les règles statiques non valides ne s'affichent que pour les extensions non empaquetées. Les règles statiques non valides dans les extensions regroupées sont ignorées.
Examen accéléré
Les modifications apportées aux ensembles de règles statiques peuvent faire l'objet d'un examen accéléré. Voir examen accéléré des modifications éligibles.
Activer et désactiver des règles et des ensembles de règles statiques
Vous pouvez activer ou désactiver les règles statiques individuelles et les ensembles de règles statiques complets au moment de l'exécution.
L'ensemble des règles et ensembles de règles statiques activés est conservé d'une session de navigateur à l'autre. Elles ne sont pas conservées lors des mises à jour des extensions, ce qui signifie que seules les règles que vous avez choisi de conserver dans vos fichiers de règles sont disponibles après une mise à jour.
Pour des raisons de performances, le nombre de règles et d'ensembles de règles pouvant être activés simultanément est également limité. Appelez getAvailableStaticRuleCount()
pour vérifier le nombre de règles supplémentaires pouvant être activées. Pour en savoir plus sur les limites des règles, consultez la section Limites de règles.
Pour activer ou désactiver les règles statiques, appelez updateStaticRules()
. Cette méthode utilise un objet UpdateStaticRulesOptions
, qui contient des tableaux d'ID de règles à activer ou à désactiver. Les ID sont définis à l'aide de la clé "id"
du dictionnaire Ruleset
. Le nombre de règles statiques désactivées est limité à 5 000.
Pour activer ou désactiver les ensembles de règles statiques, appelez updateEnabledRulesets()
. Cette méthode utilise un objet UpdateRulesetOptions
, qui contient des tableaux d'ID d'ensembles de règles à activer ou à désactiver. Les ID sont définis à l'aide de la clé "id"
du dictionnaire Ruleset
.
Créer des règles
Quel que soit leur type, une règle commence par quatre champs, comme indiqué ci-dessous. Alors que les clés "id"
et "priority"
acceptent un nombre, les clés "action"
et "condition"
peuvent fournir plusieurs conditions de blocage et de redirection. La règle suivante bloque toutes les requêtes de script provenant de "foo.com"
vers n'importe quelle URL ayant "abc"
comme sous-chaîne.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
Mise en correspondance des URL
Declarative Net Request permet de faire correspondre les URL avec un format la syntaxe de correspondance ou les expressions régulières.
Syntaxe du filtre d'URL
La clé "condition"
d'une règle autorise une clé "urlFilter"
pour agir sur les URL d'un domaine spécifié. La création de modèles s'effectue à l'aide de jetons de correspondance de structure. Voici quelques exemples :
urlFilter |
Correspond à | Ne correspond pas |
---|---|---|
"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 |
Expressions régulières
Les conditions peuvent également utiliser des expressions régulières. Consultez le
"regexFilter"
. Pour en savoir plus sur les
les limites applicables à ces conditions, consultez
Les règles qui utilisent des expressions régulières.
Écrire des conditions d'URL correctes
Soyez prudent lorsque vous écrivez des règles pour qu'elles correspondent toujours à un domaine entier. Sinon, votre peut correspondre dans des situations inattendues. Par exemple, lorsque vous utilisez Syntaxe de correspondance de modèle:
google.com
correspond àhttps://example.com/?param=google.com
de façon incorrecte||google.com
correspond àhttps://google.company
de façon incorrectehttps://www.google.com
correspond àhttps://example.com/?param=https://www.google.com
de façon incorrecte
Envisagez d'utiliser:
||google.com/
, qui correspond à tous les chemins d'accès et à tous les sous-domaines.|https://www.google.com/
, qui correspond à tous les chemins d'accès et à aucun sous-domaine.
De même, utilisez les caractères ^
et /
pour ancrer une expression régulière. Pour
exemple, ^https:\/\/www\.google\.com\/
correspond à n'importe quel chemin sur
https://www.google.com.
Évaluation des règles
Les règles DNR sont appliquées par le navigateur à différentes étapes du cycle de vie des requêtes réseau.
Avant la demande
Avant l'envoi d'une requête, une extension peut la bloquer ou la rediriger (y compris en passant du protocole HTTP au protocole HTTPS) à l'aide d'une règle correspondante.
Pour chaque extension, le navigateur détermine une liste de règles correspondantes. Les règles avec une action modifyHeaders
ne sont pas incluses ici, car elles seront traitées ultérieurement. De plus, les règles avec une condition responseHeaders
seront prises en compte ultérieurement (lorsque des en-têtes de réponse sont disponibles) et ne sont pas incluses.
Ensuite, pour chaque extension, Chrome sélectionne au maximum un candidat par demande. Chrome trouve une règle correspondante en classant toutes les règles correspondantes par priorité. Les règles ayant la même priorité sont triées par action (allow
ou allowAllRequests
> block
> upgradeScheme
> redirect
).
Si le candidat est une règle allow
ou allowAllRequests
, ou si le frame dans lequel la requête est effectuée correspond précédemment à une règle allowAllRequests
de priorité supérieure ou égale de cette extension, la requête est "autorisée". et l'extension n'aura aucun effet sur la demande.
Si plusieurs extensions souhaitent bloquer ou rediriger cette demande, une seule action à effectuer est sélectionnée. Pour ce faire, Chrome trie les règles dans l'ordre block
> redirect
ou upgradeScheme
> allow
ou allowAllRequests
. Si deux règles sont du même type, Chrome en choisit une à partir de la dernière extension installée.
Avant l'envoi des en-têtes de requête
Avant que Chrome n'envoie les en-têtes de requêtes au serveur, ceux-ci sont mis à jour en fonction des règles modifyHeaders
correspondantes.
Dans une même extension, Chrome crée la liste des modifications à effectuer en recherchant toutes les règles modifyHeaders
correspondantes. Comme précédemment, seules les règles ayant une priorité plus élevée que les règles allow
ou allowAllRequests
correspondantes sont incluses.
Ces règles sont appliquées par Chrome dans un ordre de sorte que celles d'une extension installée plus récemment sont toujours évaluées avant celles d'une extension plus ancienne. De plus, les règles de priorité supérieure associées à une extension sont toujours appliquées avant celles de priorité inférieure pour une même extension. En particulier, même pour toutes les extensions:
- Si une règle est ajoutée à un en-tête, les règles de priorité inférieure ne peuvent s'ajouter qu'à cet en-tête. Les opérations de définition et de suppression ne sont pas autorisées.
- Si une règle définit un en-tête, seules les règles de priorité inférieure de la même extension peuvent ajouter à cet en-tête. Aucune autre modification n'est autorisée.
- Si une règle supprime un en-tête, les règles de priorité inférieure ne peuvent plus modifier l'en-tête.
Une fois la réponse reçue
Une fois les en-têtes de réponse reçus, Chrome évalue les règles avec une condition responseHeaders
.
Après avoir trié ces règles par action
et priority
, et exclu les règles rendues redondantes par une règle allow
ou allowAllRequests
correspondante (cela se produit de la même manière que dans la section "Avant la requête"), Chrome peut bloquer ou rediriger la requête pour le compte d'une extension.
Notez que si une requête a atteint cette étape, elle a déjà été envoyée au serveur et celui-ci a reçu des données telles que le corps de la requête. Une règle de blocage ou de redirection avec une condition d'en-têtes de réponse continue de s'exécuter, mais ne peut pas bloquer ni rediriger la requête.
Dans le cas d'une règle de blocage, cela est géré par la page à l'origine de la demande qui a reçu une réponse bloquée, et Chrome y met fin prématurément. Dans le cas d'une règle de redirection, Chrome envoie une nouvelle requête à l'URL de redirection. Assurez-vous que ces comportements répondent aux attentes en termes de confidentialité pour votre extension.
Si la requête n'est pas bloquée ni redirigée, Chrome applique les règles modifyHeaders
. L'application de modifications aux en-têtes de réponse fonctionne de la même manière que décrit dans la section "Avant l'envoi des en-têtes de requête". L'application de modifications aux en-têtes de requête n'a aucun effet, car la requête a déjà été effectuée.
Règles de sécurité
Les règles sûres sont définies comme des règles ayant l'action block
, allow
,
allowAllRequests
ou upgradeScheme
. Ces règles sont soumises à une
un quota de règles dynamiques.
Limites de règles
Le chargement et l'évaluation des règles dans le navigateur ont une incidence sur les performances, Des limites s'appliquent donc lors de l'utilisation de l'API. Les limites dépendent du type que vous utilisez.
Règles statiques
Les règles statiques sont celles spécifiées dans les fichiers de règles déclarés dans le fichier manifeste. Une extension peut spécifier jusqu'à 100 ensembles de règles statiques dans la clé du fichier manifeste "rule_resources"
, mais vous ne pouvez activer que 50 de ces ensembles à la fois. Cette dernière méthode est appelée MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
. Au total, ces ensembles de règles sont garantis pour au moins 30 000 règles. C'est ce qu'on appelle le GUARANTEED_MINIMUM_STATIC_RULES
.
Le nombre de règles disponibles par la suite dépend du nombre de règles activées par toutes les extensions installées dans le navigateur de l'utilisateur. Vous pouvez trouver ce numéro au moment de l'exécution en appelant getAvailableStaticRuleCount()
. Vous trouverez un exemple dans la section Exemples de code.
Règles de session
Une extension peut comporter jusqu'à 5 000 règles de session. Celui-ci est exposé
MAX_NUMBER_OF_SESSION_RULES
Avant Chrome 120, le nombre de règles combinées dynamiques et de session était limité à 5 000.
Les règles dynamiques
Une extension peut comporter au moins 5 000 règles dynamiques. Celui-ci est exposé
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
À partir de Chrome 121, le nombre maximal de règles disponibles pour les règles dynamiques sécurisées est supérieur à 30 000.
exposé en tant que MAX_NUMBER_OF_DYNAMIC_RULES
. N'importe quelle valeur
Les règles non sécurisées ajoutées dans la limite de 5 000 seront également comptabilisées dans cette limite.
Avant Chrome 120, le nombre de règles combinées dynamiques et de sessions était limité à 5 000.
Règles utilisant des expressions régulières
Tous les types de règles peuvent utiliser des expressions régulières. Toutefois, le nombre total de règles d'expressions régulières de chaque type ne peut pas dépasser 1 000. Il s'agit de la règle MAX_NUMBER_OF_REGEX_RULES.
De plus, la taille de chaque règle doit être inférieure à 2 Ko une fois compilée. Cela correspond à peu près à la complexité de la règle. Si vous essayez de charger une règle qui dépasse cette limite, un avertissement semblable au suivant s'affiche, et la règle est ignorée.
rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.
Interactions avec les service workers
Une instruction déclarativeNetRequest ne s'applique qu'aux requêtes qui atteignent la pile réseau. Cela inclut les réponses du cache HTTP, mais pas celles qui passent par le gestionnaire onfetch
d'un service worker. déclarativeNetRequest n'affecte pas les réponses générées par le service worker ou récupérées à partir de CacheStorage
, mais il affectera les appels à fetch()
effectués dans un service worker.
Ressources accessibles sur le Web
Une règle déclarativeNetRequest ne peut pas rediriger d'une requête de ressource publique vers une ressource inaccessible sur le Web. Cela déclenche une erreur. Cela est vrai même si la ressource accessible sur le Web spécifiée appartient à l'extension de redirection. Pour déclarer des ressources pour declarativeNetRequest, utilisez le tableau "web_accessible_resources"
du fichier manifeste.
Modification de l'en-tête
L'opération d'ajout n'est acceptée que pour les en-têtes suivants: 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
.
Exemples
Exemples de code
Mettre à jour les règles dynamiques
L'exemple suivant montre comment appeler updateDynamicRules()
. La procédure pour updateSessionRules()
est la même.
// 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
});
Mettre à jour des ensembles de règles statiques
L'exemple suivant montre comment activer et désactiver des ensembles de règles tout en tenant compte du nombre d'ensembles de règles statiques disponibles et du nombre maximal d'ensembles de règles statiques activés. Vous devez effectuer cette opération lorsque le nombre de règles statiques dont vous avez besoin dépasse le nombre autorisé. Pour que cela fonctionne, certains de vos ensembles de règles doivent être installés sans en avoir désactivé d'autres (en définissant "Enabled"
sur false
dans le fichier manifeste).
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);
}
Exemples de règles
Les exemples suivants montrent comment Chrome hiérarchise les règles dans une extension. Lorsque vous les examinez, vous pouvez ouvrir les règles de hiérarchisation dans une fenêtre distincte.
La "priorité" touche
Ces exemples nécessitent une autorisation d'hôte pour *://*.example.com/*
.
Pour déterminer la priorité d'une URL spécifique, examinez les clés "priority"
(définies par le développeur), "action"
et "urlFilter"
. Ces exemples font référence à l'exemple de fichier de règles présenté ci-dessous.
- Accès à https://google.com
- Deux règles s'appliquent à cette URL: celles associées aux ID 1 et 4. La règle portant l'ID 1 s'applique, car
"block"
actions ont une priorité plus élevée que"redirect"
actions. Les autres règles ne s'appliquent pas, car elles concernent des URL plus longues. - Accès à https://google.com/1234
- En raison de la longueur de l'URL, la règle associée à l'ID 2 correspond désormais à celle associée aux ID 1 et 4. La règle portant l'ID 2 s'applique, car
"allow"
a une priorité supérieure à"block"
et"redirect"
. - Accès à https://google.com/12345
- Les quatre règles correspondent à cette URL. La règle portant l'ID 3 s'applique, car sa priorité définie par le développeur est la plus élevée du groupe.
[
{
"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"] }
},
]
Redirections
L'exemple ci-dessous nécessite une autorisation d'hôte pour *://*.example.com/*
.
L'exemple suivant montre comment rediriger une requête d'example.com vers une page de l'extension elle-même. Le chemin d'accès de l'extension /a.jpg
pointe vers chrome-extension://EXTENSION_ID/a.jpg
, où EXTENSION_ID
est l'ID de votre extension. Pour que cela fonctionne, le fichier manifeste doit déclarer /a.jpg
comme ressource accessible sur le Web.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
La commande suivante utilise la clé "transform"
pour rediriger vers un sous-domaine de example.com. Il utilise une ancre de nom de domaine ("||") pour intercepter les requêtes avec n'importe quel schéma provenant d'example.com. La clé "scheme"
dans "transform"
indique que les redirections vers le sous-domaine utiliseront toujours "https".
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"transform": { "scheme": "https", "host": "new.example.com" }
}
},
"condition": {
"urlFilter": "||example.com",
"resourceTypes": ["main_frame"]
}
}
L'exemple suivant utilise des expressions régulières pour rediriger de https://www.abc.xyz.com/path
vers https://abc.xyz.com/path
. Dans la clé "regexFilter"
, notez comment les points sont échappés et que le groupe de capture sélectionne "abc". ou "def". La clé "regexSubstitution"
spécifie la première correspondance renvoyée par l'expression régulière à l'aide de "\1". Dans ce cas,
« abc » est capturé à partir de l'URL de redirection et placé dans la substitution.
{
"id": 1,
"priority": 1,
"action": {
"type": "redirect",
"redirect": {
"regexSubstitution": "https://\\1.xyz.com/"
}
},
"condition": {
"regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
"resourceTypes": [
"main_frame"
]
}
}
En-têtes
L'exemple suivant supprime tous les cookies d'un frame principal et de tous les sous-frames.
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [{ "header": "cookie", "operation": "remove" }]
},
"condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}
Types
DomainType
Indique si la requête est propriétaire ou tierce de la trame d'où elle provient. Une requête est considérée comme propriétaire si elle possède le même domaine (eTLD+1) que le frame d'où provient la requête.
Énumération
"firstParty"
La requête réseau est liée à la trame d'où elle provient.
"thirdParty"
La requête réseau est un tiers par rapport à la trame d'où elle provient.
ExtensionActionOptions
Propriétés
-
displayActionCountAsBadgeText
Booléen facultatif
Permet d'afficher ou non automatiquement le nombre d'actions sur une page en tant que texte du badge de l'extension. Cette préférence est conservée d'une session à l'autre.
-
tabUpdate
TabActionCountUpdate facultatif
Chrome 89 et versions ultérieuresDétails sur la façon dont le nombre d'actions de l'onglet doit être ajusté.
GetDisabledRuleIdsOptions
Propriétés
-
rulesetId
chaîne
ID correspondant à un élément
Ruleset
statique.
GetRulesFilter
Propriétés
-
ruleIds
number[] facultatif
Si une valeur est spécifiée, seules les règles avec des ID correspondants sont incluses.
HeaderInfo
Propriétés
-
excludedValues
string[] facultatif
Si elle est spécifiée, cette condition n'est pas remplie si l'en-tête existe, mais que sa valeur contient au moins un élément de cette liste. Cette méthode utilise la même syntaxe de modèle de correspondance que
values
. -
en-tête
chaîne
Nom de l'en-tête. Cette condition ne correspond au nom que si
values
etexcludedValues
ne sont pas spécifiés. -
valeurs
string[] facultatif
Si elle est spécifiée, cette condition correspond si la valeur de l'en-tête correspond à au moins un format de cette liste. Cette option est compatible avec la mise en correspondance des valeurs d'en-tête non sensibles à la casse, ainsi que les constructions suivantes:
'*' : correspond à n'importe quel nombre de caractères.
'?' : correspond à zéro ou un caractère.
"*" et "?" peut être échappé à l'aide d'une barre oblique inverse (par exemple, "\*" et "\?"
HeaderOperation
Ceci décrit les opérations possibles pour une opération "modifyHeaders" d'une règle.
Énumération
"append"
Ajoute une nouvelle entrée pour l'en-tête spécifié. Cette opération n'est pas possible pour les en-têtes de requêtes.
"set"
Définit une nouvelle valeur pour l'en-tête spécifié et supprime tous les en-têtes existants portant le même nom.
"remove"
Supprime toutes les entrées pour l'en-tête spécifié.
IsRegexSupportedResult
Propriétés
-
isSupported
booléen
-
reason
UnsupportedRegexReason facultatif
Indique la raison pour laquelle l'expression régulière n'est pas compatible. Fourni uniquement si la valeur de
isSupported
est "false".
MatchedRule
Propriétés
-
ruleId
Nombre
Identifiant d'une règle de correspondance.
-
rulesetId
chaîne
ID de l'élément
Ruleset
auquel cette règle appartient. Pour une règle provenant de l'ensemble de règles dynamiques, cette valeur sera égale àDYNAMIC_RULESET_ID
.
MatchedRuleInfo
Propriétés
-
règle
-
tabId
Nombre
ID de tabulation de l'onglet d'où provient la requête, si l'onglet est toujours actif. Sinon, -1.
-
timeStamp
Nombre
Heure à laquelle la règle a été mise en correspondance. Les codes temporels correspondent à la convention JavaScript pour les heures, c'est-à-dire le nombre de millisecondes écoulées depuis l'epoch.
MatchedRuleInfoDebug
Propriétés
-
request
Détails concernant la requête pour laquelle la règle a été mise en correspondance.
-
règle
MatchedRulesFilter
Propriétés
-
minTimeStamp
numéro facultatif
Si spécifié, établit une correspondance uniquement avec les règles postérieures à l'horodatage donné.
-
tabId
numéro facultatif
Si spécifié, correspond uniquement aux règles de l'onglet donné. Correspond aux règles qui ne sont associées à aucun onglet actif si la valeur est définie sur -1.
ModifyHeaderInfo
Propriétés
-
en-tête
chaîne
Nom de l'en-tête à modifier.
-
opération
Opération à effectuer sur un en-tête.
-
valeur
chaîne facultatif
Nouvelle valeur de l'en-tête. Doit être spécifié pour les opérations
append
etset
.
QueryKeyValue
Propriétés
-
clé
chaîne
-
replaceOnly
Booléen facultatif
Chrome 94 ou version ultérieureSi la valeur est "true", la clé de requête n'est remplacée que si elle est déjà présente. Sinon, la clé est également ajoutée si elle est manquante. Valeur par défaut : "false".
-
valeur
chaîne
QueryTransform
Propriétés
-
addOrReplaceParams
QueryKeyValue[] facultatif
Liste des paires clé/valeur de requête à ajouter ou à remplacer.
-
removeParams
string[] facultatif
Liste des clés de requête à supprimer.
Redirect
Propriétés
-
extensionPath
chaîne facultatif
Chemin d'accès relatif au répertoire de l'extension. Doit commencer par "/".
-
regexSubstitution
chaîne facultatif
Modèle de substitution pour les règles qui spécifient un
regexFilter
. La première correspondance deregexFilter
dans l'URL sera remplacée par ce format. DansregexSubstitution
, les chiffres échappés par une barre oblique inverse (\1 à \9) peuvent être utilisés pour insérer les groupes de capture correspondants. \0 fait référence à l'intégralité du texte correspondant. -
transform
URLTransform facultatif
Transformations d'URL à effectuer.
-
url
chaîne facultatif
URL de redirection. Les redirections vers des URL JavaScript ne sont pas autorisées.
RegexOptions
Propriétés
-
isCaseSensitive
Booléen facultatif
Indique si la valeur
regex
spécifiée est sensible à la casse. La valeur par défaut est "true". -
regex
chaîne
Expresson habituelle à vérifier.
-
requireCapturing
Booléen facultatif
Indique si le
regex
spécifié doit être capturé ou non. La capture n'est requise que pour les règles de redirection qui spécifient une actionregexSubstition
. La valeur par défaut est "false" (inactif).
RequestDetails
Propriétés
-
documentId
chaîne facultatif
Chrome 106 et versions ultérieuresIdentifiant unique du document du frame, si cette demande concerne un frame.
-
documentLifecycle
DocumentLifecycle facultatif
Chrome 106 et versions ultérieuresCycle de vie du document du frame, si cette requête concerne un frame.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans le frame principal. une valeur positive indique l'identifiant d'un sous-cadre dans lequel la demande se produit. Si le document d'un (sous-)cadre est chargé (
type
estmain_frame
ousub_frame
),frameId
indique l'ID de ce cadre, et non celui du cadre extérieur. Les ID de frame sont uniques dans un onglet. -
frameType
FrameType facultatif
Chrome 106 et versions ultérieuresType de trame, si cette requête concerne une trame.
-
demandeur
chaîne facultatif
Origine où la requête a été lancée. Cela ne change pas par le biais des redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisé.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
chaîne facultatif
Chrome 106 et versions ultérieuresIdentifiant unique du document parent du frame, si cette demande concerne un frame et qu'il a un parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame ayant envoyé la requête. Définissez ce paramètre sur -1 si aucun cadre parent n'existe.
-
requestId
chaîne
Identifiant de la requête. Les identifiants de requête sont uniques au sein d'une session de navigateur.
-
tabId
Nombre
ID de l'onglet dans lequel la requête a lieu. Définissez ce paramètre sur -1 si la demande n'est pas associée à un onglet.
-
type
Type de ressource de la requête.
-
url
chaîne
URL de la requête.
RequestMethod
Ceci décrit la méthode de requête HTTP d'une requête réseau.
Énumération
"connecter"
"supprimer"
"get"
"head"
"options"
"patch"
"post"
"put"
"autre"
ResourceType
Ceci décrit le type de ressource de la requête réseau.
Énumération
"main_frame"
"sub_frame"
"stylesheet"
"script"
"image"
"font"
"objet"
"xmlhttprequest"
"ping"
"csp_report"
"media"
"websocket"
"transport Web"
"webbundle"
"autre"
Rule
Propriétés
-
action
L'action à effectuer si cette règle correspond.
-
état
Condition de déclenchement de la règle.
-
id
Nombre
Identifiant permettant d'identifier une règle de manière unique. Obligatoire et doit être supérieur ou égal à 1.
-
priorité
numéro facultatif
Priorité des règles. La valeur par défaut est 1. Si spécifié, doit être >= 1.
RuleAction
Propriétés
-
redirection
Redirection facultatif
Décrit comment la redirection doit être effectuée. Uniquement valide pour les règles de redirection.
-
requestHeaders
ModifyHeaderInfo[] facultatif
Chrome 86 ou version ultérieureEn-têtes de requête à modifier. Valide uniquement si RuleActionType est défini sur "modifyHeaders".
-
responseHeaders
ModifyHeaderInfo[] facultatif
Chrome 86 ou version ultérieureEn-têtes de réponse à modifier pour la requête. Valide uniquement si RuleActionType est défini sur "modifyHeaders".
-
type
Type d'action à effectuer.
RuleActionType
Décrit le type d'action à effectuer si une règle RuleCondition donnée correspond.
Énumération
"block"
Bloque la requête réseau.
"redirect"
Redirige la requête réseau.
"allow"
Autorisez la requête réseau. La requête ne sera pas interceptée si une règle d'autorisation lui correspond.
"upgradeScheme"
Mettez à jour le schéma de l'URL de la requête réseau en HTTPS si la requête est HTTP ou FTP.
"modifyHeaders"
Modifiez les en-têtes de requête/réponse de la requête réseau.
"allowAllRequests"
Autoriser toutes les requêtes dans une hiérarchie de frames, y compris la requête de frame elle-même.
RuleCondition
Propriétés
-
domainType
DomainType facultatif
Indique si la requête réseau est d'origine propriétaire ou tierce dans le domaine d'où elle provient. S'il est omis, toutes les requêtes sont acceptées.
-
domaines
string[] facultatif
<ph type="x-smartling-placeholder"></ph> Obsolète depuis Chrome 101Utilisez
initiatorDomains
à la placeLa règle ne mettra en correspondance que les requêtes réseau provenant de la liste
domains
. -
excludedDomains
string[] facultatif
<ph type="x-smartling-placeholder"></ph> Obsolète depuis Chrome 101Utilisez
excludedInitiatorDomains
à la placeLa règle ne correspondra pas aux requêtes réseau provenant de la liste des
excludedDomains
. -
excludedInitiatorDomains
string[] facultatif
Chrome 101 et versions ultérieuresLa règle ne correspondra pas aux requêtes réseau provenant de la liste des
excludedInitiatorDomains
. Si la liste est vide ou omise, aucun domaine n'est exclu. Cette valeur est prioritaire surinitiatorDomains
.Remarques :
- Sous-domaines, tels que "a.example.com" sont également autorisés.
- Les entrées ne doivent comporter que des caractères ASCII.
- Utilisez l'encodage Punycode pour les domaines internationalisés.
- Cette valeur correspond à l'initiateur de la requête et non à l'URL de la requête.
- Les sous-domaines des domaines répertoriés sont également exclus.
-
excludedRequestDomains
string[] facultatif
Chrome 101 et versions ultérieuresLa règle ne correspond pas aux requêtes réseau lorsque les domaines correspondent à l'un des domaines figurant dans la liste
excludedRequestDomains
. Si la liste est vide ou omise, aucun domaine n'est exclu. Cette valeur est prioritaire surrequestDomains
.Remarques :
- Sous-domaines, tels que "a.example.com" sont également autorisés.
- Les entrées ne doivent comporter que des caractères ASCII.
- Utilisez l'encodage Punycode pour les domaines internationalisés.
- Les sous-domaines des domaines répertoriés sont également exclus.
-
excludedRequestMethods
RequestMethod[] facultatif
Chrome 91 ou version ultérieureListe des méthodes de requête auxquelles la règle ne correspond pas. Vous ne devez spécifier qu'un seul des champs
requestMethods
etexcludedRequestMethods
. Si aucune de ces deux méthodes n'est spécifiée, toutes les méthodes de requête sont mises en correspondance. -
excludedResourceTypes
ResourceType[] facultatif
Liste des types de ressources auxquels la règle ne correspond pas. Vous ne devez spécifier qu'un seul des champs
resourceTypes
etexcludedResourceTypes
. Si aucun de ces éléments n'est spécifié, tous les types de ressources sauf "main_frame" sont bloqués. -
excludedResponseHeaders
HeaderInfo[] facultatif
Chrome 128 ou version ultérieureLa règle ne correspond pas si la requête correspond à une condition d'en-tête de réponse de cette liste (si spécifiée). Si
excludedResponseHeaders
etresponseHeaders
sont tous les deux spécifiés, la propriétéexcludedResponseHeaders
est prioritaire. -
excludedTabIds
number[] facultatif
Chrome 92 ou version ultérieureListe des
tabs.Tab.id
auxquels la règle ne doit pas correspondre. L'IDtabs.TAB_ID_NONE
exclut les requêtes qui ne proviennent pas d'un onglet. Compatible uniquement avec les règles de portée session. -
initiatorDomains
string[] facultatif
Chrome 101 et versions ultérieuresLa règle ne mettra en correspondance que les requêtes réseau provenant de la liste
initiatorDomains
. Si la liste est omise, la règle est appliquée aux requêtes provenant de tous les domaines. Une liste vide n'est pas autorisée.Remarques :
- Sous-domaines, tels que "a.example.com" sont également autorisés.
- Les entrées ne doivent comporter que des caractères ASCII.
- Utilisez l'encodage Punycode pour les domaines internationalisés.
- Cette valeur correspond à l'initiateur de la requête et non à l'URL de la requête.
- Les sous-domaines des domaines répertoriés sont également mis en correspondance.
-
isUrlFilterCaseSensitive
Booléen facultatif
Indique si
urlFilter
ouregexFilter
(selon la valeur spécifiée) est sensible à la casse. La valeur par défaut est "false". -
regexFilter
chaîne facultatif
Expression régulière à mettre en correspondance avec l'URL de la requête réseau. Cela suit la syntaxe RE2.
Remarque: Vous ne pouvez spécifier qu'une seule propriété
urlFilter
ouregexFilter
.Remarque:
regexFilter
ne doit être composé que de caractères ASCII. Cette valeur est mise en correspondance avec une URL dans laquelle l'hôte est encodé au format Punycode (dans le cas de domaines internationalisés) et tout autre caractère non ASCII est encodé au format utf-8. -
requestDomains
string[] facultatif
Chrome 101 et versions ultérieuresLa règle ne met en correspondance les requêtes réseau que lorsque le domaine correspond à l'une des requêtes de la liste
requestDomains
. Si la liste est omise, la règle est appliquée aux requêtes provenant de tous les domaines. Une liste vide n'est pas autorisée.Remarques :
- Sous-domaines, tels que "a.example.com" sont également autorisés.
- Les entrées ne doivent comporter que des caractères ASCII.
- Utilisez l'encodage Punycode pour les domaines internationalisés.
- Les sous-domaines des domaines répertoriés sont également mis en correspondance.
-
requestMethods
RequestMethod[] facultatif
Chrome 91 ou version ultérieureListe des méthodes de requête HTTP auxquelles la règle peut correspondre. Une liste vide n'est pas autorisée.
Remarque: Si vous spécifiez une condition de règle
requestMethods
, les requêtes qui ne sont pas HTTP(S) seront également exclues, contrairement àexcludedRequestMethods
. -
resourceTypes
ResourceType[] facultatif
Liste des types de ressources auxquels la règle peut correspondre. Une liste vide n'est pas autorisée.
Remarque: Cela doit être spécifié pour les règles
allowAllRequests
et ne peut inclure que les types de ressourcessub_frame
etmain_frame
. -
responseHeaders
HeaderInfo[] facultatif
Chrome 128 ou version ultérieureLa règle correspond si la requête correspond à une condition d'en-tête de réponse de cette liste (si spécifiée).
-
tabIds
number[] facultatif
Chrome 92 ou version ultérieureListe des
tabs.Tab.id
auxquels la règle doit correspondre. L'IDtabs.TAB_ID_NONE
correspond aux requêtes qui ne proviennent pas d'un onglet. Une liste vide n'est pas autorisée. Compatible uniquement avec les règles de portée session. -
urlFilter
chaîne facultatif
Format mis en correspondance avec l'URL de requête réseau. Constructions compatibles:
'*' : Caractère générique: correspond à n'importe quel nombre de caractères.
'|' : ancrage gauche/droite: si utilisé à l'une ou l'autre extrémité du format, spécifie le début/la fin de l'URL, respectivement.
'|| : ancre du nom de domaine: si elle est utilisée au début du format, indique le début d'un (sous-)domaine de l'URL.
^ : caractère de séparation: renvoie tout élément sauf une lettre, un chiffre ou l'un des éléments suivants:
_
,-
,.
ou%
. Elle correspond également à la fin de l'URL.Par conséquent,
urlFilter
se compose des parties suivantes: (ancre gauche/ancre de nom de domaine facultative) + motif + (ancre droite facultative).Si cette valeur est omise, toutes les URL sont prises en compte. Une chaîne vide n'est pas autorisée.
Un format commençant par
||*
n'est pas autorisé. Utilisez*
à la place.Remarque: Vous ne pouvez spécifier qu'une seule propriété
urlFilter
ouregexFilter
.Remarque:
urlFilter
ne doit être composé que de caractères ASCII. Cette valeur est mise en correspondance avec une URL dans laquelle l'hôte est encodé au format Punycode (dans le cas de domaines internationalisés) et tout autre caractère non ASCII est encodé au format utf-8. Par exemple, lorsque l'URL de la requête est http://abc.trap?q= \n,urlFilter
est mis en correspondance avec l'URL http://abc.xn--p1ai/?q=%D1%84.
Ruleset
Propriétés
-
activé
booléen
Indique si l'ensemble de règles est activé par défaut.
-
id
chaîne
Chaîne non vide identifiant de manière unique l'ensemble de règles. ID commençant par "_" sont réservés à un usage interne.
-
chemin d'accès
chaîne
Chemin d'accès à l'ensemble de règles JSON relatif au répertoire de l'extension.
RulesMatchedDetails
Propriétés
-
rulesMatchedInfo
Règles correspondant au filtre donné.
TabActionCountUpdate
Propriétés
-
increment
Nombre
Montant d'incrémentation du nombre d'actions de l'onglet. Les valeurs négatives diminuent le nombre.
-
tabId
Nombre
Onglet pour lequel mettre à jour le nombre d'actions.
TestMatchOutcomeResult
Propriétés
-
matchedRules
Les règles (le cas échéant) correspondant à la requête fictive.
TestMatchRequestDetails
Propriétés
-
demandeur
chaîne facultatif
L'URL de l'initiateur de la requête fictive (le cas échéant).
-
method
RequestMethod facultatif
Méthode HTTP standard de la requête fictive. La valeur par défaut est "get" pour les requêtes HTTP. Il est ignoré pour les requêtes autres que HTTP.
-
responseHeaders
objet facultatif
En attenteEn-têtes fournis par une réponse hypothétique si la requête n'est pas bloquée ni redirigée avant son envoi. Représenté par un objet mappant un nom d'en-tête à une liste de valeurs de chaîne. Si ce champ n'est pas spécifié, la réponse hypothétique renvoie des en-têtes de réponse vides, qui peuvent correspondre aux règles qui correspondent à la non-existence d'en-têtes. Exemple :
{"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}
-
tabId
numéro facultatif
ID de l'onglet dans lequel la requête fictive a lieu. Il ne doit pas nécessairement correspondre à un ID d'onglet réel. La valeur par défaut est -1, ce qui signifie que la requête n'est pas associée à un onglet.
-
type
Type de ressource de la requête hypothétique.
-
url
chaîne
URL de la requête fictive.
UnsupportedRegexReason
Décrit la raison pour laquelle une expression régulière donnée n'est pas acceptée.
Énumération
"syntaxError"
La syntaxe de l'expression régulière est incorrecte ou elle utilise des fonctionnalités qui ne sont pas disponibles dans la syntaxe RE2.
"memoryLimitExceeded"
L'expression régulière dépasse la limite de mémoire.
UpdateRuleOptions
Propriétés
-
addRules
Règle[] facultatif
Règles à ajouter.
-
removeRuleIds
number[] facultatif
Identifiants des règles à supprimer. Tous les ID non valides seront ignorés.
UpdateRulesetOptions
Propriétés
UpdateStaticRulesOptions
Propriétés
URLTransform
Propriétés
-
fragment
chaîne facultatif
Nouveau fragment de la requête. Doit être vide, auquel cas le fragment existant est effacé. ou doit commencer par "#".
-
hôte
chaîne facultatif
Nouvel hôte pour la requête.
-
mot de passe
chaîne facultatif
Nouveau mot de passe pour la requête.
-
chemin d'accès
chaîne facultatif
Nouveau chemin d'accès à la requête. S'il est vide, le chemin existant est effacé.
-
port
chaîne facultatif
Nouveau port de la requête. Si ce champ est vide, le port existant est effacé.
-
requête
chaîne facultatif
Nouvelle requête de la requête. Elle doit être vide, auquel cas la requête existante est effacée. ou doit commencer par un point d'interrogation.
-
queryTransform
QueryTransform facultatif
Ajoutez, supprimez ou remplacez des paires clé-valeur de requête.
-
schéma
chaîne facultatif
Nouveau schéma de la requête. Les valeurs autorisées sont "http", "https" et "ftp". et "chrome-extension".
-
nom d'utilisateur
chaîne facultatif
Nouveau nom d'utilisateur pour la requête.
Propriétés
DYNAMIC_RULESET_ID
ID de l'ensemble de règles pour les règles dynamiques ajoutées par l'extension.
Valeur
"_dynamique"
GETMATCHEDRULES_QUOTA_INTERVAL
Intervalle de temps au cours duquel les appels MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
peuvent être effectués, spécifié en minutes. Les appels supplémentaires échouent immédiatement et définissent runtime.lastError
. Remarque: Les appels getMatchedRules
associés à un geste de l'utilisateur sont exemptés du quota.
Valeur
10
GUARANTEED_MINIMUM_STATIC_RULES
Nombre minimal de règles statiques garanties pour une extension dans l'ensemble de ses ensembles de règles statiques activés. Au-delà de cette limite, toutes les règles sont comptabilisées dans la limite globale de règles statiques.
Valeur
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
Nombre de fois où getMatchedRules
peut être appelé dans un délai de GETMATCHEDRULES_QUOTA_INTERVAL
.
Valeur
20
MAX_NUMBER_OF_DYNAMIC_RULES
Nombre maximal de règles dynamiques qu'une extension peut ajouter.
Valeur
30000
MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
Nombre maximal d'Rulesets
statiques qu'une extension peut activer simultanément.
Valeur
50
MAX_NUMBER_OF_REGEX_RULES
Nombre maximal de règles d'expression régulière qu'une extension peut ajouter. Cette limite est évaluée séparément pour l'ensemble de règles dynamiques et pour celles spécifiées dans le fichier de ressources de la règle.
Valeur
1000
MAX_NUMBER_OF_SESSION_RULES
Nombre maximal de règles de portée session qu'une extension peut ajouter.
Valeur
5000
MAX_NUMBER_OF_STATIC_RULESETS
Nombre maximal d'Rulesets
statiques qu'une extension peut spécifier dans la clé du fichier manifeste "rule_resources"
.
Valeur
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Le nombre maximal d'éléments "dangereux" et les règles dynamiques qu'une extension peut ajouter.
Valeur
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Le nombre maximal d'éléments "dangereux" et les règles de portée session qu'une extension peut ajouter.
Valeur
5000
SESSION_RULESET_ID
ID de l'ensemble de règles pour les règles de portée session ajoutées par l'extension.
Valeur
"_session"
Méthodes
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
)
Renvoie le nombre de règles statiques qu'une extension peut activer avant que la limite globale de règles statiques soit atteinte.
Paramètres
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(count: number) => void
-
nombre
Nombre
-
Renvoie
-
Promise<number>
Chrome 91 ou version ultérieureLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
)
Renvoie la liste des règles statiques actuellement désactivées dans l'objet Ruleset
donné.
Paramètres
-
options
Spécifie l'ensemble de règles à interroger.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(disabledRuleIds: number[]) => void
-
disabledRuleIds
numéro[]
-
Renvoie
-
Promesse<numéro[]>
Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
)
Renvoie l'ensemble actuel de règles dynamiques pour l'extension. Les appelants peuvent éventuellement filtrer la liste des règles récupérées en spécifiant un filter
.
Paramètres
-
filtre
GetRulesFilter facultatif
Chrome 111 ou version ultérieureObjet permettant de filtrer la liste des règles récupérées.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(rules: Rule[]) => void
-
règles
Règle[]
-
Renvoie
-
Promise<Rule[]>
Chrome 91 ou version ultérieureLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
)
Renvoie les identifiants pour l'ensemble actuel d'ensembles de règles statiques activés.
Paramètres
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(rulesetIds: string[]) => void
-
rulesetIds
chaîne[]
-
Renvoie
-
Promise<string[]>
Chrome 91 ou version ultérieureLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
)
Affiche toutes les règles correspondant à l'extension. Les appelants peuvent éventuellement filtrer la liste des règles correspondantes en spécifiant un filter
. Cette méthode n'est disponible que pour les extensions disposant de l'autorisation "declarativeNetRequestFeedback"
ou de l'autorisation "activeTab"
accordée pour l'élément tabId
spécifié dans filter
. Remarque: Les règles qui ne sont pas associées à un document actif pour lequel les correspondances ont été trouvées il y a plus de cinq minutes ne sont pas renvoyées.
Paramètres
-
filtre
MatchedRulesFilter facultatif
Objet permettant de filtrer la liste des règles correspondantes.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(details: RulesMatchedDetails) => void
-
détails
-
Renvoie
-
Promise<RulesMatchedDetails>
Chrome 91 ou version ultérieureLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
)
Affiche l'ensemble actuel de règles de portée session pour l'extension. Les appelants peuvent éventuellement filtrer la liste des règles récupérées en spécifiant un filter
.
Paramètres
-
filtre
GetRulesFilter facultatif
Chrome 111 ou version ultérieureObjet permettant de filtrer la liste des règles récupérées.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(rules: Rule[]) => void
-
règles
Règle[]
-
Renvoie
-
Promise<Rule[]>
Chrome 91 ou version ultérieureLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
)
Vérifie si l'expression régulière donnée peut être utilisée en tant que condition de règle regexFilter
.
Paramètres
-
regexOptions
Expression régulière à vérifier.
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(result: IsRegexSupportedResult) => void
-
résultat
-
Renvoie
-
Promise<IsRegexSupportedResult>
Chrome 91 ou version ultérieureLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
)
Configure si le nombre d'actions pour les onglets doit être affiché en tant que texte de badge de l'action de l'extension et permet d'incrémenter ce nombre d'actions.
Paramètres
-
options
-
rappel
function facultatif
Chrome 89 et versions ultérieuresLe paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 91 ou version ultérieureLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
)
Vérifie si l'une des règles déclarativeNetRequest de l'extension correspond à une requête hypothétique. Remarque: Cette option est uniquement disponible pour les extensions non empaquetées, car elle est exclusivement destinée au développement d'extensions.
Paramètres
-
request
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:(result: TestMatchOutcomeResult) => void
-
résultat
-
Renvoie
-
Promise<TestMatchOutcomeResult>
Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
)
Modifie l'ensemble actuel de règles dynamiques pour l'extension. Les règles dont les ID sont répertoriés dans options.removeRuleIds
sont d'abord supprimées, puis les règles fournies dans options.addRules
sont ajoutées. Remarques :
- Cette mise à jour se produit en une seule opération atomique: soit toutes les règles spécifiées sont ajoutées et supprimées, soit une erreur est renvoyée.
- Ces règles sont conservées d'une session de navigateur à l'autre et lors des mises à jour d'extensions.
- Les règles statiques spécifiées dans le package d'extension ne peuvent pas être supprimées à l'aide de cette fonction.
MAX_NUMBER_OF_DYNAMIC_RULES
est le nombre maximal de règles dynamiques qu'une extension peut ajouter. Le nombre de règles non sécurisées ne doit pas dépasserMAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
.
Paramètres
-
optionsChrome 87 ou version ultérieure
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 91 ou version ultérieureLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
)
Met à jour l'ensemble des ensembles de règles statiques activés pour l'extension. Les ensembles de règles dont les ID sont répertoriés dans options.disableRulesetIds
sont d'abord supprimés, puis les ensembles de règles listés dans options.enableRulesetIds
sont ajoutés.
Notez que l'ensemble d'ensembles de règles statiques activés est conservé d'une session à l'autre, mais pas entre les mises à jour d'extension. Par exemple, la clé du fichier manifeste rule_resources
détermine l'ensemble d'ensembles de règles statiques activés lors de chaque mise à jour d'extension.
Paramètres
-
optionsChrome 87 ou version ultérieure
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 91 ou version ultérieureLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
)
Modifie l'ensemble actuel de règles de portée session pour l'extension. Les règles dont les ID sont répertoriés dans options.removeRuleIds
sont d'abord supprimées, puis les règles fournies dans options.addRules
sont ajoutées. Remarques :
- Cette mise à jour se produit en une seule opération atomique: soit toutes les règles spécifiées sont ajoutées et supprimées, soit une erreur est renvoyée.
- Ces règles ne sont pas conservées d'une session à l'autre et sont sauvegardées en mémoire.
MAX_NUMBER_OF_SESSION_RULES
est le nombre maximal de règles de session qu'une extension peut ajouter.
Paramètres
-
options
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Chrome 91 ou version ultérieureLes promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
)
Désactive et active des règles statiques individuelles dans un élément Ruleset
. Les modifications apportées aux règles appartenant à un Ruleset
désactivé prendront effet la prochaine fois que celle-ci sera activée.
Paramètres
-
options
-
rappel
function facultatif
Le paramètre
callback
se présente comme suit:() => void
Renvoie
-
Promesse<void>
Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.
Événements
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Déclenché lorsqu'une règle est mise en correspondance avec une requête. Disponible uniquement pour les extensions non empaquetées disposant de l'autorisation "declarativeNetRequestFeedback"
, car celle-ci est exclusivement destinée au débogage.
Paramètres
-
rappel
fonction
Le paramètre
callback
se présente comme suit:(info: MatchedRuleInfoDebug) => void
-
infos
-