Pour utiliser la plupart des API et fonctionnalités d'extension, vous devez déclarer l'intent de votre extension dans les champs d'autorisation du fichier manifeste. Les extensions peuvent demander les catégories d'autorisations suivantes, spécifiées à l'aide de leurs clés de fichier manifeste respectives:
"permissions"
- Contient les éléments d'une liste de chaînes connues. Les modifications peuvent déclencher un avertissement.
"optional_permissions"
- Accordée par l'utilisateur au moment de l'exécution, et non au moment de l'installation.
"content_scripts.matches"
- Contient un ou plusieurs formats de correspondance qui permettent à des scripts de contenu d'être injectés dans un ou plusieurs hôtes. Les modifications peuvent déclencher un avertissement.
"host_permissions"
- Contient un ou plusieurs formats de correspondance qui donnent accès à un ou plusieurs hôtes. Les modifications peuvent déclencher un avertissement.
"optional_host_permissions"
- Accordée par l'utilisateur au moment de l'exécution, et non au moment de l'installation.
Les autorisations permettent de limiter les dommages si votre extension est compromise par un logiciel malveillant. Certains avertissements d'autorisation sont présentés aux utilisateurs avec leur consentement avant l'installation ou au moment de l'exécution, comme indiqué dans la section Autorisation avec avertissements.
Pensez à utiliser des autorisations facultatives lorsque la fonctionnalité de votre extension le permet, afin de permettre aux utilisateurs de contrôler l'accès aux ressources et aux données.
Si une API nécessite une autorisation, sa documentation explique comment la déclarer. Pour obtenir un exemple, consultez la page API Storage.
Manifest
Voici un exemple de section sur les autorisations d'un fichier manifeste:
manifest.json:
{
"name": "Permissions Extension",
...
"permissions": [
"activeTab",
"contextMenus",
"storage"
],
"optional_permissions": [
"topSites",
],
"host_permissions": [
"https://www.developer.chrome.com/*"
],
"optional_host_permissions":[
"https://*/*",
"http://*/*"
],
...
"manifest_version": 3
}
Autorisations d'hôte
Les autorisations d'hôte permettent aux extensions d'interagir avec les formats correspondants de l'URL. Certaines API Chrome nécessitent des autorisations d'hôte en plus de leurs propres autorisations d'API, qui sont documentées sur chaque page de référence. Voici quelques exemples :
- Envoyez des requêtes
fetch()
à partir des pages du service worker et des pages des extensions. - Lisez et interrogez les propriétés sensibles des onglets (URL, titre et favIconUrl) à l'aide de l'API
chrome.tabs
. - Injectez un script de contenu par programmation.
- Surveillez et contrôlez les requêtes réseau avec l'API
chrome.webRequest
. - Accédez aux cookies avec l'API
chrome.cookies
. - Redirigez et modifiez les requêtes et les en-têtes de réponse à l'aide de l'API
chrome.declarativeNetRequest
.
Autorisations avec avertissements
Lorsqu'une extension demande plusieurs autorisations et qu'un grand nombre d'entre elles affichent des avertissements lors de l'installation, l'utilisateur voit une liste d'avertissements, comme dans l'exemple suivant:
Les utilisateurs sont plus susceptibles de faire confiance à une extension avec des avertissements limités ou lorsque les autorisations leur sont expliquées. Envisagez d'implémenter des autorisations facultatives ou une API moins puissante pour éviter les avertissements alarmants. Pour connaître les bonnes pratiques concernant les avertissements, consultez Consignes concernant les avertissements concernant les autorisations. Les avertissements spécifiques sont répertoriés avec les autorisations auxquelles ils s'appliquent dans la liste de référence Autorisations.
L'ajout ou la modification de modèles de correspondance dans les champs "host_permissions"
et "content_scripts.matches"
du fichier manifeste déclenche également un avertissement. Pour en savoir plus, consultez la section Mettre à jour les autorisations.
Autorisez l'accès
Si votre extension doit s'exécuter sur des URL file://
ou fonctionner en mode navigation privée, les utilisateurs doivent autoriser l'extension à accéder à sa page d'informations. Pour savoir comment ouvrir la page d'informations, consultez Gérer vos extensions.
Autoriser l'accès aux URL de fichier et aux pages de navigation privée
- Effectuez un clic droit sur l'icône de l'extension dans Chrome.
Sélectionnez Gérer l'extension.
Faites défiler la page vers le bas pour activer l'accès aux URL de fichiers ou le mode navigation privée.
Pour détecter si l'utilisateur a autorisé l'accès, vous pouvez appeler extension.isAllowedIncognitoAccess()
ou extension.isAllowedFileSchemeAccess()
.