Description
Utilisez l'API chrome.contentSettings
pour modifier les paramètres qui déterminent si les sites Web peuvent utiliser des fonctionnalités telles que les cookies, le code 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 modèles 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 des modèles de paramètres de contenu est la même que celle des modèles de correspondance, à quelques différences près :
- Pour les URL
http
,https
etftp
, le chemin d'accès doit être un caractère générique (/*
). Pour les URLfile
, il doit être entièrement spécifié et ne doit pas contenir de caractères génériques. - Contrairement aux modèles de correspondance, les modèles de paramètres de contenu peuvent spécifier un numéro de port. Si vous spécifiez un numéro de port, le format ne correspond qu'aux sites Web associés à ce port. Si aucun numéro de port n'est spécifié, le format correspond à tous les ports.
Priorité des modèles
Lorsque plusieurs règles de configuration du contenu s'appliquent à un site donné, la règle avec le format le plus spécifique est prioritaire.
Par exemple, les formats suivants sont classés par ordre de priorité:
https://www.example.com/*
https://*.example.com/*
(correspondant à example.com et à tous les sous-domaines)<all_urls>
(correspond à 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 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é:
https://www.example.com:*/*
Spécifie le nom d'hôte et le schéma.*:/www.example.com:123/*
Moins élevée, car bien qu'elle spécifie le nom d'hôte, elle ne spécifie pas le schéma.https://*.example.com:123/*
Partie inférieure, car bien qu'elle 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, les paramètres de contentSettings.notifications
sont basés sur l'URL affichée dans l'omnibox. Cette URL est appelée "principale".
Certains types de contenus peuvent prendre en compte d'autres URL. Par exemple, la possibilité pour un site de définir une contentSettings.cookies
dépend de l'URL de la requête HTTP (qui est l'URL principale dans ce cas) ainsi que de l'URL affichée dans l'omnibox (URL "secondaire").
Si plusieurs règles comportent des modèles principaux et secondaires, la règle avec le modèle principal le plus spécifique prévaut. Si plusieurs règles ont le même format principal, la règle associée au format secondaire le plus spécifique est prioritaire. Par exemple, la liste suivante de paires de modèles principal/secondaire est triée par priorité:
Priorité | Format principal | Format secondaire |
---|---|---|
1 | https://www.moose.com/* , | https://www.wombat.com/* |
2 | https://www.moose.com/* , | <all_urls> |
3 | <all_urls> , | https://www.wombat.com/* |
4 | <all_urls> , | <all_urls> |
Les modèles secondaires ne sont pas compatibles avec le paramètre de contenu des images.
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 ressource 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 d'abord vérifiés. Si aucun paramètre n'est trouvé pour le plug-in spécifique, 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 modèle <all_urls>
, elle prévaut 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 changer en fonction de l'ensemble des plug-ins installés sur l'ordinateur de l'utilisateur, mais Chrome essaie de maintenir les identifiants stables entre les mises à jour des plug-ins.
Exemples
Pour essayer cette API, installez l'exemple d'API contentSettings à partir du dépôt chrome-extension-samples.
Types
AutoVerifyContentSetting
Énumération
"allow"
CameraContentSetting
Énumération
"allow"
"block"
ClipboardContentSetting
Énumération
"allow"
"block"
"ask"
ContentSetting
Propriétés
-
effacer
vide
PromesseSupprimez toutes les règles de paramètres de contenu définies par cette extension.
La fonction
clear
ressemble à ceci :(details: object, callback?: function) => {...}
-
détails
objet
-
champ d'application
Portée facultatif
Permet d'effacer le paramètre (par défaut: normal).
-
-
rappel
function facultatif
Le paramètre
callback
ressemble à ceci :() => void
-
retours
Promise<void>
Chrome 96 ou version ultérieureLes promesses sont compatibles avec la version 3 du fichier manifeste et les versions ultérieures, mais des rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
-
-
get
vide
PromesseRécupère le paramètre de contenu actuel pour une paire d'URL donnée.
La fonction
get
ressemble à ceci :(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é. Correspond par défaut à l'URL principale. 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
ressemble à ceci :(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<object>
Chrome 96 ou version ultérieureLes promesses sont compatibles avec la version 3 du fichier manifeste 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.
-
-
getResourceIdentifiers
vide
PromesseLa 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
Promise<ResourceIdentifier[]>
Chrome 96 ou version ultérieureLes promesses sont compatibles avec Manifest V3 et versions ultérieures, mais les rappels sont fournis pour assurer la rétrocompatibilité. Vous ne pouvez pas utiliser les deux sur le même appel de fonction. La promesse est résolue avec le même type que celui transmis au rappel.
-
-
set
vide
PromesseApplique une nouvelle règle de paramètre de contenu.
La fonction
set
ressemble à ceci :(details: object, callback?: function) => {...}
-
détails
objet
-
primaryPattern
chaîne
Format de l'URL principale. Pour en savoir plus sur le format d'un modèle, consultez Modèles de paramètres de contenu.
-
resourceIdentifier
ResourceIdentifier facultatif
Identifiant de la ressource pour le type de contenu.
-
champ d'application
Portée facultatif
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 des paramètres 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
ressemble à ceci :() => void
-
retours
Promise<void>
Chrome 96 ou version ultérieureLes promesses sont compatibles avec la version 3 du fichier manifeste 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 se résout avec le même type que celui transmis au rappel.
-
CookiesContentSetting
Énumération
"allow"
"block"
FullscreenContentSetting
Valeur
"allow"
ImagesContentSetting
Énumération
"allow"
JavascriptContentSetting
Énumération
"allow"
LocationContentSetting
Énumération
"allow"
"block"
MicrophoneContentSetting
Énumération
"allow"
"block"
MouselockContentSetting
Valeur
"allow"
MultipleAutomaticDownloadsContentSetting
Énumération
"allow"
"block"
NotificationsContentSetting
Énumération
"allow"
"block"
PluginsContentSetting
Valeur
PopupsContentSetting
Énumération
"allow"
PpapiBrokerContentSetting
Valeur
"block"
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
Champ d'application de ContentSetting. L'un des éléments suivants :
regular
: paramètre pour le 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 pour le profil de navigation privée qui ne peut être défini que pendant une session de navigation privée et qui est supprimé à la fin de la session (remplace les paramètres standards).
Énumération
"regular"
Propriétés
automaticDownloads
Indique si les sites sont autorisés à télécharger automatiquement plusieurs fichiers. L'une des options suivantes :
allow
: Autoriser les sites à télécharger automatiquement plusieurs fichiers
block
: Ne pas autoriser les sites à télécharger automatiquement plusieurs fichiers
ask
: Demander à un site s'il souhaite télécharger automatiquement des fichiers après le premier
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
Indique si les sites sont autorisés à utiliser l'API Private State Tokens. L'une des options allow
: autoriser les sites à utiliser l'API Private State Tokens ; block
: empêcher 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 .
Type
camera
Indique si les sites sont autorisés à accéder à l'appareil photo. L'une des options suivantes :
allow
: Autoriser les sites à accéder à l'appareil photo
block
: Ne pas autoriser les sites à accéder à l'appareil photo
ask
: Demander à un site s'il 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: Le paramètre "allow" n'est pas valide si les deux formats sont ''.
clipboard
Indique si les sites sont autorisés à accéder au presse-papiers via les fonctionnalités avancées de l'API Async Clipboard. Les fonctionnalités avancées incluent tout ce qui n'est pas l'écriture de formats intégrés après un geste de l'utilisateur, c'est-à-dire la possibilité de lire, d'écrire des formats personnalisés et d'écrire sans geste de l'utilisateur. L'une des options 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 l'URL du document qui a demandé l'accès au presse-papiers. L'URL secondaire n'est pas utilisée.
cookies
Indique si les sites Web sont autorisés à définir des cookies et d'autres données locales. L'une des options 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 est 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
Indique si les images doivent être affichées. L'un des éléments suivants : allow
: afficher les images, block
: ne pas afficher les images.
La valeur par défaut est allow
.
L'URL principale est l'URL du frame de premier niveau. L'URL secondaire est l'URL de l'image.
Type
javascript
Permet d'exécuter ou non JavaScript. L'une des options suivantes :
allow
: exécuter JavaScript,
block
: ne pas exécuter 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.
Type
location
Indique si la géolocalisation doit être autorisée. L'une des options suivantes :
allow
: Autoriser les sites à suivre votre position géographique
block
: Interdire aux sites de suivre votre position géographique
ask
: Demander avant d'autoriser les sites à suivre votre position géographique
La valeur par défaut est ask
.
L'URL principale est l'URL du document qui a demandé des données de localisation. L'URL secondaire est l'URL du frame de niveau supérieur (qui peut ou non différer de l'URL de requête).
microphone
Permet d'autoriser ou non les sites à accéder au micro. L'une des options suivantes :
allow
: Autoriser les sites à accéder au micro,
block
: Ne pas autoriser les sites à accéder au micro,
ask
: Demander quand un site souhaite accéder au micro.
La valeur par défaut est ask
.
L'URL principale est l'URL du document ayant demandé l'accès au micro. L'URL secondaire n'est pas utilisée.
REMARQUE : Le paramètre "allow" n'est pas valide si les deux formats sont ''.
Type
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
.
Type
notifications
Permet d'autoriser ou non les sites à afficher des notifications sur le bureau. L'une des options 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 à un site s'il souhaite afficher des notifications sur le bureau.
La valeur par défaut est ask
.
L'URL principale est l'URL du document qui souhaite afficher la notification. L'URL secondaire n'est pas utilisée.
Type
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.
Type
popups
Permet d'autoriser ou non les sites à afficher des fenêtres pop-up. L'une des options suivantes :
allow
: autoriser les sites à afficher des pop-ups,
block
: empêcher les sites d'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.