Cada extensão precisa ter um arquivo manifest.json no diretório raiz que
listem informações importantes sobre a estrutura e o comportamento dessa extensão.
Esta página explica a estrutura de manifestos de extensão e os recursos que eles
podem incluir.
Exemplos
Os exemplos de manifestos abaixo mostram a estrutura básica e alguns recursos usados com frequência como ponto de partida para criar seu próprio manifesto:
Manifesto mínimo
{
  "manifest_version": 3,
  "name": "Minimal Manifest",
  "version": "1.0.0",
  "description": "A basic example extension with only required keys",
  "icons": {
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  }
}
Registrar um script de conteúdo
{
  "manifest_version": 3,
  "name": "Run script automatically",
  "description": "Runs a script on www.example.com automatically when user installs the extension",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "content_scripts": [
    {
      "js": [
        "content-script.js"
      ],
      "matches": [
        "http://*.example.com//"
      ]
    }
  ]
}
Injetar um script de conteúdo
{
  "manifest_version": 3,
  "name": "Click to run",
  "description": "Runs a script when the user clicks the action toolbar icon.",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "background": {
    "service_worker": "service-worker.js"
  },
  "action": {
    "default_icon": {
      "16": "images/icon-16.png",
      "32": "images/icon-32.png",
      "48": "images/icon-48.png",
      "128": "images/icon-128.png"
    }
  },
  "permissions": ["scripting", "activeTab"]
}
Pop-up com permissões
{
  "manifest_version": 3,
  "name": "Popup extension that requests permissions",
  "description": "Extension that includes a popup and requests host permissions and storage permissions .",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "action": {
    "default_popup": "popup.html"
  },
  "host_permissions": [
    "https://*.example.com/"
  ],
  "permissions": [
    "storage"
  ]
}
Painel lateral
{
  "manifest_version": 3,
  "name": "Side panel extension",
  "version": "1.0",
  "description": "Extension with a default side panel.",
  "icons": {
    "16": "images/icon-16.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "side_panel": {
    "default_path": "sidepanel.html"
  },
  "permissions": ["sidePanel"]
}
Chaves de manifesto
Confira a seguir uma lista de todas as chaves de manifesto com suporte.
Chaves exigidas pela plataforma de extensões
- "manifest_version"
- Um número inteiro que especifica a versão do formato de arquivo de manifesto usado pela
sua extensão. O único valor aceito é 3.
- "name"
- Uma string que identifica a extensão na Chrome Web
Store, na caixa de diálogo de instalação e
na página "Extensões do Chrome" do usuário (chrome://extensions). O comprimento máximo é de 75 caracteres. Para informações sobre como usar nomes específicos de localidade, consulte Internacionalização.
- "version"
- Uma string que identifica o número da versão da extensão. Para informações sobre a formatação do número da versão, consulte Versão.
Chaves necessárias para a Chrome Web Store
- "description"
- Uma string que descreve a extensão na Chrome Web Store e na página de gerenciamento de extensões do usuário. O tamanho máximo é de 132 caracteres. Para informações sobre a localização de descrições, consulte Internacionalização.
- "icons"
- Um ou mais ícones que representam a extensão. Para informações sobre as práticas recomendadas, consulte Ícones.
Chaves opcionais
- "action"
- Define a aparência e o comportamento do ícone da extensão na barra de ferramentas do
Google. Para ver mais informações, consulte chrome.action.
- "background"
- Especifica o arquivo JavaScript que contém o worker de serviço da extensão, que atua como um manipulador de eventos. Para mais informações, consulte Sobre os workers de serviço de extensão.
- "chrome_settings_overrides"
- Define substituições para configurações selecionadas do Chrome. Para mais informações, consulte Como substituir as configurações do Chrome.
- "chrome_url_overrides"
- Define substituições para páginas padrão do Chrome. Para mais informações, consulte Substituir páginas do Chrome.
- "commands"
- Define atalhos de teclado na extensão. Para mais informações, consulte chrome.commands.
- "content_scripts"
- Especifica arquivos JavaScript ou CSS a serem usados quando o usuário abrir determinadas páginas da Web. Para mais informações, consulte Scripts de conteúdo.
- "content_security_policy"
- Define restrições nos scripts, estilos e outros recursos que uma extensão pode usar. Para mais informações, consulte a Política de segurança de conteúdo.
- "cross_origin_embedder_policy"
- Especifica um valor para o cabeçalho HTTP Cross-Origin-Embedder-Policy, que configura a incorporação de recursos entre origens em uma página de extensão.
- "cross_origin_opener_policy"
- Especifica um valor para o cabeçalho HTTP Cross-Origin-Opener-Policy, que permite garantir que uma página de extensão de nível superior não compartilhe um grupo de contexto de navegação com documentos entre origens.
- "declarative_net_request"
- Define regras estáticas para a API declarativeNetRequest, que permite bloquear e modificar solicitações de rede.
- "default_locale"
- Uma string que define o idioma padrão de uma extensão compatível com várias localidades. Por exemplo, "en" e "pt_BR". Essa chave é necessária em extensões localizadas e não pode ser usada em extensões não localizadas. Para mais informações, consulte Internacionalização.
- "devtools_page"
- Define as páginas que usam as APIs do DevTools.
- "export"
- Permite que os recursos sejam exportados da extensão. Para mais informações, consulte Exportar.
- "externally_connectable"
- Especifica quais outras páginas e extensões podem se conectar às suas extensões. Para
mais informações, consulte "externally_connectable".
- "homepage_url"
- Uma string que especifica um URL para a página inicial da extensão. Se esse valor não for definido, a página inicial será a página da Chrome Web Store da extensão. Esse campo é especialmente útil se você hospedar a extensão no seu próprio site.
- "host_permissions"
- Lista as páginas da Web com as quais a extensão pode interagir, definidas usando padrões de correspondência de URL. A permissão do usuário para esses sites é solicitada no momento da instalação. Para mais informações, consulte Permissões do host.
- "import"
- Permite que os recursos sejam importados para a extensão. Para mais informações, consulte Importar.
- "incognito"
- Define como a extensão se comporta no modo de navegação anônima. Os valores aceitos são
"spanning","split"e"not_allowed". Para mais informações, consulte Navegação anônima.
- "key"
- Especifica o ID da sua extensão para vários casos de uso de desenvolvimento. Para mais informações, consulte Chave.
- "minimum_chrome_version"
- Define a versão mais antiga do Chrome que pode instalar sua extensão. O valor
precisa ser uma substring de uma string de versão do navegador Chrome existente, como
"107"ou"107.0.5304.87". Os usuários com versões do Chrome mais antigas que a mínima recebem um aviso "Não é compatível" na Chrome Web Store e não conseguem instalar a extensão. Se você adicionar isso a uma extensão existente, os usuários com uma versão mais antiga do Chrome não vão receber atualizações automáticas da extensão. Isso inclui usuários empresariais no modo temporário.
- "oauth2"
- Permite o uso de um ID de segurança OAuth 2.0. O valor dessa chave precisa ser um
objeto com as propriedades "client_id"e"scopes". Para mais detalhes, consulte o tutorial do OAuth 2.0.
- "omnibox"
- Permite que a extensão registre uma palavra-chave na barra de endereço do Chrome. Para mais informações, consulte Omnibox.
- "optional_host_permissions"
- Declara permissões do host opcionais para sua extensão.
- "optional_permissions"
- Declara permissões opcionais para a extensão.
- "options_page"
- Especifica um caminho para um arquivo options.html que a extensão vai usar como página de opções. Para mais informações, consulte Dar opções aos usuários.
- "options_ui"
- Especifica um caminho para um arquivo HTML que permite que o usuário mude as opções de extensão na página "Extensões do Chrome". Para mais informações, consulte Opções de incorporação.
- "permissions"
- Permite o uso de APIs de extensão específicas. Consulte Permissões para uma explicação geral. As páginas de referência de APIs individuais listam as permissões necessárias.
- "requirements"
- Lista as tecnologias necessárias para usar a extensão. Para conferir uma lista de requisitos compatíveis, consulte Requisitos.
- "sandbox"
- Define um conjunto de páginas de extensão que não têm acesso a APIs de extensão ou acesso direto a páginas sem sandbox. Para mais informações, consulte Sandbox.
- "short_name"
- Uma string que contém uma versão abreviada do nome da extensão a ser usada quando o espaço de caracteres é limitado. O tamanho máximo é de 12 caracteres. Se esse valor não for definido, uma versão truncada da chave "name" será mostrada.
- "side_panel"
- Identifica um arquivo HTML para exibição em um sidePanel.
- "storage"
- Declara um esquema JSON para a área de armazenamento gerenciada. Para mais informações, consulte Manifesto para áreas de armazenamento.
- "tts_engine"
- Registra a extensão como um mecanismo de conversão de texto em voz. Para mais informações, consulte a API ttsEngine.
- "update_url"
- Uma string que contém o URL da página de atualizações da extensão. Use essa chave se você hospedar sua extensão fora da Chrome Web Store.
- "version_name"
- Uma string que descreve a versão da extensão. Os exemplos incluem "1.0 beta"e"build rc2". Se isso não for especificado, o valor "versão" será exibido na página de gerenciamento da extensão.
- "web_accessible_resources"
- Define os arquivos na extensão que podem ser acessados por páginas da Web ou outras extensões. Para mais informações, consulte Recursos acessíveis na Web.
Teclas opcionais do ChromeOS
- "file_browser_handlers"
- Dá acesso à API fileBrowserHandler, que permite que as extensões acessem o navegador de arquivos do ChromeOS.
- "file_handlers"
- Especifica os tipos de arquivo que as extensões do ChromeOS podem processar. Para mais informações, confira file_handlers.
- "file_system_provider_capabilities"
- Permite o acesso à API fileSystemProvider, que permite que as extensões criem sistemas de arquivos que o ChromeOS possa usar.
- "input_components"
- Permite o uso da API Input Method Editor. Para mais informações, consulte input_components.