Formato do arquivo de manifesto

Cada extensão precisa ter um arquivo manifest.json no diretório raiz que liste informações importantes sobre a estrutura e o comportamento dessa extensão. Esta página explica a estrutura dos manifestos de extensão e os recursos que eles podem incluir.

Exemplos

Os manifestos de exemplo abaixo mostram a estrutura básica do manifesto e alguns recursos comumente usados 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"]
}
{
  "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

Esta é uma lista de todas as chaves de manifesto compatíveis.

Chaves exigidas pela plataforma Extensions

"manifest_version"
Um número inteiro que especifica a versão do formato do arquivo de manifesto que sua extensão usa. 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 de extensões do Chrome do usuário (chrome://extensions). O tamanho 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 dos números de versão, consulte Versão.

Chaves exigidas pela 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 (em inglês).
"icons"
Um ou mais ícones que representam sua extensão. Para ver 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 Google. Para ver mais informações, consulte chrome.action.
"author"
Especifica o endereço de e-mail da conta que foi usada para criar a extensão.
"background"
Especifica o arquivo JavaScript que contém o service worker da extensão, que atua como um manipulador de eventos. Para mais informações, consulte Sobre os service workers de extensão.
"chrome_settings_overrides"
Define as substituições para as configurações selecionadas do Chrome. Para mais informações, consulte Modificar configurações do Chrome.
"chrome_url_overrides"
Define substituições de páginas padrão do Chrome. Para saber mais, consulte Substituir páginas do Chrome.
"commands"
Define atalhos de teclado dentro da extensão. Para mais informações, consulte chrome.commands.
"content_scripts"
Especifica os arquivos JavaScript ou CSS que serão 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 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 de origem cruzada 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 de origem cruzada.
"declarative_net_request"
Define as 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 é obrigatória em extensões localizadas e não pode ser usada em extensões não localizadas. Para mais informações, consulte Internacionalização (em inglês).
"devtools_page"
Define as páginas que usam as APIs 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 ela não for definida, o padrão será a página da Chrome Web Store da extensão. Esse campo é útil principalmente se você hospeda a extensão no seu próprio site.
"host_permissions"
Lista as páginas da Web com as quais sua 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 de host.
"import"
Permite que 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 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, como "107" ou "107.0.5304.87". Os usuários com versões do Chrome anteriores à versão mínima veem o aviso "Não compatível" na Chrome Web Store e não conseguem instalar a extensão. Se você adicioná-la a uma extensão existente, os usuários com uma versão mais antiga do Chrome não receberão atualizações automáticas da extensão. Isso inclui usuários comerciais no modo temporário.
"oauth2"
Permite o uso de um ID de segurança do OAuth 2.0. O valor dessa chave precisa ser um objeto com as propriedades "client_id" e "scopes". Para 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 de host opcionais para sua extensão.
"optional_permissions"
Declara permissões opcionais para sua extensão.
"options_page"
Especifica um caminho para um arquivo options.html para a extensão usar como uma página de opções. Para mais informações, consulte Oferecer 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 de extensões do Chrome. Para mais informações, consulte Opções incorporadas.
"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 dos requisitos aceitos, consulte Requisitos.
"sandbox"
Define um conjunto de páginas de extensão que não têm acesso às APIs de extensão ou acesso direto a páginas fora do sandbox. Para mais informações, consulte Sandbox.
"short_name"
Uma string contendo uma versão abreviada do nome da extensão a ser usada quando o espaço de caracteres for limitado. O tamanho máximo é de 12 caracteres. Se esse valor não for definido, uma versão truncada da chave "name" vai aparecer.
"side_panel"
Identifica um arquivo HTML a ser exibido em um sidePanel.
"storage"
Declara um esquema JSON para a área de armazenamento gerenciado. Para saber mais, 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 contendo o URL da página de atualizações da extensão. Use essa chave se você estiver hospedando sua extensão fora da Chrome Web Store.
"version_name"
String que descreve a versão da extensão. Os exemplos incluem "1.0 beta" e "build rc2". Se esse valor não for especificado, o valor "version" será exibido na página de gerenciamento de extensões.
"web_accessible_resources"
Define os arquivos dentro da extensão que podem ser acessados por páginas da Web ou outras extensões. Para mais informações, consulte Recursos acessíveis à Web.

Chaves opcionais do ChromeOS

"file_browser_handlers"
Concede acesso à API fileBrowserHandler, que permite que as extensões acessem o navegador de arquivos do ChromeOS.
"file_handlers"
Especifica os tipos de arquivo a serem processados pelas extensões do ChromeOS. Para mais informações, consulte file_handlers.
"file_system_provider_capabilities"
Permite acesso à API fileSystemProvider, que permite que as extensões criem sistemas de arquivos que o ChromeOS pode usar.
"input_components"
Permite o uso da API Input Method Editor. Para mais informações, consulte input_components.