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:

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