browser\_action
===============

|  |  |
| --- | --- |
| Type | `Object` |
| Mandatory | No |
| Example | 
```json
"browser\_action": {
  "browser\_style": true,
  "default\_icon": {
    "16": "button/geo-16.png",
    "32": "button/geo-32.png"
  },
  "default\_title": "Whereami?",
  "default\_popup": "popup/geo.html",
  "theme\_icons": [{
    "light": "icons/geo-16-light.png",
    "dark": "icons/geo-16.png",
    "size": 16
  }, {
    "light": "icons/geo-32-light.png",
    "dark": "icons/geo-32.png",
    "size": 32
  }]
}
```
 |

Une action de navigateur est un bouton que votre extension ajoute à la barre d'outils du navigateur. Le bouton comporte une icône et peut éventuellement avoir une fenêtre contextuelle dont le contenu est spécifié à l'aide de HTML, CSS et JavaScript.

Si vous fournissez une fenêtre contextuelle, la fenêtre contextuelle est ouverte lorsque l'utilisateur clique sur le bouton, et votre JavaScript s'exécute dans la fenêtre contextuelle permettant l'interaction de l'utilisateur avec elle. Si vous ne fournissez pas de popup, un événement de clic est envoyé aux scripts d'arrière-plan de votre extension lorsque l'utilisateur clique sur le bouton.

Vous pouvez également créer et manipuler des actions de navigateur de manière programmée à l'aide de l'API browserAction.

Syntaxe
-------

La clé `browser_action` est un objet qui peut avoir l'une des propriétés suivantes, toutes optionnelles :

| Name | Type | Description |
| --- | --- | --- |
| `browser_style` | `Booléen` | Facultatif, par défaut à `false`.

 Utilisez-le pour inclure une feuille de style dans votre popup qui le
 rendra cohérent avec l'interface utilisateur du navigateur et avec
 d'autres extensions qui utilisent la propriété
 `browser_style`. Bien que cette touche par défaut soit
 `false`, il est recommandé de l'inclure et de la mettre à
 `true` afin de rendre vos fenêtres contextuelles cohérentes
 avec l'apparence du reste de l'interface utilisateur du navigateur.


 Dans Firefox, la feuille de style peut être vue
 à chrome://browser/content/extension.css, ou
 chrome://browser/content/extension-mac.css sur OS X. Lorsque vous
 définissez les dimensions, sachez que cette feuille de style définit
 actuellement `box-sizing: border-box` (voir
 box-sizing).


 Les
 Browser styles
 décrivent les classes que vous pouvez appliquer aux éléments dans le
 popup afin d'obtenir des styles particuliers.


 L'extension de l'exemple
 latest-download
 utilise `browser_style` dans son popup.
  |
| `default_area` | Chaîne de caractères | 
 Définit la partie du navigateur dans laquelle le bouton est
 initialement placé. Il s'agit d'une chaîne qui peut prendre l'une des
 quatre valeurs suivantes:
 * "navbar" : le bouton est placé dans la barre d'outils principale du
 navigateur, à côté de la barre d'URL.
* "menupanel" : le bouton est placé dans un panneau contextuel.
* "tabstrip" : le bouton est placé dans la barre d'outils qui contient
 les onglets du navigateur.
* "personaltoolbar" : le bouton est placé dans la barre d'outils des
 signets

Cette propriété est seulement supportée dans Firefox.
Cett propriété est facultative, et defaut à "navbar".

 Firefox se souvient des paramètres `default_area` d'une
 extension, même si cette extension est désinstallée et réinstallée
 par la suite. Pour forcer le navigateur à reconnaître une nouvelle
 valeur pour `default_area`, l'identifiant de l'extension
 doit être modifié.


 Une extension ne peut pas changer l'emplacement du bouton après son
 installation, mais l'utilisateur doit pouvoir déplacer le bouton en
 utilisant le mécanisme de personnalisation du navigateur.
  |
| `default_icon` | `Objet` ou chaîne de caractères | 
 Utilisez cette option pour spécifier une ou plusieurs icônes pour le
 bouton d'action du navigateur. L'icône est affichée dans la barre
 d'outils du navigateur par défaut.


 Les icônes sont spécifiées comme des URL relatives dans le fichier
 manifest.json lui-même.


 Vous pouvez spécifier un seul fichier d'icône en fournissant une
 chaîne ici:


```json
"default\_icon": "path/to/geo.svg"
```

 Pour spécifier plusieurs icônes dans différentes tailles, spécifiez
 ici un objet. Le nom de chaque propriété est la hauteur de l'icône en
 pixels et doit être converti en un nombre entier. La valeur est l'URL.
 Par exemple:


```json
    "default\_icon": {
      "16": "path/to/geo-16.png",
      "32": "path/to/geo-32.png"
    }
```

Vous ne pouvez pas spécifier plusieurs icônes de la même taille.

 Voir
 Choisir les tailles des icones
 pour plus de conseils à ce sujet.
  |
| `default_popup` | chaîne de caractères | 
 Le chemin d'accès à un fichier HTML contenant la spécification de la
 fenêtre contextuelle.


 Le fichier HTML peut inclure des fichiers CSS et JavaScript en
 utilisant des éléments
 `<link>`
 et
 `<script>`, tout comme une page Web normale. Cependant,
 `<script>`
 doit avoir l'attribut
 `src` pour
 charger un fichier. N'utilisez pas
 `<script>`
 avec du code intégré, car vous obtiendrez une erreur de politique de
 violation de contenu confuse.


 Contrairement à une page Web normale, JavaScript en cours d'exécution
 dans la fenêtre contextuelle peut accéder à toutes les
 APIs WebExtension (soumis,
 bien sûr, à l'extension possédant les
 permissions
 appropriées).


 Ceci est une
 propriété localisable.
  |
| `default_title` | chaîne de caractères | 
 Info-bulle pour le bouton, affichée lorsque l'utilisateur passe sa
 souris dessus.


 Ceci est une
 propriété localisable.
  |
| `theme_icons` | `Tableau` | 
 Cette propriété vous permet de spécifier différentes icônes pour les
 thèmes selon que Firefox détecte que le thème utilise du texte sombre
 ou clair.


 Si cette propriété est présente, il s'agit d'un tableau contenant au
 moins un objet `ThemeIcons`. Un objet
 `ThemeIcons` contient trois propriétés obligatoires :


`"dark"`

 Une URL pointant vers une icône. Cette icône s'affiche lorsqu'un
 thème utilisant du texte sombre est actif (tel que, le thème Light
 de Firefox et le thème Default si default\_icon n'est pas spécifié).

`"light"`

 Une URL pointant vers une icône. Cette icône s'affiche lorsqu'un
 thème utilisant du texte clair est actif (tel que, le thème sombre
 de Firefox).

`"size"`
La taille des deux icônes en pixels.

 Les icônes sont spécifiées en tant qu'URL par rapport au fichier
 manifest.json lui-même.


 Vous devez fournir un `ThemeIcons` en taille 16x16 et un en
 taille 32x32 (pour l'affichage de la rétine).
  |

Choisir les tailles des icônes
------------------------------

L'icône de l'action du navigateur peut devoir être affichée dans différentes tailles dans différents contextes:

* L'icône est affichée par défaut dans la barre d'outils du navigateur, mais l'utilisateur peut la déplacer dans le panneau de menu du navigateur (le panneau qui s'ouvre lorsque l'utilisateur clique sur l'icône "hamburger"). L'icône dans la barre d'outils est plus petite que l'icône dans le panneau de menu.
* Sur un écran haute densité comme un écran Retina, les icônes doivent être deux fois plus grandes.

Si le navigateur ne peut pas trouver une icône de la bonne taille dans une situation donnée, il choisira la meilleure correspondance et la mettra à l'échelle. Cette correction peut donner une apparence floue à l'icône, il est donc important de choisir attentivement les tailles d'icône.

Il y a deux approches principales pour cela. Vous pouvez fournir une seule icône en tant que fichier SVG, et elle sera mise à l'échelle correctement :


```json
"default\_icon": "path/to/geo.svg"
```


Ou vous pouvez fournir plusieurs icônes dans différentes tailles, et le navigateur choisira la meilleure.

Dans Firefox:

* La hauteur par défaut des icônes dans la barre d'outils est 16 \* `window.devicePixelRatio`.
* La hauteur par défaut pour les icônes dans le panneau de menu est 32 \* `window.devicePixelRatio`.

Vous pouvez donc spécifier des icônes qui correspondent exactement, à la fois aux affichages normaux et à Retina, en fournissant trois fichiers d'icônes et en les spécifiant comme suit:


```json
    "default\_icon": {
      "16": "path/to/geo-16.png",
      "32": "path/to/geo-32.png",
      "64": "path/to/geo-64.png"
    }
```


Si Firefox ne peut pas trouver une correspondance exacte pour la taille qu'il veut, alors il choisira l'icône la plus petite spécifiée qui est plus grande que la taille idéale. Si toutes les icônes sont plus petites que la taille idéale, elle choisira la plus grande icône spécifiée.

Exemple
-------


```json
"browser\_action": {
  "default\_icon": {
    "16": "button/geo-16.png",
    "32": "button/geo-32.png"
  }
}
```


Une action de navigateur avec juste une icône, spécifiée en 2 tailles différentes. Les scripts d'arrière-plan de l'extension peuvent recevoir des événements de clic lorsque l'utilisateur clique sur l'icône en utilisant un code comme celui-ci :


```js
browser.browserAction.onClicked.addListener(handleClick);
```



```json
"browser\_action": {
  "default\_icon": {
    "16": "button/geo-16.png",
    "32": "button/geo-32.png"
  },
  "default\_title": "Whereami?",
  "default\_popup": "popup/geo.html"
}
```


Une action de navigateur avec une icône, un titre et une fenêtre contextuelle. Celle-ci s'affiche lorsque l'utilisateur clique sur le bouton.

Pour une extension simple, mais complète, qui utilise une action de navigateur, consultez le tutoriel pas à pas.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `page_action`
* `sidebar_action`
* Browser styles