manifest.json
=============

**Note :** Cet article décrit le format du fichier `manifest.json` pour les extensions web. Si vous cherchez des informations quant au manifeste des applications web progressives (PWA), consultez plutôt l'article sur les manifestes d'application web.

Le fichier `manifest.json` est le seul fichier que toute extension basée sur les API WebExtension doit contenir.

Avec `manifest.json`, on fournit les différentes métadonnées simples de l'extension, comme le nom et la version. On peut également y définir certains aspects des fonctionnalités de l'extension (tels que les scripts d'arrière-plan, les scripts de contenu et les actions du navigateur).

Ce fichier est au format JSON avec une exception : il peut contenir des commentaires sous la forme `// toto titi`.

Liste des clés du fichier `manifest.json`
-----------------------------------------

Les différentes clés utilisées dans le fichier `manifest.json` sont listées ici :

* author
* background
* browser\_action
* browser\_specific\_settings
* chrome\_settings\_overrides
* chrome\_url\_overrides
* commands
* content\_scripts
* content\_security\_policy
* default\_locale
* description
* developer
* devtools\_page
* dictionaries
* externally\_connectable
* homepage\_url
* icons
* incognito
* manifest\_version
* name
* offline\_enabled
* omnibox
* optional\_permissions
* options\_page
* options\_ui
* page\_action
* permissions
* protocol\_handlers
* short\_name
* sidebar\_action
* storage
* theme
* theme expérimentation
* user\_scripts
* version
* version\_name
* web\_accessible\_resources
### Notes sur les clés du fichier `manifest.json`

* `"manifest_version"`, `"version"`, et `"name"` sont les seules clés obligatoires.
* `"default_locale"` doit être présente si le répertoire "`_locales`" est présent ; elle doit être absente sinon.
* `"browser_specific_settings"` n'est pas prise en charge par Google Chrome.
### Accéder aux clés du fichier `manifest.json` à l'exécution

Il est possible d'accéder au manifeste de l'extension depuis le code de l'extension, à l'aide de la fonction `runtime.getManifest()` :


```js
browser.runtime.getManifest().version;
```

Exemple
-------

Le bloc qui suit illustre la syntaxe de certaines des clés les plus fréquemment utilisées.

**Note :** Il ne s'agit pas d'un exemple prêt à copier-coller. Lorsque vous développez une extension, sélectionnez avec soin les clés dont vous avez besoin.

Pour des exemples complets d'extensions, vous pouvez consulter ces exemples d'extensions.


```json
{
  "browser\_specific\_settings": {
    "gecko": {
      "id": "addon@example.com",
      "strict\_min\_version": "42.0"
    }
  },

  "background": {
    "scripts": ["jquery.js", "mon-script-arriere-plan.js"]
  },

  "browser\_action": {
    "default\_icon": {
      "19": "button/geo-19.png",
      "38": "button/geo-38.png"
    },
    "default\_title": "Oùsuisje?",
    "default\_popup": "popup/geo.html"
  },

  "commands": {
    "toggle-feature": {
      "suggested\_key": {
        "default": "Ctrl+Shift+Y",
        "linux": "Ctrl+Shift+U"
      },
      "description": "Utiliser un évènement 'toggle-feature'"
    }
  },

  "content\_security\_policy": "script-src 'self' https://example.com; object-src 'self'",

  "content\_scripts": [
    {
      "exclude\_matches": ["\*://developer.mozilla.org/\*"],
      "matches": ["\*://\*.mozilla.org/\*"],
      "js": ["borderify.js"]
    }
  ],

  "default\_locale": "en",

  "description": "...",

  "icons": {
    "48": "icon.png",
    "96": "icon@2x.png"
  },

  "manifest\_version": 2,

  "name": "...",

  "page\_action": {
    "default\_icon": {
      "19": "button/geo-19.png",
      "38": "button/geo-38.png"
    },
    "default\_title": "Oùsuisje?",
    "default\_popup": "popup/geo.html"
  },

  "permissions": ["webNavigation"],

  "version": "0.1",

  "user\_scripts": {
    "api\_script": "apiscript.js"
  },

  "web\_accessible\_resources": ["images/mon-image.png"]
}
```

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

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

Pour un aperçu complet de l'ensemble des clés de manifeste et des sous-clés correspondantes, voir le tableau de compatibilité complet pour `manifest.json`.

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

* L'API JavaScript `permissions`