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 consulter leur contenu, ce qui renforce la confidentialité.
Autorisations
declarativeNetRequest
declarativeNetRequestWithHostAccess
Les autorisations "declarativeNetRequest
" et "declarativeNetRequestWithHostAccess
" offrent les mêmes capacités. La différence entre les deux réside dans la demande ou l'octroi d'autorisations.
"declarativeNetRequest"
- Déclenche un avertissement d'autorisation au moment de l'installation, mais fournit un accès implicite aux règles
allow
,allowAllRequests
etblock
. Utilisez cette option lorsque cela est possible pour éviter de devoir 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 des autorisations d'hôte avant de pouvoir effectuer une action sur un hôte. Cela est approprié lorsque vous souhaitez utiliser des règles de requête nette déclarative dans une extension qui dispose déjà d'autorisations d'hôte sans générer d'avertissements supplémentaires.
Garantie de disponibilité
Manifest
En plus des autorisations décrites précédemment, certains types d'ensembles de règles, et les ensembles de règles statiques en particulier, nécessitent la déclaration de la clé du fichier manifeste "declarative_net_request"
, qui doit être un dictionnaire avec 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 "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 décrits 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/*"
],
...
}
Concepts et utilisation
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 effectue l'une des opérations suivantes:
- Bloquez une requête réseau.
- Mettez à niveau le schéma (http vers https).
- Pour éviter qu'une requête soit bloquée, annulez les règles bloquées correspondantes.
- Rediriger une requête réseau.
- Modifier 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
- Elles sont conservées entre les sessions de navigateur et les mises à niveau d'extension. Elles sont gérées à l'aide de JavaScript lorsqu'une extension est utilisée.
- Session
- Effacé à la fermeture du navigateur et lorsqu'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 répertoriées dans le fichier manifeste.
Les sections suivantes décrivent en détail les types de jeux de règles.
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 lors des sessions de navigateur et des mises à niveau d'extensions.
- Les règles de session sont effacées à la fermeture du navigateur et lorsqu'une nouvelle version de l'extension est installée.
Il n'y a qu'un seul de ces types d'ensemble de règles. Une extension peut y ajouter ou en supprimer des règles de manière dynamique en appelant updateDynamicRules()
et updateSessionRules()
, à condition que les limites de règles ne soient pas dépassées. Pour plus d'informations 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 qu'un ou plusieurs dictionnaires Ruleset
. Un dictionnaire Ruleset
contient un chemin d'accès au fichier de règles, un ID pour l'ensemble de règles contenu dans le fichier, et indique 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 par programmation.
{
...
"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 des règles statiques non valides ne s'affichent que pour les extensions non empaquetées. Les règles statiques non valides dans les extensions empaquetées sont ignorées.
Activer et désactiver des règles statiques et des ensembles de règles
Les règles statiques individuelles et les ensembles de règles statiques complets peuvent être activés ou désactivés au moment de l'exécution.
L'ensemble de règles statiques et d'ensembles de règles activés est conservé d'une session de navigateur à l'autre. Elles ne sont pas conservées lors des mises à jour d'extension, 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 qui peuvent être activées. Pour plus d'informations 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
.
Pour activer ou désactiver les rulesets 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 toute URL dont la sous-chaîne est "abc"
.
{
"id" : 1,
"priority": 1,
"action" : { "type" : "block" },
"condition" : {
"urlFilter" : "abc",
"initiatorDomains" : ["foo.com"],
"resourceTypes" : ["script"]
}
}
Caractères correspondants dans urlFilter
La clé "condition"
d'une règle permet à une clé "urlFilter"
d'agir sur les URL d'un domaine spécifié. Vous créez des modèles à 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://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 |
Hiérarchisation des règles
Les règles sont déclenchées par des requêtes envoyées depuis des pages Web. Si plusieurs règles correspondent à une demande particulière, elles doivent être prioritaires. Cette section explique comment ils sont classés par ordre de priorité. L'établissement des priorités s'effectue en deux étapes.
- La priorité est déterminée pour les règles au sein d'une extension.
- Si plusieurs extensions peuvent appliquer une même règle à une requête, la priorité est déterminée pour toutes les extensions qui correspondent à une requête spécifique.
C'est ainsi que la règle prioritaire pour une extension donnée sera prioritaire par rapport aux règles des autres extensions.
Hiérarchisation des règles dans une extension
Dans une même extension, l'établissement de priorités s'effectue de la manière suivante:
- La règle avec la priorité la plus élevée définie par le développeur (en d'autres termes, le champ
"priority"
) est renvoyée. S'il existe plusieurs règles ayant la priorité la plus élevée définie par le développeur, celles-ci sont classées par ordre de priorité à l'aide du champ
"action"
, dans l'ordre suivant:allow
allowAllRequests
block
upgradeScheme
redirect
Si le type d'action n'est pas
block
ouredirect
, toutes les règlesmodifyHeaders
correspondantes sont évaluées. Sachez que s'il existe des règles dont la priorité définie par le développeur est inférieure à celle spécifiée pourallow
etallowAllRequests
, elles sont ignorées.Si plusieurs règles modifient le même en-tête, la modification est déterminée par le champ
"priority"
défini par le développeur et par les opérations spécifiées.- Si une règle est ajoutée à un en-tête, les règles de priorité inférieure ne pourront le faire 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, les règles de priorité inférieure ne peuvent l'ajouter qu'à 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.
Hiérarchisation des règles entre les extensions
Si une seule règle correspond à une requête, celle-ci est appliquée. Toutefois, si plusieurs extensions correspondent à une requête, le processus suivant est utilisé:
Les règles sont hiérarchisées à l'aide du champ
"action"
, dans l'ordre suivant:block
redirect
ouupgradeScheme
allow
ouallowAllRequests
Si plusieurs règles correspondent, la dernière extension installée est prioritaire.
Limites de règles
Le chargement et l'évaluation des règles dans le navigateur ont une incidence sur les performances. Par conséquent, certaines limites s'appliquent lors de l'utilisation de l'API. Les limites dépendent du type de règle 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 rulesets statiques dans la clé du fichier manifeste "rule_resources"
, mais seuls 50 d'entre eux peuvent être activés à la fois. Cette dernière méthode est appelée MAX_NUMBER_OF_ENABLED_STATIC_RULESETS
. Collectivement, ces ensembles de règles garantissent au moins 30 000 règles. Il s'agit de la GUARANTEED_MINIMUM_STATIC_RULES
.
Le nombre de règles disponibles ensuite dépend du nombre de règles activées par l'ensemble des 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. Il est exposé en tant que MAX_NUMBER_OF_SESSION_RULES
.
Avant Chrome 120, une limite de 5 000 règles combinées était fixée à 5 000 règles dynamiques et de session.
Les règles dynamiques
Une extension peut comporter au moins 5 000 règles dynamiques. Il est exposé en tant que MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
.
À partir de Chrome 121, il existe une limite plus importante de 30 000 règles dynamiques sûres (présentées en tant que MAX_NUMBER_OF_DYNAMIC_RULES
). Les règles de sécurité sont définies comme des règles ayant une action block
, allow
, allowAllRequests
ou upgradeScheme
. Toutes 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, la limite était de 5 000 règles dynamiques et de session combinées.
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'expression régulière 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 approximativement à 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 requête déclarativeNetRequest ne s'applique qu'aux requêtes qui atteignent la pile réseau. Cela inclut les réponses du cache HTTP, mais ne peut pas inclure les réponses qui passent par le gestionnaire onfetch
d'un service worker. declarativeNetRequest n'affecte pas les réponses générées par le service worker ou récupérées à partir de CacheStorage
, mais les appels à fetch()
effectués par 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 qui n'est pas accessible 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 déclarativeNetRequest, utilisez le tableau "web_accessible_resources"
du fichier manifeste.
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. Cela se produit 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 et d'autres désactivés (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, nous vous conseillons d'ouvrir les règles de hiérarchisation dans une fenêtre distincte.
La clé "prioritaire"
Ces exemples nécessitent une autorisation d'hôte pour *://*.example.com/*
.
Pour déterminer la priorité d'une URL spécifique, examinez la clé "priority"
(définie par le développeur), la clé "action"
et la clé "urlFilter"
. Ces exemples font référence à l'exemple de fichier de règles ci-dessous.
- Navigation vers https://google.com
- Deux règles concernent cette URL: les règles associées aux ID 1 et 4. La règle associée à l'ID 1 s'applique, car les actions
"block"
ont une priorité plus élevée que les actions"redirect"
. Les autres règles ne s'appliquent pas, car elles concernent des URL plus longues. - Navigation vers https://google.com/1234
- En raison de l'URL plus longue, la règle associée à l'ID 2 correspond désormais à celles associées aux ID 1 et 4. La règle associée à l'ID 2 s'applique, car
"allow"
a une priorité plus élevée que"block"
et"redirect"
. - Navigation vers https://google.com/12345
- Les quatre règles correspondent à cette URL. La règle associée à 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 l'autorisation d'hôte *://*.example.com/*
.
L'exemple suivant montre comment rediriger une requête provenant d'example.com vers une page de l'extension elle-même. Le chemin d'accès de l'extension /a.jpg
est résolu en chrome-extension://EXTENSION_ID/a.jpg
, où EXTENSION_ID
correspond à l'ID de votre extension. Pour que cela fonctionne, le fichier manifeste doit déclarer /a.jpg
en tant que ressource accessible via le Web.
{
"id": 1,
"priority": 1,
"action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
"condition": {
"urlFilter": "https://www.example.com",
"resourceTypes": ["main_frame"]
}
}
Le code suivant utilise la clé "transform"
pour rediriger vers un sous-domaine d'example.com. Il utilise un 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 la façon dont 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 la première ou la tierce partie de la trame d'origine. Une requête est considérée comme propriétaire si elle a le même domaine (eTLD+1) que la trame d'origine de la requête.
Enum
"firstParty"
La requête réseau est propriétaire de la trame d'origine.
"thirdParty"
La requête réseau est émise par un tiers vis-à-vis de la trame d'origine.
ExtensionActionOptions
Propriétés
-
displayActionCountAsBadgeText
Booléen facultatif
Permet d'afficher automatiquement le nombre d'actions pour 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 cette option est spécifiée, seules les règles avec des ID correspondants sont incluses.
HeaderOperation
Cette section décrit les opérations possibles pour une règle "modifyHeaders".
Enum
"append"
Ajoute une entrée pour l'en-tête spécifié. Cette opération n'est pas disponible pour les en-têtes de requête.
"set"
Définit une nouvelle valeur pour l'en-tête spécifié, en supprimant tous les en-têtes existants portant le même nom.
"remove"
Supprime toutes les entrées de l'en-tête spécifié.
IsRegexSupportedResult
Propriétés
-
isSupported
boolean
-
reason
UnsupportedRegexReason facultatif
Indique la raison pour laquelle l'expression régulière n'est pas acceptée. Fourni uniquement si
isSupported
est défini sur "false".
MatchedRule
Propriétés
-
ruleId
Nombre
ID d'une règle correspondante.
-
rulesetId
chaîne
ID du
Ruleset
auquel cette règle appartient. Pour une règle provenant de l'ensemble de règles dynamiques, ce nombre est égal àDYNAMIC_RULESET_ID
.
MatchedRuleInfo
Propriétés
-
règle
-
tabId
Nombre
Le tabId de l'onglet d'où provient la requête si l'onglet est toujours actif. Sinon, indiquez "-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
Informations sur 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é, ne correspond qu'aux 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
string 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 et versions ultérieuresSi 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 la requête à ajouter ou à remplacer.
-
removeParams
string[] facultatif
Liste des clés de requête à supprimer.
Redirect
Propriétés
-
extensionPath
string facultatif
Chemin d'accès relatif au répertoire de l'extension. Doit commencer par "/".
-
regexSubstitution
string 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
string 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 l'élément
regex
spécifié est sensible à la casse. La valeur par défaut est "true". -
regex
chaîne
L'expresson habituel à vérifier.
-
requireCapturing
Booléen facultatif
Indique si l'élément
regex
spécifié nécessite une capture. La capture n'est requise que pour les règles de redirection qui spécifient une actionregexSubstition
. La valeur par défaut est "false".
RequestDetails
Propriétés
-
documentId
string facultatif
Chrome 106 et versions ultérieuresIdentifiant unique du document du cadre, si cette demande concerne un cadre.
-
documentLifecycle
DocumentLifecycle facultatif
Chrome 106 et versions ultérieuresCycle de vie du document du cadre, si cette requête concerne un frame.
-
frameId
Nombre
La valeur 0 indique que la requête se produit dans la trame principale ; une valeur positive indique l'ID d'un sous-frame dans lequel la requête est effectuée. 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 au sein d'un onglet. -
frameType
FrameType facultatif
Chrome 106 et versions ultérieuresType de la trame, si cette requête concerne une trame.
-
initiateur
string facultatif
Origine à laquelle la requête a été lancée. Cela n'a aucune incidence sur les redirections. S'il s'agit d'une origine opaque, la chaîne "null" sera utilisée.
-
method
chaîne
Méthode HTTP standard.
-
parentDocumentId
string facultatif
Chrome 106 et versions ultérieuresIdentifiant unique du document parent du cadre, si cette requête concerne un cadre et a un parent.
-
parentFrameId
Nombre
ID de la trame qui encapsule la trame qui a envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe.
-
requestId
chaîne
ID de la requête. Les ID de requête sont uniques dans une session de navigateur.
-
tabId
Nombre
L'ID de l'onglet dans lequel la requête a lieu. Définissez cette valeur sur -1 si la requête n'est pas lié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.
Enum
"delete"
"get"
"head"
"options"
"patch"
"post"
"put"
ResourceType
Décrit le type de ressource de la requête réseau.
Enum
"main_frame"
"sub_frame"
"stylesheet" (feuille de style)
"script"
"image"
"font"
"xmlhttprequest"
"ping"
"media"
"websocket"
"webtransport"
"webbundle"
Rule
Propriétés
-
action
Action à effectuer si cette règle correspond.
-
état
La condition dans laquelle cette règle est déclenchée.
-
id
Nombre
Identifiant permettant d'identifier une règle de manière unique. Obligatoire et doit être supérieur ou égal à 1.
-
priority
numéro facultatif
Priorité de la règle. 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 et versions ultérieuresEn-têtes de requête à modifier. N'est valide que si RuleActionType est "modifyHeaders".
-
responseHeaders
ModifyHeaderInfo[] facultatif
Chrome 86 et versions ultérieuresEn-têtes de réponse à modifier pour la requête. N'est valide que si RuleActionType est "modifyHeaders".
-
Type
Type d'action à effectuer.
RuleActionType
Décrit le type d'action à effectuer si une règle RuleCondition correspond.
Enum
"block"
Bloquer 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 à niveau le schéma de l'URL de requête réseau vers https si la requête est HTTP ou FTP.
"modifyHeaders"
Modifiez les en-têtes de requête/réponse à partir 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 propriétaire ou tierce pour le domaine d'où elle provient. En cas d'omission, toutes les demandes sont acceptées.
-
domaines
string[] facultatif
Obsolète depuis Chrome 101Utilisez plutôt
initiatorDomains
La règle ne fera correspondre que les requêtes réseau provenant de la liste de
domains
. -
excludedDomains
string[] facultatif
Obsolète depuis Chrome 101Utilisez plutôt
excludedInitiatorDomains
La règle ne correspondra pas aux requêtes réseau provenant de la liste de
excludedDomains
. -
excludedInitiatorDomains
string[] facultatif
Chrome 101 et versions ultérieuresLa règle ne correspondra pas aux requêtes réseau provenant de la liste de
excludedInitiatorDomains
. Si la liste est vide ou omise, aucun domaine n'est exclu. Cette propriété est prioritaire surinitiatorDomains
.Remarques :
- Les 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.
- Cela 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 correspondra pas aux requêtes réseau lorsque les domaines correspondent à l'un des domaines de la liste
excludedRequestDomains
. Si la liste est vide ou omise, aucun domaine n'est exclu. Cette propriété est prioritaire surrequestDomains
.Remarques :
- Les 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 et versions ultérieuresListe des méthodes de requête auxquelles la règle ne correspondra pas. Vous ne devez spécifier qu'un seul élément
requestMethods
ouexcludedRequestMethods
. Si aucune de ces 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 correspondra pas. Vous ne devez spécifier qu'un seul élément
resourceTypes
ouexcludedResourceTypes
. Si aucune de ces valeurs n'est spécifiée, tous les types de ressources sont bloqués, à l'exception de "main_frame". -
excludedTabIds
number[] facultatif
Chrome 92 et versions ultérieuresListe 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. Uniquement disponible pour les règles dont la portée est définie au niveau de la session. -
initiatorDomains
string[] facultatif
Chrome 101 et versions ultérieuresLa règle ne fera correspondre que les requêtes réseau provenant de la liste de
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 :
- Les 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.
- Cela 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
string facultatif
Expression régulière à mettre en correspondance avec l'URL de la requête réseau. Ce code respecte la syntaxe RE2.
Remarque: Vous ne pouvez spécifier qu'un seul élément
urlFilter
ouregexFilter
.Remarque: L'élément
regexFilter
ne doit être composé que de caractères ASCII. Cette URL 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 URL en 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 :
- Les 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 et versions ultérieuresListe 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 autres que 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: Ce champ doit être spécifié pour les règles
allowAllRequests
et ne peut inclure que les types de ressourcessub_frame
etmain_frame
. -
tabIds
number[] facultatif
Chrome 92 et versions ultérieuresListe 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. Uniquement disponible pour les règles dont la portée est définie au niveau de la session. -
urlFilter
string facultatif
Format mis en correspondance avec l'URL de la requête réseau. Constructions compatibles:
'*' : caractère générique: correspond à n'importe quel nombre de caractères.
'|' : ancre gauche/droite: si utilisé à chaque extrémité du modèle, spécifie le début/la fin de l'URL, respectivement.
'||' : Ancre du nom de domaine: si utilisé au début du format, spécifie le début d'un (sous-)domaine de l'URL.
'^' : caractère de séparation. Il peut correspondre à une lettre, à un chiffre ou à l'un des éléments suivants :
_
,-
,.
ou%
. Il correspond également à la fin de l'URL.Par conséquent,
urlFilter
se compose des parties suivantes: (ancre gauche/nom de domaine facultative) + motif + (ancre droite facultative).Si cette valeur est omise, toutes les URL sont mises en correspondance. Une chaîne vide n'est pas autorisée.
Les formats commençant par
||*
ne sont pas autorisés. Utilisez plutôt*
.Remarque: Vous ne pouvez spécifier qu'un seul élément
urlFilter
ouregexFilter
.Remarque: L'élément
urlFilter
ne doit être composé que de caractères ASCII. Cette URL 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 URL en utf-8. Par exemple, lorsque l'URL de la requête est http://abc.non-p1ai/?q=%D1%84,urlFilter
sera mis en correspondance avec l'URL http://abc.xn--p1ai/?q=%D1%84.
Ruleset
Propriétés
-
activé
boolean
Indique si l'ensemble de règles est activé par défaut.
-
id
chaîne
Chaîne non vide identifiant de manière unique le jeu de règles. Les identifiants commençant par "_" sont réservés à un usage interne.
-
chemin d'accès
chaîne
Chemin de l'ensemble de règles JSON relatif au répertoire d'extensions.
RulesMatchedDetails
Propriétés
-
rulesMatchedInfo
Règles correspondant au filtre donné.
TabActionCountUpdate
Propriétés
-
increment
Nombre
Montant d'augmentation du nombre d'actions de l'onglet. Les valeurs négatives diminuent le nombre.
-
tabId
Nombre
Onglet pour lequel vous souhaitez mettre à jour le nombre d'actions.
TestMatchOutcomeResult
Propriétés
-
matchedRules
Règles (le cas échéant) correspondant à la demande fictive.
TestMatchRequestDetails
Propriétés
-
initiateur
string facultatif
L'URL de l'initiateur (le cas échéant) de la requête hypothétique.
-
method
RequestMethod facultatif
Méthode HTTP standard de la requête hypothétique. La valeur par défaut est "get" pour les requêtes HTTP et est ignorée pour les requêtes autres que HTTP.
-
tabId
numéro facultatif
ID de l'onglet dans lequel la requête fictive a lieu. Ne doit pas nécessairement correspondre à un véritable ID d'onglet. La valeur par défaut est -1, ce qui signifie que la requête n'est pas liée à un onglet.
-
Type
Type de ressource de la requête fictive.
-
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.
Enum
"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
ID 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
string facultatif
Nouveau fragment de la requête. Doit être vide (dans ce cas, le fragment existant est effacé) ou commencer par "#".
-
hôte
string facultatif
Nouvel hôte de la requête.
-
mot de passe
string facultatif
Nouveau mot de passe pour la requête.
-
chemin d'accès
string facultatif
Nouveau chemin d'accès de la requête. Si ce champ est vide, le chemin d'accès existant est effacé.
-
port
string facultatif
Nouveau port de la requête. Si ce champ est vide, le port existant est effacé.
-
requête
string facultatif
Nouvelle requête de la requête. Elle doit être vide (dans ce cas, la requête existante est effacée) ou commencer par un point d'interrogation (?).
-
queryTransform
QueryTransform facultatif
Ajoutez, supprimez ou remplacez des paires clé-valeur de requête.
-
schéma
string facultatif
Nouveau schéma de la requête. Les valeurs autorisées sont "http", "https", "ftp" et "chrome-extension".
-
nom d'utilisateur
string facultatif
Nouveau nom d'utilisateur pour la requête.
Propriétés
DYNAMIC_RULESET_ID
ID de l'ensemble de règles des règles dynamiques ajoutées par l'extension.
Valeur
"_dynamic"
GETMATCHEDRULES_QUOTA_INTERVAL
Intervalle de temps pendant lequel les appels MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules
peuvent être effectués, spécifié en minutes. Les appels supplémentaires échoueront immédiatement et définiront 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 ses ensembles de règles statiques activés. Toute règle dépassant cette limite sera comptabilisée dans la limite globale des règles statiques.
Valeur
30000
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
Nombre de fois où getMatchedRules
peut être appelé dans une période 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 en même temps.
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 celles spécifiées dans le fichier de ressources de règles.
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 de Rulesets
statiques qu'une extension peut spécifier dans la clé du fichier manifeste "rule_resources"
.
Valeur
100
MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES
Nombre maximal de règles dynamiques "non sécurisées" qu'une extension peut ajouter.
Valeur
5000
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Nombre maximal de règles de portée session "non sécurisées" 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 d'atteindre la limite globale des règles statiques.
Paramètres
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(count: number)=>void
-
nombre
Nombre
-
Renvoie
-
Promesse<number>
Chrome 91 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 qui sont actuellement désactivées dans l'élément Ruleset
donné.
Paramètres
-
options
Spécifie l'ensemble de règles à interroger.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(disabledRuleIds: number[])=>void
-
disabledRuleIds
nombre[]
-
Renvoie
-
Promesse<number[]>
Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 et versions ultérieuresObjet permettant de filtrer la liste des règles récupérées.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(rules: Rule[])=>void
-
règles
Règle[]
-
Renvoie
-
Promesse<Rule[]>
Chrome 91 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
)
Renvoie les identifiants de l'ensemble actuel de règles statiques activées.
Paramètres
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(rulesetIds: string[])=>void
-
rulesetIds
chaîne[]
-
Renvoie
-
Promesse<string[]>
Chrome 91 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 correspondantes pour 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 et dont la correspondance a été établie il y a plus de cinq minutes ne seront pas renvoyées.
Paramètres
-
filtre
MatchedRulesFilter facultatif
Objet permettant de filtrer la liste des règles correspondantes.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(details: RulesMatchedDetails)=>void
-
détails
-
Renvoie
-
Promise<RulesMatchedDetails>
Chrome 91 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 et versions ultérieuresObjet permettant de filtrer la liste des règles récupérées.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(rules: Rule[])=>void
-
règles
Règle[]
-
Renvoie
-
Promesse<Rule[]>
Chrome 91 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 acceptée en tant que condition de règle regexFilter
.
Paramètres
-
regexOptions
Expression régulière à vérifier.
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(result: IsRegexSupportedResult)=>void
-
résultat
-
Renvoie
-
Promise<IsRegexSupportedResult>
Chrome 91 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
)
Permet de configurer si le nombre d'actions pour les onglets doit s'afficher en tant que texte du badge de l'action de l'extension et permet d'augmenter le nombre d'actions.
Paramètres
-
options
-
rappel
fonction facultative
Chrome 89 et versions ultérieuresLe paramètre
callback
se présente comme suit :()=>void
Renvoie
-
Promise<void>
Chrome 91 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 n'est disponible que pour les extensions non empaquetées, car elle est destinée à être utilisée uniquement pendant le développement d'extensions.
Paramètres
-
request
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :(result: TestMatchOutcomeResult)=>void
-
résultat
-
Renvoie
-
Promise<TestMatchOutcomeResult>
Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 associées à des ID listés dans options.removeRuleIds
sont d'abord supprimées, puis les règles indiquées dans options.addRules
sont ajoutées. Remarques :
- Cette mise à jour se produit comme 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_AND_SESSION_RULES
correspond au nombre maximal de règles combinées dynamiques et de session qu'une extension peut ajouter.
Paramètres
-
optionsChrome 87 et versions ultérieures
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :()=>void
Renvoie
-
Promise<void>
Chrome 91 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 d'ensembles de règles statiques activés pour l'extension. Les ensembles de règles avec les ID répertoriés dans options.disableRulesetIds
sont d'abord supprimés, puis les ensembles de règles répertorié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 lors des mises à jour d'extension. Autrement dit, la clé du fichier manifeste rule_resources
détermine l'ensemble des ensembles de règles statiques activés à chaque mise à jour d'extension.
Paramètres
-
optionsChrome 87 et versions ultérieures
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :()=>void
Renvoie
-
Promise<void>
Chrome 91 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 associées à des ID listés dans options.removeRuleIds
sont d'abord supprimées, puis les règles indiquées dans options.addRules
sont ajoutées. Remarques :
- Cette mise à jour se produit comme 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_DYNAMIC_AND_SESSION_RULES
correspond au nombre maximal de règles combinées dynamiques et de session qu'une extension peut ajouter.
Paramètres
-
options
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :()=>void
Renvoie
-
Promise<void>
Chrome 91 et versions ultérieuresLes promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 les règles statiques individuelles d'un Ruleset
. Les modifications apportées aux règles appartenant à un Ruleset
désactivé prendront effet la prochaine fois qu'il sera activé.
Paramètres
-
options
-
rappel
fonction facultative
Le paramètre
callback
se présente comme suit :()=>void
Renvoie
-
Promise<void>
Les promesses sont compatibles avec Manifest V3 et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux dans le même appel de fonction. 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 avec l'autorisation "declarativeNetRequestFeedback"
, car elle est destinée uniquement au débogage.
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(info: MatchedRuleInfoDebug)=>void
-
infos
-