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

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

BCD tables only load in the browser

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.

Voir aussi

permissions JavaScript API