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 fonctionalité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 "//".

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

 

"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. "applications" n'est pas prise en charge dans Google Chrome, et est obligatoire pour Firefox avant Firefox 48 et pour Firefox pour Android.

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. Notez qu'il n'est pas destiné à être utilisé comme un exemple de copier-coller : les clés dont vous aurez besoin dépendront de votre extension que vous développez. Pour des exemples complets d'extensions, voir Exemple d'extensions.

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

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

  "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",

  "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
ChromeEdgeFirefoxOperaFirefox pour Android
applicationsChrome Aucun support NonEdge Support complet 15
Autre nom
Support complet 15
Autre nom
Autre nom Cette fonctionnalité utilise le nom non-standard : browser_specific_settings
Firefox Support complet 48
Support complet 48
Support complet 48
Autre nom
Autre nom Cette fonctionnalité utilise le nom non-standard : browser_specific_settings
Opera Aucun support NonFirefox Android Support complet 48
Support complet 48
Support complet 48
Autre nom
Autre nom Cette fonctionnalité utilise le nom non-standard : browser_specific_settings
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 OuiFirefox Android Support complet 52
backgroundChrome Support complet OuiEdge Support complet 14
Notes
Support complet 14
Notes
Notes The 'persistent' property is mandatory.
Firefox Support complet 48Opera Support complet OuiFirefox 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.
Firefox Android Support complet 55
chrome_settings_overridesChrome Support complet OuiEdge Aucun support NonFirefox Support complet 55Opera Aucun support NonFirefox Android Aucun support Non
chrome_url_overridesChrome Support complet OuiEdge Aucun support NonFirefox Support complet 54Opera Aucun support NonFirefox Android Aucun support Non
commandsChrome Support complet OuiEdge Aucun support NonFirefox Support complet 48Opera Support complet OuiFirefox 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 48
Notes
Support complet 48
Notes
Notes Content scripts won't be injected into empty iframes at 'document_start' even if you specify that value in 'run_at'.
Opera Support complet Oui
Notes
Support complet Oui
Notes
Notes Content scripts are not applied to tabs already open when the extension is loaded.
Firefox Android Support complet 48
Notes
Support complet 48
Notes
Notes Content scripts won't be injected into empty iframes at 'document_start' even if you specify that value in 'run_at'.
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 OuiFirefox Android 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.
default_localeChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiFirefox Android Support complet 48
descriptionChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiFirefox Android Support complet 48
developerChrome Aucun support NonEdge Aucun support NonFirefox Support complet 52Opera Support complet OuiFirefox Android Support complet 52
devtools_pageChrome Support complet OuiEdge Aucun support NonFirefox Support complet 54Opera Support complet OuiFirefox Android Aucun support Non
externally_connectableChrome Support complet OuiEdge Aucun support NonFirefox Aucun support Non
Notes
Aucun support Non
Notes
Notes See bug 1319168.
Opera Support complet OuiFirefox Android Aucun support Non
homepage_urlChrome Support complet OuiEdge Aucun support NonFirefox Support complet 48Opera Support complet OuiFirefox Android Support complet 48
iconsChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiFirefox Android Support complet 48
incognitoChrome Support complet OuiEdge Aucun support NonFirefox Support complet 48Opera Support complet OuiFirefox Android Support complet 48
manifest_versionChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiFirefox Android Support complet 48
nameChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiFirefox Android Support complet 48
omniboxChrome Support complet OuiEdge Aucun support NonFirefox Support complet 52Opera Support complet OuiFirefox Android Aucun support Non
optional_permissionsChrome Support complet OuiEdge Aucun support NonFirefox Support complet 55Opera Support complet OuiFirefox Android Support complet 55
options_page
Obsolète
Chrome Support complet OuiEdge Support complet 14Firefox Aucun support NonOpera Support complet 15Firefox Android Aucun support Non
options_uiChrome Support complet 40Edge Aucun support NonFirefox Support complet 48Opera Support complet 27
Notes
Support complet 27
Notes
Notes Options pages are always opened in a separate browser tab.
Firefox Android Support complet 57
page_actionChrome Support complet Oui
Notes
Support complet Oui
Notes
Notes SVG icons are not supported.
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 14
Notes
Support complet 14
Notes
Notes SVG icons are not supported.
Notes 'default_icon' must be an object, with explicit sizes.
Firefox Support complet 48Opera Support complet Oui
Notes
Support complet Oui
Notes
Notes SVG icons are not supported.
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 OuiFirefox Android Support complet 48
protocol_handlersChrome Aucun support NonEdge Aucun support NonFirefox Support complet 54Opera Aucun support NonFirefox Android Support complet 54
short_nameChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiFirefox Android Support complet 48
sidebar_actionChrome Aucun support NonEdge Aucun support NonFirefox Support complet 54Opera Support complet 30Firefox Android Aucun support Non
themeChrome Support complet OuiEdge Aucun support NonFirefox Support complet 55Opera Aucun support NonFirefox Android Aucun support Non
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 OuiFirefox Android Support complet 48
version_nameChrome Support complet OuiEdge Aucun support NonFirefox Aucun support NonOpera Support complet OuiFirefox Android Aucun support Non
web_accessible_resourcesChrome Support complet OuiEdge Support complet 14Firefox Support complet 48Opera Support complet OuiFirefox Android Support complet 48

Légende

Support complet  
Support complet
Aucun support  
Aucun support
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.

Étiquettes et contributeurs liés au document

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