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, ce qui renforce la confidentialité.
Autorisations
declarativeNetRequestdeclarativeNetRequestWithHostAccessdeclarativeNetRequestFeedbackhost_permissions
Disponibilité
Fichier manifeste
En plus des autorisations décrites ci-dessus, certains types de ensembles de règles, en particulier les ensembles de règles statiques, nécessitent de déclarer la clé de 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 "Ruleset" 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/*"
  ],
  ...
}
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 règle unique effectue l'une des opérations suivantes :
- Bloquez une requête réseau.
- Mettez à niveau le schéma (http vers https).
- Empêchez une requête d'être bloquée en annulant toutes les règles bloquées correspondantes.
- Redirigez 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, qui sont gérés de manière légèrement différente.
- Dynamique
- Elles persistent d'une session de navigation à l'autre et lors des mises à niveau d'extensions, et sont gérées à l'aide de JavaScript lorsqu'une extension est utilisée.
- Session
- Effacé lorsque le navigateur s'arrête 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
- est empaqueté, installé et mis à jour lorsqu'une extension est installée ou mise à niveau. Les règles statiques sont stockées dans des fichiers de règles au format JSON et listées dans le fichier manifeste.
Les sections suivantes expliquent en détail les types 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 d'une session de navigation à l'autre et lors des mises à niveau des extensions.
- Les règles de session sont effacées lorsque le navigateur est fermé et lorsqu'une nouvelle version de l'extension est installée.
Il n'existe qu'un seul type de règles pour chacun de ces ensembles. Une extension peut ajouter ou 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 en savoir plus sur les limites des règles, consultez Limites des règles. Vous trouverez un exemple dans la section Exemples de code.
Ensembles de règles statiques
Contrairement aux règles dynamiques et de session, les règles statiques sont regroupées, installées et mises à jour lorsqu'une extension est installée ou mise à niveau. Elles sont stockées 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 de 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 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 compressée. Les erreurs et les avertissements concernant les règles statiques non valides ne s'affichent que pour les extensions non compressées. Les règles statiques non valides dans les extensions packagées sont ignorées.
Activer et désactiver les règles et ensembles de règles statiques
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 des règles et ensembles de règles statiques activés est conservé d'une session de navigateur à l'autre. Aucun des deux n'est conservé lors des mises à jour de l'extension. Cela signifie que seules les règles que vous avez choisi de laisser 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 Limites des règles.
Pour activer ou désactiver les règles statiques, appelez updateStaticRules(). Cette méthode accepte 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 ensembles de règles statiques, appelez updateEnabledRulesets(). Cette méthode accepte un objet UpdateRulesetOptions, qui contient des tableaux d'ID de ensembles de règles à activer ou désactiver. Les ID sont définis à l'aide de la clé "id" du dictionnaire Ruleset.
Règles de compilation
Quel que soit le type de règle, elle commence par quatre champs, comme indiqué ci-dessous. Alors que les clés "id" et "priority" prennent 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 contenant "abc" comme sous-chaîne.
{
  "id" : 1,
  "priority": 1,
  "action" : { "type" : "block" },
  "condition" : {
    "urlFilter" : "abc",
    "initiatorDomains" : ["foo.com"],
    "resourceTypes" : ["script"]
  }
}
Caractères de correspondance urlFilter
La clé "condition" d'une règle autorise une clé "urlFilter" pour agir sur les URL d'un domaine spécifié. Vous créez des modèles à l'aide de jetons de correspondance de modèles. En 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 | 
Priorité des règles
Les règles sont déclenchées par les requêtes envoyées à partir de pages Web. Si plusieurs règles correspondent à une requête spécifique, elles doivent être classées par ordre de priorité. Cette section explique comment elles sont hiérarchisées. La hiérarchisation se déroule en deux étapes.
- La priorité est déterminée pour les règles d'une extension.
- Si plusieurs extensions peuvent appliquer une règle à une requête, la priorité est déterminée pour toutes les extensions correspondant à cette requête.
En d'autres termes, la règle qu'une extension spécifique privilégie sera ensuite privilégiée par rapport aux règles d'autres extensions.
Priorité des règles dans une extension
Dans une même extension, la priorité est déterminée à l'aide du processus suivant :
- La règle ayant la priorité la plus élevée définie par le développeur (autrement dit, le champ "priority") est renvoyée.
- S'il existe plusieurs règles avec la priorité la plus élevée définie par le développeur, elles 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 - blockni- redirect, toutes les règles- modifyHeaderscorrespondantes sont évaluées. Notez que si des règles ont une priorité définie par le développeur inférieure à celle spécifiée pour- allowet- allowAllRequests, elles seront 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 ajoute du contenu à un en-tête, les règles de priorité inférieure ne peuvent faire de même. 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 que l'ajouter. 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 le modifier.
 
Priorité des règles entre les extensions
Si une seule extension comporte une règle correspondant à une requête, cette règle est appliquée. Toutefois, si plusieurs extensions correspondent à une requête, la procédure suivante est utilisée :
- Les règles sont classées par ordre de priorité à l'aide du champ - "action", dans l'ordre suivant :- block
- redirectou- upgradeScheme
- allowou- allowAllRequests
 
- Si plusieurs règles correspondent, l'extension installée le plus récemment est prioritaire. 
Limites de règles
Le chargement et l'évaluation des règles dans le navigateur entraînent une surcharge des performances. Par conséquent, certaines limites s'appliquent lorsque vous utilisez 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'à 50 ensembles de règles statiques dans le cadre de la clé de fichier manifeste "rule_resources", mais seuls 10 de ces ensembles de règles peuvent être activés à la fois. Ce dernier est appelé MAX_NUMBER_OF_ENABLED_STATIC_RULESETS. Collectivement, ces ensembles de règles garantissent au moins 30 000 règles. C'est ce qu'on appelle le GUARANTEED_MINIMUM_STATIC_RULES.
Le nombre de règles disponibles après cela dépend du nombre de règles activées par toutes les extensions installées dans le navigateur d'un utilisateur. Vous pouvez trouver ce nombre au moment de l'exécution en appelant getAvailableStaticRuleCount(). Vous trouverez un exemple dans la section Exemples de code.
Règles dynamiques et de session
Les limites appliquées aux règles dynamiques et de session sont plus simples que celles des règles statiques. Le nombre total de ces deux éléments ne peut pas dépasser 5 000. C'est ce qu'on appelle le MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES.
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. On l'appelle MAX_NUMBER_OF_REGEX_RULES.
De plus, 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 à celui ci-dessous s'affiche et la règle est ignorée.
rules_1.json: Rule with id 1 specified a more complext regex than allowed
as part of the "regexFilter" key.
Interactions avec les service workers
Une declarativeNetRequest ne s'applique qu'aux requêtes qui atteignent la pile réseau. Cela inclut les réponses du cache HTTP, mais peut ne 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 ni celles récupérées à partir de CacheStorage, mais il affecte les appels à fetch() effectués dans un service worker.
Ressources accessibles sur le Web
Une règle declarativeNetRequest ne peut pas rediriger une requête de ressource publique vers une ressource qui n'est pas accessible sur le Web. Cette opération déclenche une erreur. Cela est valable même si la ressource Web accessible spécifiée appartient à l'extension de redirection. Pour déclarer des ressources pour declarativeNetRequest, 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 les ensembles de règles statiques
L'exemple suivant montre comment activer et désactiver des ensembles de règles 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 pouvez utiliser cette méthode 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 avec certains de vos ensembles de règles 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 ci-dessous illustrent la façon dont Chrome définit la priorité des règles dans une extension. Lorsque vous les examinez, vous pouvez ouvrir les règles de priorisation dans une fenêtre distincte.
Clé "priority"
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éfinie par le développeur), "action" et "urlFilter". Ces exemples font référence à l'exemple de fichier de règles présenté ci-dessous.
- Navigation vers https://google.com
- Deux règles couvrent cette URL : celles dont les ID sont 1 et 4. La règle avec 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 les URL plus longues.
- Navigation vers https://google.com/1234
- En raison de l'URL plus longue, la règle avec l'ID 2 correspond désormais en plus des règles avec les ID 1 et 4. La règle ayant 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 avec 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 pour *://*.example.com/*.
L'exemple suivant montre comment rediriger une requête de example.com vers une page de l'extension elle-même. Le chemin d'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 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"]
  }
}
L'exemple suivant utilise la clé "transform" pour rediriger vers un sous-domaine d'example.com. Il utilise un ancrage de nom de domaine ("||") pour intercepter les requêtes avec n'importe quel schéma provenant d'example.com. La clé "scheme" dans "transform" spécifie 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 les utilisateurs de https://www.abc.xyz.com/path vers https://abc.xyz.com/path. Dans la clé "regexFilter", notez que 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 de l'expression régulière à l'aide de "\1". Dans ce cas, "abc" est capturé à partir de l'URL redirigée 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 demande est propriétaire ou tierce par rapport au frame dans lequel elle a été générée. Une requête est dite "first party" si elle possède le même domaine (eTLD+1) que le frame dans lequel elle a été générée.
Énumération
"firstParty" 
 La requête réseau est propriétaire du frame dans lequel elle a été générée.
"thirdParty" 
 La requête réseau est tierce par rapport au frame dans lequel elle a été lancée.
ExtensionActionOptions
Propriétés
- 
    displayActionCountAsBadgeTextbooléen facultatif Indique si le nombre d'actions pour une page doit s'afficher automatiquement en tant que texte du badge de l'extension. Cette préférence est conservée d'une session à l'autre. 
- 
    tabUpdateTabActionCountUpdate 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
- 
    rulesetIdchaîne ID correspondant à un Rulesetstatique.
GetRulesFilter
Propriétés
- 
    ruleIdsnumber[] facultatif Si cette option est spécifiée, seules les règles dont les ID correspondent sont incluses. 
HeaderInfo
Propriétés
- 
    excludedValuesstring[] 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. Il utilise la même syntaxe de modèle de correspondance que values.
- 
    en-têtechaîne Nom de l'en-tête. Cette condition ne correspond au nom que si valuesetexcludedValuesne sont pas spécifiés.
- 
    valeursstring[] facultatif Si elle est spécifiée, cette condition correspond si la valeur de l'en-tête correspond à au moins un modèle de cette liste. Cela permet de faire correspondre les valeurs d'en-tête sans tenir compte de la casse, ainsi que les constructions suivantes : * : correspond à n'importe quel nombre de caractères. ? : correspond à zéro ou un caractère. Les caractères "*" et "?" peuvent être échappés avec une barre oblique inverse, par exemple "\*" et "\?". 
HeaderOperation
Décrit les opérations possibles pour une règle "modifyHeaders".
Énumération
"append" 
 Ajoute une entrée pour l'en-tête spécifié. Lorsque vous modifiez les en-têtes d'une requête, cette opération n'est possible que pour certains en-têtes.
"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
- 
    isSupportedbooléen 
- 
    reasonUnsupportedRegexReason facultatif Indique la raison pour laquelle l'expression régulière n'est pas acceptée. N'est fourni que si la valeur de isSupportedest "false".
MatchedRule
Propriétés
- 
    ruleIdTotal ID d'une règle de correspondance. 
- 
    rulesetIdchaîne ID de la Rulesetà laquelle appartient cette règle. 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
- 
    tabIdTotal ID de l'onglet à partir duquel la requête a été envoyée, si l'onglet est toujours actif. Sinon, -1. 
- 
    timeStampTotal Heure à laquelle la règle a été respectée. 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
- 
    requestDétails de la demande pour laquelle la règle a été trouvée. 
- 
    règle
MatchedRulesFilter
Propriétés
- 
    minTimeStampnumber facultatif Si cette option est spécifiée, les règles ne sont mises en correspondance qu'après le code temporel indiqué. 
- 
    tabIdnumber facultatif Si spécifié, ne correspond qu'aux règles de l'onglet donné. Correspond aux règles non associées à un onglet actif si la valeur est définie sur -1. 
ModifyHeaderInfo
Propriétés
- 
    en-têtechaîne Nom de l'en-tête à modifier. 
- 
    opérationOpération à effectuer sur un en-tête. 
- 
    valeurchaîne facultatif Nouvelle valeur de l'en-tête. Doit être spécifié pour les opérations appendetset.
QueryKeyValue
Propriétés
- 
    cléchaîne 
- 
    replaceOnlyboolé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. Dans le cas contraire, la clé est également ajoutée si elle est manquante. Valeur par défaut : "false". 
- 
    valeurchaîne 
QueryTransform
Propriétés
- 
    addOrReplaceParamsQueryKeyValue[] facultatif Liste des paires clé/valeur de requête à ajouter ou à remplacer. 
- 
    removeParamsstring[] facultatif Liste des clés de requête à supprimer. 
Redirect
Propriétés
- 
    extensionPathchaîne facultatif Chemin d'accès relatif au répertoire de l'extension. Doit commencer par "/". 
- 
    regexSubstitutionchaîne facultatif Modèle de substitution pour les règles qui spécifient un regexFilter. La première occurrence deregexFilterdans l'URL sera remplacée par ce modèle. DansregexSubstitution, des 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'ensemble du texte correspondant.
- 
    transformURLTransform facultatif Transformations d'URL à effectuer. 
- 
    urlchaîne facultatif URL de redirection. Les redirections vers des URL JavaScript ne sont pas autorisées. 
RegexOptions
Propriétés
- 
    isCaseSensitivebooléen facultatif Indique si le regexspécifié est sensible à la casse. La valeur par défaut est "true".
- 
    regexchaîne Expression régulière à vérifier. 
- 
    requireCapturingbooléen facultatif Indique si le regexspé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" (inactif).
RequestDetails
Propriétés
- 
    documentIdchaîne facultatif Chrome 106 et versions ultérieuresIdentifiant unique du document du frame, si cette requête concerne un frame. 
- 
    documentLifecycleDocumentLifecycle facultatif Chrome 106 et versions ultérieuresCycle de vie du document du frame, si cette requête concerne un frame. 
- 
    frameIdTotal La valeur 0 indique que la requête se produit dans le frame principal. Une valeur positive indique l'ID d'un sous-frame dans lequel la requête se produit. Si le document d'un (sous-)frame est chargé ( typeestmain_frameousub_frame),frameIdindique l'ID de ce frame, et non celui du frame extérieur. Les ID de frame sont uniques dans un onglet.
- 
    frameTypeFrameType facultatif Chrome 106 et versions ultérieuresType de frame, si cette requête concerne un frame. 
- 
    initiateurchaîne facultatif Origine de la requête. Cela ne change pas avec les redirections. Si l'origine est opaque, la chaîne "null" est utilisée. 
- 
    methodchaîne Méthode HTTP standard. 
- 
    parentDocumentIdchaîne facultatif Chrome 106 et versions ultérieuresIdentifiant unique du document parent du frame, si cette requête concerne un frame et qu'il a un parent. 
- 
    parentFrameIdTotal ID du frame qui contient le frame ayant envoyé la requête. Définissez la valeur sur -1 si aucun frame parent n'existe. 
- 
    requestIdchaîne ID de la demande. Les ID de requête sont uniques dans une session de navigateur. 
- 
    tabIdTotal ID de l'onglet dans lequel la requête est effectuée. Définissez sur -1 si la requête n'est pas liée à un onglet. 
- 
    typeType de ressource de la requête. 
- 
    urlchaîne URL de la requête. 
RequestMethod
Cela décrit la méthode de requête HTTP d'une requête réseau.
Énumération
"connect" 
 
"delete" 
 
"get" 
 
"head" 
 
"options" 
 
"patch" 
 
"post" 
 
"put" 
 
"other" 
 
ResourceType
Cette valeur décrit le type de ressource de la requête réseau.
Énumération
"main_frame" 
 
"sub_frame" 
 
"stylesheet" 
 
"script" 
 
"image" 
 
"font" 
 
"object" 
 
"xmlhttprequest" 
 
"ping" 
 
"csp_report" 
 
"media" 
 
"websocket" 
 
"webtransport" 
 
"webbundle" 
 
"other" 
 
Rule
Propriétés
- 
    actionAction à effectuer si cette règle correspond. 
- 
    étatCondition dans laquelle cette règle est déclenchée. 
- 
    idTotal ID qui identifie de manière unique une règle. Obligatoire et doit être supérieur ou égal à 1. 
- 
    prioriténumber facultatif Priorité de la règle. La valeur par défaut est 1. Si cette valeur est spécifiée, elle doit être supérieure ou égale à 1. 
RuleAction
Propriétés
- 
    redirectionRedirection facultatif Décrit comment la redirection doit être effectuée. Valide uniquement pour les règles de redirection. 
- 
    requestHeadersModifyHeaderInfo[] facultatif Chrome 86 et versions ultérieuresEn-têtes de requête à modifier pour la requête. Valide uniquement si RuleActionType est "modifyHeaders". 
- 
    responseHeadersModifyHeaderInfo[] facultatif Chrome 86 et versions ultérieuresEn-têtes de réponse à modifier pour la requête. Valide uniquement si RuleActionType est "modifyHeaders". 
- 
    typeType d'action à effectuer. 
RuleActionType
Décrit le type d'action à effectuer si une RuleCondition donnée correspond.
Énumération
block 
 Bloque la requête réseau.
"redirect" 
 Redirige la requête réseau.
allow 
 Autorise la requête réseau. La requête ne sera pas interceptée si une règle d'autorisation lui correspond.
"upgradeScheme" 
 Mettre à niveau le schéma de l'URL de la 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" 
 Autorise toutes les requêtes dans une hiérarchie de frames, y compris la requête de frame elle-même.
RuleCondition
Propriétés
- 
    domainTypeDomainType facultatif Indique si la requête réseau est propriétaire ou tierce par rapport au domaine dont elle provient. Si elle est omise, toutes les requêtes sont acceptées. 
- 
    domainesstring[] facultatif Obsolète depuis Chrome 101Utilisez plutôt initiatorDomains.La règle ne correspondra qu'aux requêtes réseau provenant de la liste des domains.
- 
    excludedDomainsstring[] facultatif Obsolète depuis Chrome 101Utilisez plutôt excludedInitiatorDomains.La règle ne correspondra pas aux requêtes réseau provenant de la liste des excludedDomains.
- 
    excludedInitiatorDomainsstring[] 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 règle prévaut surinitiatorDomains.Remarques : - Les sous-domaines tels que "a.example.com" sont également autorisés.
- Les entrées ne doivent contenir que des caractères ASCII.
- Utilisez l'encodage Punycode pour les domaines internationalisés.
- Cette expression correspond à l'initiateur de la requête et non à l'URL de la requête.
- Les sous-domaines des domaines listés sont également exclus.
 
- 
    excludedRequestDomainsstring[] facultatif Chrome 101 et versions ultérieuresLa règle ne correspondra pas aux requêtes réseau lorsque les domaines correspondront à l'un de ceux de la liste excludedRequestDomains. Si la liste est vide ou omise, aucun domaine n'est exclu. Cette règle prévaut surrequestDomains.Remarques : - Les sous-domaines tels que "a.example.com" sont également autorisés.
- Les entrées ne doivent contenir que des caractères ASCII.
- Utilisez l'encodage Punycode pour les domaines internationalisés.
- Les sous-domaines des domaines listés sont également exclus.
 
- 
    excludedRequestMethodsRequestMethod[] facultatif Chrome 91 et versions ultérieuresListe des méthodes de requête auxquelles la règle ne correspond pas. Vous ne devez spécifier qu'un seul élément requestMethodsetexcludedRequestMethods. Si aucun d'eux n'est spécifié, toutes les méthodes de requête sont mises en correspondance.
- 
    excludedResourceTypesResourceType[] facultatif Liste des types de ressources auxquels la règle ne correspondra pas. Vous ne devez spécifier qu'un seul élément resourceTypesetexcludedResourceTypes. Si aucun d'eux n'est spécifié, tous les types de ressources sont bloqués, à l'exception de "main_frame".
- 
    excludedResponseHeadersHeaderInfo[] facultatif Chrome 128 et versions ultérieuresLa règle ne correspond pas si la requête correspond à une condition d'en-tête de réponse de cette liste (le cas échéant). Si les deux propriétés excludedResponseHeadersetresponseHeaderssont spécifiées, la propriétéexcludedResponseHeadersest prioritaire.
- 
    excludedTabIdsnumber[] facultatif Chrome 92 et versions ultérieuresListe des tabs.Tab.idauxquelles la règle ne doit pas correspondre. Un ID detabs.TAB_ID_NONEexclut les requêtes qui ne proviennent pas d'un onglet. Uniquement compatible avec les règles de portée session.
- 
    initiatorDomainsstring[] facultatif Chrome 101 et versions ultérieuresLa règle ne correspondra qu'aux requêtes réseau provenant de la liste des initiatorDomains. Si la liste est omise, la règle s'applique aux demandes 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 contenir que des caractères ASCII.
- Utilisez l'encodage Punycode pour les domaines internationalisés.
- Cette expression correspond à l'initiateur de la requête et non à l'URL de la requête.
- Les sous-domaines des domaines listés sont également mis en correspondance.
 
- 
    isUrlFilterCaseSensitivebooléen facultatif Indique si urlFilterouregexFilter(selon la valeur spécifiée) est sensible à la casse. La valeur par défaut est "false".
- 
    regexFilterchaîne facultatif Expression régulière à comparer à l'URL de la requête réseau. Elle suit la syntaxe RE2. Remarque : Vous ne pouvez spécifier qu'un seul élément urlFilterouregexFilter.Remarque : Le regexFilterne doit être composé que de caractères ASCII. Cette valeur est mise en correspondance avec une URL dont l'hôte est encodé au format punycode (dans le cas de domaines internationalisés) et dont tous les autres caractères non ASCII sont encodés en UTF-8.
- 
    requestDomainsstring[] facultatif Chrome 101 et versions ultérieuresLa règle ne correspondra aux requêtes réseau que lorsque le domaine correspondra à l'un de ceux de la liste requestDomains. Si la liste est omise, la règle s'applique aux demandes 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 contenir que des caractères ASCII.
- Utilisez l'encodage Punycode pour les domaines internationalisés.
- Les sous-domaines des domaines listés sont également mis en correspondance.
 
- 
    requestMethodsRequestMethod[] 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 non HTTP(s) seront également exclues, contrairement à la spécification deexcludedRequestMethods.
- 
    resourceTypesResourceType[] facultatif Liste des types de ressources auxquels la règle peut correspondre. Une liste vide n'est pas autorisée. Remarque : Cette valeur doit être spécifiée pour les règles allowAllRequestset ne peut inclure que les types de ressourcessub_frameetmain_frame.
- 
    responseHeadersHeaderInfo[] facultatif Chrome 128 et versions ultérieuresLa règle correspond si la requête correspond à l'une des conditions d'en-tête de réponse de cette liste (le cas échéant). 
- 
    tabIdsnumber[] facultatif Chrome 92 et versions ultérieuresListe des tabs.Tab.idauxquelles la règle doit correspondre. Un IDtabs.TAB_ID_NONEcorrespond aux requêtes qui ne proviennent pas d'un onglet. Une liste vide n'est pas autorisée. Uniquement compatible avec les règles de portée session.
- 
    urlFilterchaîne facultatif Modèle qui correspond à l'URL de la requête réseau. Constructions acceptées : * : caractère générique qui correspond à n'importe quel nombre de caractères. | : point d'ancrage à gauche/à droite. S'il est utilisé à l'une des extrémités du modèle, il spécifie respectivement le début ou la fin de l'URL. '||' : ancre de nom de domaine. Si elle est utilisée au début du modèle, elle spécifie le début d'un (sous-)domaine de l'URL. ^ : caractère de séparation. Établit une correspondance avec tout élément, à l'exception d'une lettre, d'un chiffre ou de l'un des éléments suivants : _,-,.ou%. Cela correspond également à la fin de l'URL.Par conséquent, urlFilterse compose des parties suivantes : (ancre de nom de domaine/de gauche facultative) + modèle + (ancre de droite facultative).Si elle est omise, toutes les URL correspondent. Une chaîne vide n'est pas autorisée. Les formats commençant par ||*ne sont pas autorisés. Utilisez*à la place.Remarque : Vous ne pouvez spécifier qu'un seul élément urlFilterouregexFilter.Remarque : Le urlFilterne doit être composé que de caractères ASCII. Cette valeur est mise en correspondance avec une URL dont l'hôte est encodé au format punycode (dans le cas de domaines internationalisés) et dont tous les autres caractères non ASCII sont encodés en UTF-8. Par exemple, lorsque l'URL de la requête est http://abc.рф?q=ф,urlFiltercorrespondra à 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. 
- 
    idchaîne Chaîne non vide identifiant de manière unique l'ensemble de règles. Les ID commençant par "_" sont réservés à un usage interne. 
- 
    chemin d'accèschaîne Chemin d'accès à l'ensemble de règles JSON par rapport au répertoire de l'extension. 
RulesMatchedDetails
Propriétés
- 
    rulesMatchedInfoRègles correspondant au filtre donné. 
TabActionCountUpdate
Propriétés
- 
    incrementTotal Quantité par laquelle incrémenter le nombre d'actions de l'onglet. Les valeurs négatives décrémentent le nombre. 
- 
    tabIdTotal Onglet pour lequel mettre à jour le nombre d'actions. 
TestMatchOutcomeResult
Propriétés
- 
    matchedRulesRègles (le cas échéant) correspondant à la demande hypothétique. 
TestMatchRequestDetails
Propriétés
- 
    initiateurchaîne facultatif URL de l'initiateur (le cas échéant) pour la requête hypothétique. 
- 
    methodRequestMethod facultatif Méthode HTTP standard de la requête hypothétique. La valeur par défaut est "get" pour les requêtes HTTP. Elle est ignorée pour les requêtes non HTTP. 
- 
    responseHeadersobject facultatif Chrome 129 et versions ultérieuresEn-têtes fournis par une réponse hypothétique si la requête n'est pas bloquée ni redirigée avant d'être envoyée. Représenté sous la forme d'un objet qui mappe un nom d'en-tête à une liste de valeurs de chaîne. Si aucune valeur n'est spécifiée, la réponse hypothétique renvoie des en-têtes de réponse vides, qui peuvent correspondre à des règles qui correspondent à l'absence d'en-têtes. Exemple : {"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}
- 
    tabIdnumber facultatif ID de l'onglet dans lequel la requête hypothétique a lieu. 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 liée à un onglet. 
- 
    typeType de ressource de la requête hypothétique. 
- 
    urlchaîne URL de la requête hypothétique. 
UnsupportedRegexReason
Décrit la raison pour laquelle une expression régulière donnée n'est pas acceptée.
Énumération
"syntaxError" 
 L'expression régulière est incorrecte au niveau de la syntaxe ou utilise des fonctionnalités non disponibles dans la syntaxe RE2.
"memoryLimitExceeded" 
 L'expression régulière dépasse la limite de mémoire.
UpdateRuleOptions
Propriétés
- 
    addRulesRule[] optional Règles à ajouter. 
- 
    removeRuleIdsnumber[] facultatif ID des règles à supprimer. Les ID non valides seront ignorés. 
UpdateRulesetOptions
Propriétés
UpdateStaticRulesOptions
Propriétés
URLTransform
Propriétés
- 
    fragmentchaîne facultatif Nouveau fragment pour la requête. Doit être vide (dans ce cas, le fragment existant est effacé) ou commencer par "#". 
- 
    hôtechaîne facultatif Nouvel hôte de la demande. 
- 
    mot de passechaîne facultatif Nouveau mot de passe pour la demande. 
- 
    chemin d'accèschaîne facultatif Nouveau chemin d'accès pour la requête. Si ce champ est vide, le chemin existant est effacé. 
- 
    portchaîne facultatif Nouveau port pour la requête. Si ce champ est vide, le port existant est effacé. 
- 
    requêtechaîne facultatif Nouvelle requête pour la demande. Doit être vide (dans ce cas, la requête existante est effacée) ou commencer par "?". 
- 
    queryTransformQueryTransform facultatif Ajoutez, supprimez ou remplacez des paires clé-valeur de requête. 
- 
    schémachaîne facultatif Nouveau schéma de la requête. Les valeurs autorisées sont "http", "https", "ftp" et "chrome-extension". 
- 
    nom d'utilisateurchaîne facultatif Nouveau nom d'utilisateur pour la requête. 
Propriétés
DYNAMIC_RULESET_ID
ID du groupe de règles pour les règles dynamiques ajoutées par l'extension.
Valeur
"_dynamic" 
 
GETMATCHEDRULES_QUOTA_INTERVAL
Intervalle de temps (en minutes) pendant lequel les appels MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules peuvent être effectués. 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. Toutes les règles au-delà de cette limite seront comptabilisées dans la limite globale des règles statiques.
Valeur
30000 
 
MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL
Nombre de fois que getMatchedRules peut être appelé au cours d'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 de Rulesets statiques qu'une extension peut activer à tout moment.
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 des 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
5 000 
 
MAX_NUMBER_OF_STATIC_RULESETS
Nombre maximal de Rulesets statiques qu'une extension peut spécifier dans la clé de 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
5 000 
 
MAX_NUMBER_OF_UNSAFE_SESSION_RULES
Nombre maximal de règles "non sécurisées" de portée session qu'une extension peut ajouter.
Valeur
5 000 
 
SESSION_RULESET_ID
ID du règlement pour les règles de portée de session ajoutées par l'extension.
Valeur
"_session" 
 
Méthodes
getAvailableStaticRuleCount()
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
callback?: function,
): Promise<number>
Renvoie le nombre de règles statiques qu'une extension peut activer avant d'atteindre la limite globale de règles statiques.
Paramètres
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(count: number) => void - 
    nombreTotal 
 
- 
    
Renvoie
- 
            Promise<number> Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
getDisabledRuleIds()
chrome.declarativeNetRequest.getDisabledRuleIds(
options: GetDisabledRuleIdsOptions,
callback?: function,
): Promise<number[]>
Renvoie la liste des règles statiques actuellement désactivées dans le Ruleset donné.
Paramètres
- 
    optionsSpécifie le ruleset à interroger. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(disabledRuleIds: number[]) => void - 
    disabledRuleIdsnumber[] 
 
- 
    
Renvoie
- 
            Promise<number[]> Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
getDynamicRules()
chrome.declarativeNetRequest.getDynamicRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
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
- 
    filtreGetRulesFilter facultatif Chrome 111 et versions ultérieuresObjet permettant de filtrer la liste des règles récupérées. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(rules: Rule[]) => void - 
    règlesRule[] 
 
- 
    
Renvoie
- 
            Promise<Rule[]> Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
getEnabledRulesets()
chrome.declarativeNetRequest.getEnabledRulesets(
callback?: function,
): Promise<string[]>
Renvoie les ID de l'ensemble actuel de règles statiques activées.
Paramètres
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(rulesetIds: string[]) => void - 
    rulesetIdschaîne[] 
 
- 
    
Renvoie
- 
            Promise<string[]> Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
getMatchedRules()
chrome.declarativeNetRequest.getMatchedRules(
filter?: MatchedRulesFilter,
callback?: function,
): Promise<RulesMatchedDetails>
Renvoie 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 le tabId spécifié dans filter. Remarque : Les règles non associées à un document actif et mises en correspondance il y a plus de cinq minutes ne seront pas renvoyées.
Paramètres
- 
    filtreMatchedRulesFilter facultatif Objet permettant de filtrer la liste des règles correspondantes. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(details: RulesMatchedDetails) => void - 
    détails
 
- 
    
Renvoie
- 
            Promise<RulesMatchedDetails> Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
getSessionRules()
chrome.declarativeNetRequest.getSessionRules(
filter?: GetRulesFilter,
callback?: function,
): Promise<Rule[]>
Renvoie l'ensemble actuel de règles de portée de 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
- 
    filtreGetRulesFilter facultatif Chrome 111 et versions ultérieuresObjet permettant de filtrer la liste des règles récupérées. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(rules: Rule[]) => void - 
    règlesRule[] 
 
- 
    
Renvoie
- 
            Promise<Rule[]> Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
isRegexSupported()
chrome.declarativeNetRequest.isRegexSupported(
regexOptions: RegexOptions,
callback?: function,
): Promise<IsRegexSupportedResult>
Vérifie si l'expression régulière donnée sera acceptée comme condition de règle regexFilter.
Paramètres
- 
    regexOptionsExpression régulière à vérifier. 
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(result: IsRegexSupportedResult) => void - 
    résultat
 
- 
    
Renvoie
- 
            Promise<IsRegexSupportedResult> Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
setExtensionActionOptions()
chrome.declarativeNetRequest.setExtensionActionOptions(
options: ExtensionActionOptions,
callback?: function,
): Promise<void>
Configure si le nombre d'actions pour les onglets doit être affiché sous forme de texte du badge de l'action d'extension et fournit un moyen d'incrémenter ce nombre d'actions.
Paramètres
- 
    options
- 
    callbackfunction facultatif Chrome 89 et versions ultérieuresLe paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
testMatchOutcome()
chrome.declarativeNetRequest.testMatchOutcome(
request: TestMatchRequestDetails,
callback?: function,
): Promise<TestMatchOutcomeResult>
Vérifie si l'une des règles declarativeNetRequest de l'extension correspondrait à une requête hypothétique. Remarque : Cette fonctionnalité n'est disponible que pour les extensions non compressées, car elle n'est destinée qu'à être utilisée lors du développement d'extensions.
Paramètres
- 
    request
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :(result: TestMatchOutcomeResult) => void - 
    résultat
 
- 
    
Renvoie
- 
            Promise<TestMatchOutcomeResult> Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
updateDynamicRules()
chrome.declarativeNetRequest.updateDynamicRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Modifie l'ensemble actuel de règles dynamiques pour l'extension. Les règles dont les ID sont listés dans options.removeRuleIds sont d'abord supprimées, puis les règles fournies dans options.addRules sont ajoutées. Remarques :
- Cette mise à jour s'effectue 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 de l'extension.
- 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_RULEScorrespond au nombre maximal de règles dynamiques qu'une extension peut ajouter. Le nombre de règles non sécurisées ne doit pas dépasser- MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES.
Paramètres
- 
    optionsChrome 87 et versions ultérieures
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
updateEnabledRulesets()
chrome.declarativeNetRequest.updateEnabledRulesets(
options: UpdateRulesetOptions,
callback?: function,
): Promise<void>
Met à jour l'ensemble des ensembles de règles statiques activés pour l'extension. Les ensembles de règles dont les ID sont listés dans options.disableRulesetIds sont d'abord supprimés, puis ceux listés dans options.enableRulesetIds sont ajoutés.
Notez que l'ensemble des ensembles de règles statiques activés est conservé d'une session à l'autre, mais pas d'une mise à jour d'extension à l'autre. En d'autres termes, la clé de fichier manifeste rule_resources déterminera l'ensemble des ensembles de règles statiques activés à chaque mise à jour d'extension.
Paramètres
- 
    optionsChrome 87 et versions ultérieures
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
updateSessionRules()
chrome.declarativeNetRequest.updateSessionRules(
options: UpdateRuleOptions,
callback?: function,
): Promise<void>
Modifie l'ensemble actuel de règles de portée de session pour l'extension. Les règles dont les ID sont listés dans options.removeRuleIds sont d'abord supprimées, puis les règles fournies dans options.addRules sont ajoutées. Remarques :
- Cette mise à jour s'effectue 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_RULEScorrespond au nombre maximal de règles de session qu'une extension peut ajouter.
Paramètres
- 
    options
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Chrome 91 et versions ultérieuresLes promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
updateStaticRules()
chrome.declarativeNetRequest.updateStaticRules(
options: UpdateStaticRulesOptions,
callback?: function,
): Promise<void>
Désactive et active des règles statiques individuelles dans 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
- 
    callbackfunction facultatif Le paramètre callbackse présente comme suit :() => void 
Renvoie
- 
            Promise<void> Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels. 
Événements
onRuleMatchedDebug
chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
callback: function,
)
Déclenché lorsqu'une règle correspond à une requête. Cette option n'est disponible que pour les extensions décompressées disposant de l'autorisation "declarativeNetRequestFeedback", car elle est destinée à être utilisée à des fins de débogage uniquement.
Paramètres
- 
    callbackfonction Le paramètre callbackse présente comme suit :(info: MatchedRuleInfoDebug) => void - 
    info
 
-