manifest.json
O ficheiro manifest.json é o único ficheiro que deve ser incluído em extensões que usem APIs de WebExtension.
Com o manifest.json
, é possível especificar metadados sobre a extensão a que pertence, tal como o nome, a versão, e funcionalidades como scripts de background, scripts de conteúdo, e ações de browser.
O manifest.json
é um ficheiro em formato JSON, mas também suporta comentários do tipo "//".
Propriedades do manifest.json
Seguem-se as propriedades que o manifest.json
suporta:
- author
- background
- browser_action
- browser_specific_settings
- chrome_settings_overrides
- chrome_url_overrides
- commands
- content_scripts
- content_security_policy
- default_locale
- description
- developer
- devtools_page
- dictionaries
- externally_connectable
- homepage_url
- icons
- incognito
- manifest_version
- name
- offline_enabled
- omnibox
- optional_permissions
- options_page
- options_ui
- page_action
- permissions
- protocol_handlers
- short_name
- sidebar_action
- storage
- theme
- theme_experiment
- user_scripts
- version
- version_name
- web_accessible_resources
Notas sobre propriedades do manifest.json
as únicas propriedades obrigatórias são "manifest_version"
,"version"
, e"name"
."default_locale"
só é obrigatório se existir uma pasta "_locales". Caso contrário, a propriedade não pode existir.-
"browser_specific_settings"
não é compatível com Google Chrome.
Como aceder a propriedades manifest.json em runtime
É possível aceder ao manifest.json
de uma extensão a partir de um script da mesma, com a função de JavaScript runtime.getManifest()
:
browser.runtime.getManifest().version;
Compatibilidade de browsers
BCD tables only load in the browser
Exemplo
Os exemplos seguintes demonstram como funcionam algumas propriedades comuns nos manifest.json.
Nota: Estes exemplos não funcionam se forem simplesmente copiados e colados. As propriedades necessárias são determinadas pelas características de cada extensão
Para ver exemplos completos de extensões, veja a página Exemplos de extensões.
{
"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"]
}
Compatibilidade de browsers
Consulte a tabela de compatibilidade de browsers do manifest.json para saber que browsers suportam cada propriedade do manifest.json
.
Ver também
permissions
JavaScript API