Déclarer des autorisations

Pour utiliser la plupart des API chrome.* votre extension ou votre application doit déclarer son intention dans le champ "permissions" du fichier manifeste. Chaque autorisation peut être l'une des chaînes d'une liste de chaînes connues (comme "geolocation") ou un modèle de correspondance qui donne accès à un ou plusieurs hôtes. Les autorisations permettent de limiter les dégâts si votre extension ou votre application est compromise par un logiciel malveillant. Certaines autorisations sont également présentées aux utilisateurs avant l'installation, comme indiqué dans la section Avertissements concernant les autorisations.

Si une API nécessite que vous déclariez une autorisation dans le fichier manifeste, sa documentation vous explique comment procéder. Par exemple, la page Stockage vous explique comment déclarer l'autorisation "storage".

Voici un exemple de la partie "Autorisations" d'un fichier manifeste :

"permissions": [
  "tabs",
  "bookmarks",
  "http://www.blogger.com/",
  "http://*.google.com/",
  "unlimitedStorage"
],

Le tableau suivant liste les autorisations actuellement disponibles :

Autorisation Description
"activeTab" Demande que l'extension soit autorisée conformément à la spécification activeTab.
"alarms" Donne à votre extension l'accès à l'API chrome.alarms.
"background"

Permet à Chrome de démarrer plus tôt et de s'arrêter plus tard, afin que les applications et les extensions puissent avoir une durée de vie plus longue.

Lorsqu'une application hébergée, une application empaquetée ou une extension installée dispose de l'autorisation "background", Chrome s'exécute (de manière invisible) dès que l'utilisateur se connecte à son ordinateur, avant même qu'il ne lance Chrome. L'autorisation "background" permet également à Chrome de continuer à s'exécuter (même après la fermeture de sa dernière fenêtre) jusqu'à ce que l'utilisateur quitte explicitement Chrome.

Remarque : Les applications et extensions désactivées sont traitées comme si elles n'étaient pas installées.

Vous utilisez généralement l'autorisation "background" avec une page d'arrière-plan, une page d'événement ou (pour les applications hébergées) une fenêtre d'arrière-plan.

"bookmarks" Donne à votre extension l'accès à l'API chrome.bookmarks.
"browsingData" Donne à votre extension l'accès à l'API chrome.browsingData.
"certificateProvider" Donne à votre extension l'accès à l'API chrome.certificateProvider.
"clipboardRead" Obligatoire si l'extension ou l'application utilise document.execCommand('paste').
"clipboardWrite" Indique que l'extension ou l'application utilise document.execCommand('copy') ou document.execCommand('cut'). Cette autorisation est requise pour les applications hébergées. Elle est recommandée pour les extensions et les applications empaquetées.
"contentSettings" Donne à votre extension l'accès à l'API chrome.contentSettings.
"contextMenus" Donne à votre extension l'accès à l'API chrome.contextMenus.
"cookies" Donne à votre extension l'accès à l'API chrome.cookies.
"debugger" Donne à votre extension l'accès à l'API chrome.debugger.
"declarativeContent" Autorise votre extension à accéder à l'API chrome.declarativeContent.
"declarativeNetRequest" Donne à votre extension l'accès à l'API chrome.declarativeNetRequest.
"declarativeNetRequestFeedback" Accorde à l'extension l'accès aux événements et aux méthodes de l'API chrome.declarativeNetRequest qui renvoient des informations sur les règles déclaratives correspondantes.
"declarativeWebRequest" Donne à votre extension l'accès à l'API chrome.declarativeWebRequest.
"desktopCapture" Donne à votre extension l'accès à l'API chrome.desktopCapture.
"documentScan" Donne à votre extension l'accès à l'API chrome.documentScan.
"downloads" Donne à votre extension l'accès à l'API chrome.downloads.
"enterprise.deviceAttributes" Donne à votre extension l'accès à l'API chrome.enterprise.deviceAttributes.
"enterprise.hardwarePlatform" Donne à votre extension l'accès à l'API chrome.enterprise.hardwarePlatform.
"enterprise.networkingAttributes" Donne à votre extension l'accès à l'API chrome.enterprise.networkingAttributes.
"enterprise.platformKeys" Donne à votre extension l'accès à l'API chrome.enterprise.platformKeys.
"experimental" Obligatoire si l'extension ou l'application utilise des API chrome.experimental.* API.
"fileBrowserHandler" Donne à votre extension l'accès à l'API chrome.fileBrowserHandler.
"fileSystemProvider" Donne à votre extension l'accès à l'API chrome.fileSystemProvider.
"fontSettings" Donne à votre extension l'accès à l'API chrome.fontSettings.
"gcm" Donne à votre extension l'accès à l'API chrome.gcm.
"geolocation" Permet à l'extension ou à l'application d'utiliser l'API de géolocalisation sans demander l'autorisation de l'utilisateur.
"history" Donne à votre extension l'accès à l'API chrome.history.
"identity" Donne à votre extension l'accès à l'API chrome.identity.
"idle" Donne à votre extension l'accès à l'API chrome.idle.
"loginState" Donne à votre extension l'accès à l'API chrome.loginState.
"management" Donne à votre extension l'accès à l'API chrome.management.
"nativeMessaging" Donne à votre extension l'accès à l'API de messagerie native.
"notifications" Donne à votre extension l'accès à l'API chrome.notifications.
"pageCapture" Autorise votre extension à accéder à l'API chrome.pageCapture.
"platformKeys" Donne à votre extension l'accès à l'API chrome.platformKeys.
"power" Donne à votre extension l'accès à l'API chrome.power.
"printerProvider" Donne à votre extension l'accès à l'API chrome.printerProvider.
"printing" Autorise votre extension à accéder à l'API chrome.printing.
"printingMetrics" Donne à votre extension l'accès à l'API chrome.printingMetrics.
"privacy" Donne à votre extension l'accès à l'API chrome.privacy.
"processes" Donne à votre extension l'accès à l'API chrome.processes.
"proxy" Donne à votre extension l'accès à l'API chrome.proxy.
"scripting" Donne à votre extension l'accès à l'API chrome.scripting.
"sessions" Donne à votre extension l'accès à l'API chrome.sessions.
"signedInDevices" Donne à votre extension l'accès à l'API chrome.signedInDevices.
"storage" Donne à votre extension l'accès à l'API chrome.storage.
"system.cpu" Autorise votre extension à accéder à l'API chrome.system.cpu.
"system.display" Autorise votre extension à accéder à l'API chrome.system.display.
"system.memory" Autorise votre extension à accéder à l'API chrome.system.memory.
"system.storage" Donne à votre extension l'accès à l'API chrome.system.storage.
"tabCapture" Autorise votre extension à accéder à l'API chrome.tabCapture.
"tabGroups" Autorise votre extension à accéder à l'API chrome.tabGroups.
"tabs" Autorise votre extension à accéder aux champs privilégiés des objets Tab utilisés par plusieurs API, y compris chrome.tabs et chrome.windows. Dans de nombreux cas, votre extension n'aura pas besoin de déclarer l'autorisation "tabs" pour utiliser ces API.
"topSites" Donne à votre extension l'accès à l'API chrome.topSites.
"tts" Donne à votre extension l'accès à l'API chrome.tts.
"ttsEngine" Donne à votre extension l'accès à l'API chrome.ttsEngine.
"unlimitedStorage" Fournit un quota illimité pour le stockage des données côté client, telles que les bases de données et les fichiers de stockage local. Sans cette autorisation, l'extension ou l'application est limitée à 5 Mo d'espace de stockage local.
Remarque : Cette autorisation ne s'applique qu'à la base de données Web SQL et au cache de l'application (voir le problème 58985). De plus, il ne fonctionne pas actuellement avec les sous-domaines génériques tels que http://*.example.com.
"vpnProvider" Donne à votre extension l'accès à l'API chrome.vpnProvider.
"webNavigation" Donne à votre extension l'accès à l'API chrome.webNavigation.
"webRequest" Donne à votre extension l'accès à l'API chrome.webRequest.
"webRequestBlocking" Obligatoire si l'extension utilise l'API chrome.webRequest de manière bloquante.