manifest.json
Note :
Cet article décrit le fichier manifest.json pour les extensions web. Si vous cherchez des informations sur le manifest.json dans les applications web progressives (PWA), consultez l'article sur les manifestes d'application web.
Le fichier manifest.json est le seul fichier que toute extension utilisant les API WebExtension doit contenir.
Avec manifest.json, vous définissez les métadonnées de base de votre extension, telles que le nom et la version, et vous pouvez également définir certains aspects des fonctionnalités de votre extension (tels que les scripts d'arrière-plan, les scripts de contenu et les actions du navigateur).
Il 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 :
- action (Manifest V3 et supérieur)
- author
- background
- browser_action (Manifest V2 seulement)
- browser_specific_settings
- chrome_settings_overrides
- chrome_url_overrides
- commands
- content_scripts
- content_security_policy
- dark_theme
- declarative_net_request
- default_locale
- description
- developer
- devtools_page
- dictionaries
- externally_connectable (N'est pas pris en charge dans Firefox)
- homepage_url
- host_permissions (Manifest V3 et supérieur)
- icons
- incognito
- manifest_version
- name
- omnibox
- optional_host_permissions (Manifest V3 et supérieur)
- optional_permissions
- options_page
- options_ui
- page_action (Manifest V2 seulement dans Chrome)
- permissions
- protocol_handlers (Firefox seulement)
- short_name
- sidebar_action
- storage (N'est pas pris en charge dans Firefox)
- theme
- theme_experiment (Firefox seulement) (expérimental)
- user_scripts (Manifest V2 seulement)
- 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_localesest 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() :
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.
{
"browser_specific_settings": {
"gecko": {
"id": "@exemple-extension",
"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": "Envoyer 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
Voir aussi
- L'API JavaScript
permissions