chrome.contentSettings

Description

Utilisez l'API chrome.contentSettings pour modifier les paramètres qui déterminent si les sites Web peuvent utiliser ou non des fonctionnalités telles que les cookies, JavaScript et les plug-ins. De manière plus générale, les paramètres de contenu vous permettent de personnaliser le comportement de Chrome pour chaque site plutôt que de manière globale.

Autorisations

contentSettings

Pour utiliser l'API, vous devez déclarer l'autorisation "contentSettings" dans le fichier manifeste de votre extension. Exemple :

{
  "name": "My extension",
  ...
  "permissions": [
    "contentSettings"
  ],
  ...
}

Concepts et utilisation

Schémas des paramètres de contenu

Vous pouvez utiliser des formats pour spécifier les sites Web concernés par chaque paramètre de contenu. Par exemple : https://*.youtube.com/* spécifie youtube.com et tous ses sous-domaines. La syntaxe du contenu fonctionne de la même manière que pour les motifs de correspondance, à quelques différences près:

  • Pour les URL http, https et ftp, le chemin d'accès doit être un caractère générique (/*). Pour les URL file, le chemin d'accès doit être entièrement spécifié et ne doit pas contenir de caractères génériques.
  • Contrairement aux formats de correspondance, les formats de paramètres de contenu peuvent spécifier un numéro de port. Si un port est spécifié, le format correspond uniquement aux sites Web utilisant ce port. Si aucun numéro de port n'est spécifié, le modèle correspond à tous les ports.

Priorité des modèles

Lorsque plusieurs règles de paramétrage de contenu s'appliquent pour un site donné, la règle dont le paramètre est prioritaire.

Par exemple, les formats suivants sont classés par ordre de priorité:

  1. https://www.example.com/*
  2. https://*.example.com/* (correspondant à example.com et à tous les sous-domaines)
  3. <all_urls> (correspondant à toutes les URL)

Trois types de caractères génériques affectent la spécificité d'un modèle:

  • Caractères génériques dans le port (par exemple, https://www.example.com:*/*)
  • Caractères génériques dans le schéma (par exemple, *://www.example.com:123/*)
  • Caractères génériques dans le nom d'hôte (par exemple, https://*.example.com:123/*)

Si un modèle est plus spécifique qu’un autre modèle dans une partie mais moins spécifique dans une autre partie, les différentes parties sont vérifiées dans l'ordre suivant: nom d'hôte, schéma, port. Par exemple, les formats suivants sont classés par ordre de priorité:

  1. https://www.example.com:*/* Spécifie le nom d'hôte et le schéma.
  2. *:/www.example.com:123/* Pas aussi élevée, car même si elle spécifie le nom d'hôte, elle ne spécifie pas le schéma.
  3. https://*.example.com:123/* Inférieur car, bien qu'il spécifie le port et le schéma, le nom d'hôte contient un caractère générique.

Schémas principaux et secondaires

L'URL prise en compte pour déterminer le paramètre de contenu à appliquer dépend du type de contenu. Par exemple, pour contentSettings.notifications, les paramètres sont basés sur l'URL affichée dans champ polyvalent. Il s'agit de l'URL "principale". URL.

Certains types de contenus peuvent prendre en compte d'autres URL. Par exemple, si un site est autorisé à définir un contentSettings.cookies est décidé en fonction de l'URL de la requête HTTP (qui est la l'URL principale, dans ce cas) ainsi que l'URL affichée dans l'omnibox (l'URL "secondaire") URL).

Si plusieurs règles comportent des formats principal et secondaire, la règle associée au format principal le plus spécifique est prioritaire. Si plusieurs règles ont le même format principal, la règle associée au un modèle secondaire plus spécifique est prioritaire. Par exemple, la liste suivante de les paires de formats principal/secondaire sont classées par priorité:

PrioritéFormat principalFormat secondaire
1https://www.moose.com/*,https://www.wombat.com/*
2https://www.moose.com/*,<all_urls>
3<all_urls>,https://www.wombat.com/*
4<all_urls>,<all_urls>

Identifiants de ressources

Les identifiants de ressources vous permettent de spécifier des paramètres de contenu pour des sous-types spécifiques d'un type de contenu. Actuellement, le seul type de contenu compatible avec les identifiants de ressources est contentSettings.plugins, où un identifiant de ressource identifie un plug-in spécifique. Lorsque vous appliquez des paramètres de contenu, les paramètres du plug-in spécifique sont cochés. Si aucun paramètre n'est trouvé pour le paramètre les paramètres de contenu généraux des plug-ins sont vérifiés.

Par exemple, si une règle de paramètre de contenu comporte l'identifiant de ressource adobe-flash-player et le paramètre modèle <all_urls>, elle est prioritaire sur une règle sans identifiant de ressource et le modèle https://www.example.com/*, même si ce modèle est plus spécifique.

Vous pouvez obtenir la liste des identifiants de ressources pour un type de contenu en appelant la méthode contentSettings.ContentSetting.getResourceIdentifiers(). La liste renvoyée peut être remplacée par L'ensemble des plug-ins installés sur la machine de l'utilisateur, mais Chrome tente de garder les identifiants stables entre les mises à jour de plug-ins.

Exemples

Pour essayer cette API, installez l'exemple d'API contentSettings à partir de chrome-extension-samples. un dépôt de clés.

Types

AutoVerifyContentSetting

Chrome 113 et versions ultérieures

Énumération

"allow"

"bloquer"

CameraContentSetting

Chrome (version 46 ou ultérieure)

Énumération

"allow"

"bloquer"

"demander"

ClipboardContentSetting

Chrome 121 ou version ultérieure

Énumération

"allow"

"bloquer"

"demander"

ContentSetting

Propriétés

  • effacer

    vide

    <ph type="x-smartling-placeholder"></ph> Promesse

    Efface toutes les règles des paramètres de contenu définies par cette extension.

    La fonction clear se présente comme suit:

    (details: object, callback?: function) => {...}

    • détails

      objet

      • champ d'application

        Permet d'effacer le paramètre (par défaut: normal).

    • rappel

      function facultatif

      Le paramètre callback se présente comme suit:

      () => void

    • retours

      Promesse<void>

      Chrome 96 ou version ultérieure

      Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.

  • get

    vide

    <ph type="x-smartling-placeholder"></ph> Promesse

    Récupère le paramètre de contenu actuel pour une paire d'URL donnée.

    La fonction get se présente comme suit:

    (details: object, callback?: function) => {...}

    • détails

      objet

      • navigation privée

        Booléen facultatif

        Vérifiez si les paramètres de contenu doivent être vérifiés pour une session de navigation privée. (faux par défaut)

      • primaryUrl

        chaîne

        URL principale pour laquelle le paramètre de contenu doit être récupéré. Notez que la signification d'une URL principale dépend du type de contenu.

      • resourceIdentifier

        ResourceIdentifier facultatif

        Identifiant plus spécifique du type de contenu pour lequel les paramètres doivent être récupérés.

      • secondaryUrl

        chaîne facultatif

        URL secondaire pour laquelle le paramètre de contenu doit être récupéré. Par défaut, l'URL principale est utilisée. Notez que la signification d'une URL secondaire dépend du type de contenu. Tous les types de contenu n'utilisent pas d'URL secondaires.

    • rappel

      function facultatif

      Le paramètre callback se présente comme suit:

      (details: object) => void

      • détails

        objet

        • Paramètre

          T

          Paramètre de contenu. Consultez la description des objets ContentSetting individuels pour connaître les valeurs possibles.

    • retours

      Promise&lt;object&gt;

      Chrome 96 ou version ultérieure

      Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.

  • getResourceIdentifiers

    vide

    <ph type="x-smartling-placeholder"></ph> Promesse

    La fonction getResourceIdentifiers se présente comme suit:

    (callback?: function) => {...}

    • rappel

      function facultatif

      Le paramètre callback se présente comme suit:

      (resourceIdentifiers?: ResourceIdentifier[]) => void

      • resourceIdentifiers

        ResourceIdentifier[] facultatif

        Liste d'identifiants de ressources pour ce type de contenu, ou undefined si ce type de contenu n'utilise pas d'identifiants de ressources.

    • retours
      Chrome 96 ou version ultérieure

      Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.

  • set

    vide

    <ph type="x-smartling-placeholder"></ph> Promesse

    Applique une nouvelle règle de paramètre de contenu.

    La fonction set se présente comme suit:

    (details: object, callback?: function) => {...}

    • détails

      objet

      • primaryPattern

        chaîne

        Format de l'URL principale. Pour en savoir plus sur le format des formats, consultez la section Formats de paramètre de contenu.

      • resourceIdentifier

        ResourceIdentifier facultatif

        Identifiant de ressource pour le type de contenu.

      • champ d'application

        Où définir le paramètre (par défaut: normal).

      • secondaryPattern

        chaîne facultatif

        Format de l'URL secondaire. La valeur par défaut correspond à toutes les URL. Pour en savoir plus sur le format des formats, consultez la section Formats de paramètre de contenu.

      • Paramètre

        tous

        Paramètre appliqué par cette règle. Consultez la description des objets ContentSetting individuels pour connaître les valeurs possibles.

    • rappel

      function facultatif

      Le paramètre callback se présente comme suit:

      () => void

    • retours

      Promesse<void>

      Chrome 96 ou version ultérieure

      Les promesses sont prises en charge dans Manifest V3 et versions ultérieures, mais les rappels sont fournis pour rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La la promesse est résolue avec le même type que celui transmis au rappel.

CookiesContentSetting

Chrome (version 44 ou ultérieure)

Énumération

"allow"

"bloquer"

&quot;session_only&quot;

FullscreenContentSetting

Chrome (version 44 ou ultérieure)

Valeur

"allow"

ImagesContentSetting

Chrome (version 44 ou ultérieure)

Énumération

"allow"

"bloquer"

JavascriptContentSetting

Chrome (version 44 ou ultérieure)

Énumération

"allow"

"bloquer"

LocationContentSetting

Chrome (version 44 ou ultérieure)

Énumération

"allow"

"bloquer"

"demander"

MicrophoneContentSetting

Chrome (version 46 ou ultérieure)

Énumération

"allow"

"bloquer"

"demander"

MouselockContentSetting

Chrome (version 44 ou ultérieure)

Valeur

"allow"

MultipleAutomaticDownloadsContentSetting

Chrome (version 44 ou ultérieure)

Énumération

"allow"

"bloquer"

"demander"

NotificationsContentSetting

Chrome (version 44 ou ultérieure)

Énumération

"allow"

"bloquer"

"demander"

PluginsContentSetting

Chrome (version 44 ou ultérieure)

Valeur

"bloquer"

PopupsContentSetting

Chrome (version 44 ou ultérieure)

Énumération

"allow"

"bloquer"

PpapiBrokerContentSetting

Chrome (version 44 ou ultérieure)

Valeur

"bloquer"

ResourceIdentifier

contentSettings.plugins est le seul type de contenu utilisant des identifiants de ressource. Pour en savoir plus, consultez la page Identifiants de ressources.

Propriétés

  • description

    chaîne facultatif

    Description lisible de la ressource.

  • id

    chaîne

    Identifiant de ressource pour le type de contenu donné.

Scope

Chrome (version 44 ou ultérieure)

Champ d'application de ContentSetting. L'une des valeurs suivantes : regular: paramètre du profil standard (qui est hérité par le profil de navigation privée s'il n'est pas remplacé ailleurs). incognito\_session\_only: paramètre du profil de navigation privée qui ne peut être défini que lors d'une session de navigation privée et qui est supprimé à la fin de celle-ci (remplace les paramètres standards).

Énumération

"standard"

"incognito_session_only"

Propriétés

automaticDownloads

Permet d'autoriser ou non les sites à télécharger automatiquement plusieurs fichiers. L'une des valeurs suivantes : allow: autoriser le téléchargement automatique de plusieurs fichiers par les sites block: ne pas autoriser les sites à télécharger plusieurs fichiers automatiquement ask: demander lorsqu'un site souhaite télécharger des fichiers automatiquement après le premier fichier La valeur par défaut est ask. L'URL principale est celle du cadre de premier niveau. L'URL secondaire n'est pas utilisée.

autoVerify

Chrome 113 et versions ultérieures

Permet d'autoriser ou non les sites à utiliser l'API Private State Tokens. L'une des valeurs suivantes : allow: autorise les sites à utiliser l'API Private State Tokens. block: empêche les sites d'utiliser l'API Private State Tokens. La valeur par défaut est allow. L'URL principale est celle du cadre de premier niveau. L'URL secondaire n'est pas utilisée. REMARQUE: Lorsque vous appelez set(), le format principal doit être .

camera

Chrome (version 46 ou ultérieure)

Permet d'autoriser ou non les sites à accéder à l'appareil photo. L'une des valeurs suivantes : allow: autoriser les sites à accéder à l'appareil photo block: ne pas autoriser les sites à accéder à l'appareil photo ask: demander lorsqu'un site souhaite accéder à l'appareil photo La valeur par défaut est ask. L'URL principale est celle du document qui a demandé l'accès à l'appareil photo. L'URL secondaire n'est pas utilisée. REMARQUE: La commande "allow" n'est pas valide si les deux formats sont ''.

clipboard

Chrome 121 ou version ultérieure

Permet d'autoriser ou non les sites à accéder au presse-papiers via les fonctionnalités avancées de l'API Async Clipboard. "Avancé" les fonctionnalités incluent autre chose que l'écriture de formats intégrés après un geste de l'utilisateur, c'est-à-dire la lecture, l'écriture de formats personnalisés et la possibilité d'écrire sans geste de l'utilisateur. L'une des valeurs suivantes : allow: autoriser les sites à utiliser les fonctionnalités avancées du presse-papiers block: ne pas autoriser les sites à utiliser les fonctionnalités avancées du presse-papiers, ask: demander lorsqu'un site souhaite utiliser les fonctionnalités avancées du presse-papiers. La valeur par défaut est ask. L'URL principale est celle du document qui a demandé l'accès au presse-papiers. L'URL secondaire n'est pas utilisée.

cookies

Permet d'autoriser ou non la définition de cookies et d'autres données locales par les sites Web. L'une des valeurs suivantes : allow: accepter les cookies, block: bloquer les cookies, session\_only: accepter les cookies uniquement pour la session en cours. La valeur par défaut est allow. L'URL principale est celle qui représente l'origine du cookie. L'URL secondaire correspond à l'URL du cadre de premier niveau.

fullscreen

Obsolète. N'a plus aucun effet. L'autorisation plein écran est désormais accordée automatiquement pour tous les sites. La valeur est toujours allow.

images

Permet d'afficher ou non les images. L'une des valeurs suivantes : allow: afficher les images block: n'affiche pas les images. La valeur par défaut est allow. L'URL principale est celle du cadre de premier niveau. L'URL secondaire correspond à l'URL de l'image.

javascript

Permet d'exécuter ou non JavaScript. L'une des valeurs suivantes : allow: exécutez JavaScript. block: n'exécutez pas JavaScript. La valeur par défaut est allow. L'URL principale est celle du cadre de premier niveau. L'URL secondaire n'est pas utilisée.

location

Autoriser ou non la géolocalisation. L'une des valeurs suivantes : allow: autoriser les sites à suivre votre position géographique block: ne pas autoriser les sites à suivre votre position géographique ask: demandez avant d'autoriser les sites à suivre votre position géographique. La valeur par défaut est ask. L'URL principale est celle du document qui a demandé des données de localisation. L'URL secondaire est l'URL du cadre de premier niveau (qui peut être différente de l'URL de demande).

microphone

Chrome (version 46 ou ultérieure)

Permet d'autoriser ou non les sites à accéder au micro. L'une des valeurs suivantes : allow: autoriser les sites à accéder au micro block: ne pas autoriser les sites à accéder au micro, ask: demander lorsqu'un site veut accéder au micro La valeur par défaut est ask. L'URL principale est celle du document qui a demandé l'accès au micro. L'URL secondaire n'est pas utilisée. REMARQUE: La commande "allow" n'est pas valide si les deux formats sont ''.

mouselock

Obsolète. N'a plus aucun effet. L'autorisation de verrouillage de la souris est désormais accordée automatiquement pour tous les sites. La valeur est toujours allow.

notifications

Permet d'autoriser ou non les sites à afficher des notifications sur le bureau. L'une des valeurs suivantes : allow: autoriser les sites à afficher des notifications sur le bureau block: ne pas autoriser les sites à afficher des notifications sur le bureau ask: demander lorsqu'un site souhaite afficher des notifications sur le bureau La valeur par défaut est ask. L'URL principale est celle du document dans lequel la notification s'affiche. L'URL secondaire n'est pas utilisée.

plugins

Obsolète. Avec la suppression de Flash dans Chrome 88, cette autorisation n'a plus aucun effet. La valeur est toujours block. Les appels à set() et clear() seront ignorés.

popups

Permet d'autoriser ou non les sites à afficher des fenêtres pop-up. L'une des valeurs suivantes : allow: autoriser les sites à afficher des pop-ups, block: ne pas autoriser les sites à afficher des pop-ups. La valeur par défaut est block. L'URL principale est celle du cadre de premier niveau. L'URL secondaire n'est pas utilisée.

unsandboxedPlugins

Obsolète. Auparavant, il était impossible d'autoriser ou non les sites à exécuter des plug-ins sans bac à sable. Toutefois, comme le processus de l'agent Flash a été supprimé dans Chrome 88, cette autorisation n'a plus aucun effet. La valeur est toujours block. Les appels à set() et clear() seront ignorés.