manifest.json

Cet article décrit manifest.json pour les extensions web. Si vous cherchez des informations sur le manifeste.json dans les PWAs, consultez l'article Web App Manifest.

Le fichier manifest.json est le seul fichier que chaque extension utilisant les API WebExtension doit contenir.

En utilisant manifest.json, vous spécifiez les métadonnées basiques de votre extension comme son nom et sa version, et des fonctionnalités de votre extension comme les scripts en arrière-plan (les scripts de contenu et les actions du navigateur).

C'est un fichier au format JSON à une exception près : il peut contenir des commentaires de type "//".

List of manifest.json keys

Les clés manifest.json sont listées ci-dessous:

Notes about manifest.json keys

  • "manifest_version", "version", and "name" sont les seules clés obligatoires.
  • "default_locale" doit être présent si le répertoire "_locales" est présent et sinon doit être absent.
  • "browser_specific_settings" n'est pas prise en charge dans Google Chrome

Accessing manifest.json keys at runtime

Vous pouvez accéder au manifest de votre extension depuis le JavaScript de l'extension en utilisant la fonction runtime.getManifest() :

browser.runtime.getManifest().version;

Exemple

Le bloc ci-dessous contient la syntaxe de base de certaines clés communes du manifest

Note : Il ne s'agit pas d'un exemple à copier-coller. Le choix des clés dont vous aurez besoin dépend de l'extension que vous développez.

Pour des exemples complets d'extensions, voir Exemple d'extensions.

{
  "browser_specific_settings": {
    "gecko": {
      "id": "addon@example.com",
      "strict_min_version": "42.0"
    }
  },

  "background": {
    "scripts": ["jquery.js", "my-background.js"],
  },

  "browser_action": {
    "default_icon": {
      "19": "button/geo-19.png",
      "38": "button/geo-38.png"
    },
    "default_title": "Whereami?",
    "default_popup": "popup/geo.html"
  },

  "commands": {
    "toggle-feature": {
      "suggested_key": {
        "default": "Ctrl+Shift+Y",
        "linux": "Ctrl+Shift+U"
      },
      "description": "Send a 'toggle-feature' event"
    }
  },

  "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": "Whereami?",
    "default_popup": "popup/geo.html"
  },

  "permissions": ["webNavigation"],

  "version": "0.1",

  "user_scripts": {
    "api_script": "apiscript.js",
  },

  "web_accessible_resources": ["images/my-image.png"]
}

Compatibilité du navigateur

Pour un aperçu complet de toutes les clés de manifeste et de leurs sous-clés, voir le tableau complet de compatibilité du navigateur manifest.json.

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxOperaSafariFirefox pour Android
authorChrome Support complet OuiEdge Support complet 14
Notes
Support complet 14
Notes
Notes This key is mandatory in Microsoft Edge.
Firefox Support complet 52Opera Support complet OuiSafari Support complet 14
Notes
Support complet 14
Notes
Notes Not displayed in Safari Extensions preferences.
Firefox Android Support complet 52
backgroundChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiSafari Support complet 14Firefox Android Support complet 48
browser_actionChrome Support complet Oui
Notes
Support complet Oui
Notes
Notes If an extension defines a browser action, it is not allowed to define a page action as well.
Edge Support complet 14Firefox Support complet 48Opera Support complet Oui
Notes
Support complet Oui
Notes
Notes If an extension defines a browser action, it is not allowed to define a page action as well.
Safari Support complet 14
Notes
Support complet 14
Notes
Notes If an extension defines a browser action, it is not allowed to define a page action as well.
Firefox Android Support complet 55
browser_specific_settingsChrome Aucun support NonEdge Aucun support 15 — 79Firefox Support complet 48
Support complet 48
Support complet 42
Notes Autre nom
Notes Mandatory before Firefox 48.
Autre nom Cette fonctionnalité utilise le nom non-standard : applications
Opera Aucun support NonSafari Support partiel 14
Notes
Support partiel 14
Notes
Notes Supports strict_min_version and strict_max_version in a safari block.
Firefox Android Support complet 48
Support complet 48
Support complet 42
Notes Autre nom
Notes Mandatory before Firefox 48.
Autre nom Cette fonctionnalité utilise le nom non-standard : applications
chrome_settings_overridesChrome Support complet OuiEdge Support complet 79Firefox Support complet 55Opera Aucun support NonSafari Aucun support NonFirefox Android Aucun support Non
chrome_url_overridesChrome Support complet OuiEdge Support complet 79Firefox Support complet 54Opera Aucun support NonSafari Aucun support NonFirefox Android Aucun support Non
commandsChrome Support complet OuiEdge Support complet 79Firefox Support complet 48Opera Support complet OuiSafari Support complet 14
Notes
Support complet 14
Notes
Notes Ability to change the keyboard shortcut for a command not supported.
Firefox Android Aucun support Non
content_scriptsChrome Support complet Oui
Notes
Support complet Oui
Notes
Notes Content scripts are not applied to tabs already open when the extension is loaded.
Edge Support complet 14Firefox Support complet 48Opera Support complet Oui
Notes
Support complet Oui
Notes
Notes Content scripts are not applied to tabs already open when the extension is loaded.
Safari Support complet 14
Notes
Support complet 14
Notes
Notes Content scripts are not applied to tabs until the user grants permission via the extension's access popover in the toolbar.
Firefox Android Support complet 48
content_security_policyChrome Support complet OuiEdge Support complet 14
Notes
Support complet 14
Notes
Notes Only the default content security policy is supported: "script-src 'self'; object-src 'self';".
Firefox Support complet 48
Notes
Support complet 48
Notes
Notes Firefox does not support 'http://127.0.0.1' or 'http://localhost' as script sources: they must be served over HTTPS.
Opera Support complet OuiSafari Support complet 14Firefox Android Aucun support Non
default_localeChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiSafari Support complet 14Firefox Android Support complet 48
descriptionChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiSafari Support complet 14Firefox Android Support complet 48
developerChrome Aucun support NonEdge Aucun support NonFirefox Support complet 52Opera Support complet OuiSafari Aucun support NonFirefox Android Support complet 52
devtools_pageChrome Support complet OuiEdge Support complet 79Firefox Support complet 54Opera Support complet OuiSafari Aucun support NonFirefox Android Aucun support Non
externally_connectableChrome Support complet OuiEdge Support complet 79Firefox Aucun support Non
Notes
Aucun support Non
Notes
Notes See bug 1319168.
Opera Support complet OuiSafari Aucun support NonFirefox Android Aucun support Non
homepage_urlChrome Support complet OuiEdge Support complet 79Firefox Support complet 48Opera Support complet OuiSafari Support complet 14
Notes
Support complet 14
Notes
Notes Not displayed in Safari Extensions preferences.
Firefox Android Support complet 48
iconsChrome Support complet Oui
Notes
Support complet Oui
Notes
Notes Chrome does not support SVG format for icons. It is recommended to use PNG images.
Edge Support complet 14Firefox Support complet 48Opera Support complet OuiSafari Support complet 14
Notes
Support complet 14
Notes
Notes SVG icons are not supported.
Firefox Android Support complet 48
incognitoChrome Support complet OuiEdge Support complet ≤18Firefox Support complet 48Opera Support complet OuiSafari Aucun support NonFirefox Android Support complet 48
manifest_versionChrome Support complet 4Edge Support complet 14Firefox Support complet 48Opera Support complet 15Safari Support complet 14Firefox Android Support complet 48
nameChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiSafari Support complet 14Firefox Android Support complet 48
offline_enabledChrome Support complet OuiEdge Support complet 79Firefox Aucun support NonOpera Support complet OuiSafari Aucun support NonFirefox Android Aucun support Non
omniboxChrome Support complet OuiEdge Support complet 79Firefox Support complet 52Opera Support complet OuiSafari Aucun support NonFirefox Android Aucun support Non
optional_permissionsChrome Support complet OuiEdge Support complet 79Firefox Support complet 55Opera Support complet OuiSafari Support complet 14Firefox Android Support complet 55
options_page
Obsolète
Chrome Support complet OuiEdge Support complet 14Firefox Aucun support NonOpera Support complet 15Safari Support complet 14Firefox Android Aucun support Non
options_uiChrome Support complet 40Edge Support complet 79Firefox Support complet 48Opera Support complet 27Safari Support complet 14Firefox Android Support complet 57
page_actionChrome Support complet Oui
Notes
Support complet Oui
Notes
Notes If an extension defines a page action, it is not allowed to define a browser action as well.
Support complet 49
Notes
Notes Since Chrome 49, page actions are displayed on the toolbar, rather than in the address bar.
Edge Support complet 14Firefox Support complet 48Opera Support complet Oui
Notes
Support complet Oui
Notes
Notes If an extension defines a page action, it is not allowed to define a browser action as well.
Safari Support complet 14
Notes
Support complet 14
Notes
Notes If an extension defines a page action, it is not allowed to define a browser action as well.
Firefox Android Support complet Oui
permissionsChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiSafari Support complet 14Firefox Android Support complet 48
protocol_handlersChrome Aucun support NonEdge Aucun support NonFirefox Support complet 54Opera Aucun support NonSafari Aucun support NonFirefox Android Support complet 54
short_nameChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiSafari Support complet 14Firefox Android Support complet 48
sidebar_actionChrome Aucun support NonEdge Aucun support NonFirefox Support complet 54Opera Support complet 30Safari Aucun support NonFirefox Android Aucun support Non
storageChrome Support complet OuiEdge Support complet 79Firefox Aucun support NonOpera Aucun support NonSafari Support complet 14Firefox Android Aucun support Non
themeChrome Support complet OuiEdge Support complet 79Firefox Support complet 55Opera Aucun support NonSafari Aucun support NonFirefox Android Support complet Oui
theme_experiment
ExpérimentaleNon-standard
Chrome Aucun support NonEdge Aucun support NonFirefox Support complet 63Opera Aucun support NonSafari Aucun support NonFirefox Android Aucun support Non
user_scriptsChrome Support complet OuiEdge Support complet 79Firefox Support complet 68Opera Aucun support NonSafari Aucun support NonFirefox Android Support complet 68
versionChrome Support complet Oui
Notes
Support complet Oui
Notes
Notes Valid Chrome versions are a subset of valid Firefox versions.
Edge Support complet 14Firefox Support complet 48Opera Support complet OuiSafari Support complet 14Firefox Android Support complet 48
version_nameChrome Support complet OuiEdge Support complet 79Firefox Aucun support NonOpera Support complet OuiSafari Support complet 14Firefox Android Aucun support Non
web_accessible_resourcesChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiSafari Support complet 14Firefox Android Support complet 48

Légende

Support complet  
Support complet
Support partiel  
Support partiel
Aucun support  
Aucun support
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité expérimentale. Celle-ci peut être amenée à changer par la suite.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Fonctionnalité non-standard. Celle-ci peut être incorrectement supportée par les autres navigateurs.
Obsolète. Les nouveaux sites web ne doivent pas utiliser cette fonctionnalité.
Obsolète. Les nouveaux sites web ne doivent pas utiliser cette fonctionnalité.
Voir les notes d'implémentation.
Voir les notes d'implémentation.
Cette fonctionnalité utilise un nom non-standard.
Cette fonctionnalité utilise un nom non-standard.

Voir aussi

permissions JavaScript API