Le fichier manifest.json est un fichier formaté à la manière du JSON, et c'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.

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.

Compatibilité du navigateur

ChromeEdgeFirefoxFirefox for AndroidOpera
applications Non Non4848 Non
author (Oui) (Oui)15252 (Oui)
background (Oui) (Oui)24848 (Oui)
browser_action (Oui) (Oui)4855 (Oui)
chrome_settings_overrides (Oui) Non55 Non Non
chrome_url_overrides (Oui) Non5454 (Oui)
commands (Oui) Non48 Non (Oui)
content_scripts (Oui)3 (Oui)484484 (Oui)3
content_security_policy (Oui) (Oui)5486486 (Oui)
default_locale (Oui) (Oui)4848 (Oui)
description (Oui) (Oui)4848 (Oui)
developer Non Non5252 (Oui)
devtools_page (Oui) Non54 Non (Oui)
homepage_url (Oui) Non4848 (Oui)
icons (Oui) (Oui)4848 (Oui)
incognito (Oui) Non4848 (Oui)
manifest_version (Oui) (Oui)4848 (Oui)
name (Oui) (Oui)4848 (Oui)
omnibox (Oui) Non52 Non (Oui)
optional_permissions (Oui) Non5555 (Oui)
options_ui (Oui) Non52 Non (Oui)
page_action (Oui)7 (Oui)7 848 Non (Oui)
permissions (Oui) (Oui)4848 (Oui)
protocol_handlers Non Non5454 Non
short_name (Oui) (Oui)4848 (Oui)
sidebar_action Non Non54 Non (Oui)
theme (Oui) Non55 Non Non
version (Oui)9 (Oui)4848 (Oui)
web_accessible_resources (Oui) (Oui)4848 (Oui)

1. This key is mandatory in Microsoft Edge.

2. The 'persistent' property is mandatory.

3. Content scripts are not applied to tabs already open when the extension is loaded.

4. Content scripts won't be injected into empty iframes at 'document_start' even if you specify that value in 'run_at'.

5. Only the default content security policy is supported: "script-src 'self'; object-src 'self';".

6. Firefox does not support 'http://127.0.0.1' or 'http://localhost' as script sources: they must be served over HTTPS.

7. SVG icons are not supported.

8. 'default_icon' must be an object, with explicit sizes.

9. Valid Chrome versions are a subset of valid Firefox versions.

Exemple

Rapide exemple de syntaxe pour manifest.json:

{
  "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"]
}

 

Étiquettes et contributeurs liés au document

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