Type Array
Obligatoire No
Exemple
"permissions": [
  "*://developer.mozilla.org/*",
  "webRequest"
]

Utilisez la touche de permissions pour demander des pouvoirs spéciaux pour votre extension. Cette clé est un ensemble de chaînes, et chaque chaîne est une demande d'autorisation.

Si vous demandez des autorisations à l'aide de cette clé, le navigateur peut informer l'utilisateur au moment de l'installation que l'extension demande certains privilèges et demandez-leur de confirmer qu'ils sont heureux d'accorder ces privilèges. Le navigateur peut également permettre à l'utilisateur d'inspecter les privilèges d'une extension après l'installation.

La clé peut contenir trois types d'autorisations:

  • Les permissions d'hôte
  • Les permissions API
  • La permission activeTab

Les permissions d'hôte

Les permissions d'hôte sont spécifiées comme modèles de correspondance, et chaque motif identifie un groupe d'URL pour lequel l'extension demande des privilèges supplémentaires. Par exemple, une autorisation d'hôte pourrait être "*://developer.mozilla.org/*".

Les privilèges supplémentaires incluent :

  • XMLHttpRequest et l'accès fetch à ces origines sans restrictions d'origine croisée (même pour les demandes faites à partir de scripts de contenu)
  • La possibilité d'injecter des scripts par programme (à l'aide de tabs.executeScript) dans les pages issued de ces origines
  • La possibilité de recevoir des événements de l'API webRequest pour ces hôtes
  • La possibilité d'accéder aux cookies de cet hôte à l'aide de l'API des cookies, tant que la permission de l'API "cookies" est également incluse.
  • Contourne la protection de suivi si l'hôte est un domaine complet sans caractères génériques. Ne fonctionne pas avec <all_urls>.

Les permissions API

Les autorisations API sont spécifiées comme des mots-clés, et chaque mot clé nomme une API WebExtension que l'extension souhaite utiliser.

Les mots clés suivants sont actuellement disponibles:

  • activeTab
  • alarms
  • bookmarks
  • browsingData
  • contextMenus
  • contextualIdentities
  • cookies
  • downloads
  • downloads.open
  • history
  • identity
  • idle
  • management
  • nativeMessaging
  • notifications
  • proxy
  • sessions
  • storage
  • tabs
  • topSites
  • webNavigation
  • webRequest
  • webRequestBlocking

Dans la plupart des cas, la permission accorde uniquement l'accès à l'API, avec les exceptions suivantes:

  • Les onglets vous permettent d'accéder aux parties privilégiées des API de l'onglet : Tab.url, Tab.title, and Tab.faviconUrl. Dans Firefox, vous avez également besoin d'onglets si vous souhaitez inclure url dans le paramètre queryInfo dans tabs.query(). Le reste de l'API des onglets peut être utilisé sans demander aucune permission
  • webRequestBlocking vous permet d'utiliser l'argument "blocage", afin que vous puissiez modifier et annuler les requêtes.
  • downloads.open vous permet d'utiliser l'API downloads.open().

Permission activeTab

Cette autorisation est spécifiée comme "activeTab". Si une extension possède la permission activeTab, alors lorsque l'utilisateur interagit avec l'extension, l'extension reçoit des privilèges supplémentaires uniquement pour l'onglet actif.

"interaction utilisateur" comprend :

  • L'utilisateur clique sur l'action du navigateur de l'extension ou sur l'action de la page
  • L'utilisateur sélectionne son élément de menu contextuel
  • L'utilisateur active un raccourci clavier défini par l'extension

Les privilèges supplémentaires sont les suivants:

  • La capacité d'injecter JavaScript ou CSS dans l'onglet par programme, en utilisant browser.tabs.executeScript et  browser.tabs.insertCSS
  • Accéder aux parties privilégiées des onglets de l'API pour l'onglet actuel: Tab.url, Tab.title et Tab.faviconUrl.

L'intention de cette permission est de permettre aux extensions de remplir un cas d'utilisation courante, sans avoir à leur accorder des permissions très puissantes. Beaucoup d'extensions veulent "faire quelque chose à la page courante quand l'utilisateur demande". Par exemple, considérez une extension qui veut exécuter un script dans la page courante quand l'utilisateur clique sur une action de navigateur. Si la permission activeTab n'existait pas, l'extension devrait demander la permission de l'hôte <all_urls>. Mais cela donne à l'extension plus de puissance dont elle a besoin: elle pourrait maintenant exécuter des scripts dans n'importe quel onglet, à tout moment, plutôt que simplement l'onglet actif et juste en réponse à une action de l'utilisateur.

Accès au presse-papiers

Il existe deux permissions qui permettent aux WebExtensions d'interagir avec le Presse-papiers :

  • clipboardWrite: écrivez dans le presse-papiers à l'aide de document.execCommand("copy") ou document.execCommand("cut")
  • clipboardRead: lisez le presse-papiers à l'aide de document.execCommand("paste")

Voir Intérargir avec le presse-papiers pour tous les détails de ce sujet.

Exemple

 "permissions": ["*://developer.mozilla.org/*"]

Demandez un accès privilégié aux pages sous developer.mozilla.org.

  "permissions": ["tabs"]

Demandez l'accès aux éléments privilégiés de l'API des onglets.

  "permissions": ["*://developer.mozilla.org/*", "tabs"]

Demandez les deux permissions ci-dessus.

Compatibilité du navigateur

ChromeEdgeFirefoxFirefox for AndroidOpera
Basic supportYesYes4848Yes
backgroundYesNoNoNoYes
unlimitedStorageYesYes5656Yes
geolocationYesYes5454Yes
activeTabYesNo4848Yes
clipboardReadYesNo5454Yes
clipboardWriteYesNo5151Yes

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : lotfire24, hellosct1
 Dernière mise à jour par : lotfire24,