Formato do arquivo de manifesto

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

Exemplos

Os manifestos de exemplo a seguir mostram a estrutura básica do manifesto e algumas recursos mais 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 seu usos da extensão. O único valor aceito é 3.
"name"
Uma string que identifica a extensão no Chrome Web Store, a caixa de diálogo de instalação e à página de extensões do Google Chrome do usuário (chrome://extensions). A 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 de versão da extensão. Para informações sobre a formatação do número da versão, consulte Versão.

Chaves exigidas pela Chrome Web Store

"description"
Uma string que descreve a extensão na Chrome Web Store e no endereço do usuário página de gerenciamento de extensões. 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 sua extensão. Para mais informações sobre consulte Ícones.

Chaves opcionais

"action"
Define a aparência e o comportamento do ícone da extensão no Google Barra de ferramentas Para ver mais informações, consulte chrome.action.
"author"
Especifica o endereço de e-mail da conta usada para criar .
"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 o serviço de extensão workers.
"chrome_settings_overrides"
Define substituições para as configurações selecionadas do Chrome. Para mais informações, consulte Substituindo as configurações do Chrome.
"chrome_url_overrides"
Define substituições de páginas padrão do Chrome. Para mais informações, consulte Substituir páginas do Chrome.
"commands"
Define os atalhos de teclado da extensão. Para mais mais informações, consulte chrome.commands.
"content_scripts"
Especifica os arquivos JavaScript ou CSS que serão usados quando o usuário abrir determinados arquivos da Web páginas de destino. Para mais informações, consulte Scripts de conteúdo.
"content_security_policy"
Define as restrições nos scripts, estilos e outros recursos de uma extensão podem 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 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 garante que uma página de extensão de nível superior não compartilhe um contexto de navegação grupo com documentos de origem cruzada.
"declarative_net_request"
Define regras estáticas para declarativeNetRequest que permite bloquear e modificar as solicitações de rede.
"default_locale"
Uma string que define o idioma padrão de uma extensão compatível em várias localidades. Por exemplo, "en" e "pt_BR". Essa chave é obrigatória em extensões localizadas e não devem ser usadas em extensões que não são localizadas. Para mais informações, consulte Internacionalização.
"devtools_page"
Define páginas que usam as APIs do DevTools.
"export"
Permite que os recursos sejam exportados pela 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 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 estiver indefinido, Por padrão, a página inicial é a página da Chrome Web Store da extensão. Este campo é especialmente útil se você hospedar a extensão no seu site.
"host_permissions"
Lista as páginas da Web com as quais sua extensão pode interagir, definidas usando padrões de correspondência do URL. A permissão do usuário para esses sites é solicitada na instalação tempo de resposta. Para mais informações, consulte Permissões do host.
"import"
Permite importar recursos 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 mais informações, consulte Chave.
"minimum_chrome_version"
Define a versão mais antiga do Chrome que pode instalar a extensão. O valor precisa ser uma substring de uma string de versão do navegador Chrome, como "107" ou "107.0.5304.87". Usuários com versões do Chrome mais antigas que a versão mínima veem um erro "Não compatível" na Chrome Web Store e não foi possível instalar sua extensão. Se você adicioná-lo a uma extensão existente, os usuários cuja versão do Chrome é mais antiga não receberão atualizações automáticas da sua . Isso inclui usuários comerciais temporário.
"oauth2"
Permite o uso de um ID de segurança do OAuth 2.0. O valor desta chave deve ser um com as propriedades "client_id" e "scopes". Para mais detalhes, consulte a documentação do OAuth 2.0.
"omnibox"
Permite que a extensão registre uma palavra-chave na barra de endereço do Chrome. Para mais mais informações, consulte Omnibox.
"optional_host_permissions"
Declara o host opcional permissões 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 na página de opções. Para mais informações, consulte Fornecer aos usuários .
"options_ui"
Especifica um caminho para um arquivo HTML que permite que um usuário altere as opções de extensão na página "Extensões do Chrome". Para mais informações, consulte 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 cada API listam os as permissões necessárias.
"requirements"
Lista as tecnologias necessárias para usar a extensão. Para uma lista de dispositivos com suporte requisitos, 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 fora do 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 dos caracteres é limitado. O tamanho máximo é de 12 caracteres. Se for indefinido, uma versão truncada do "nome" no lugar dele.
"side_panel"
Identifica um arquivo HTML a ser exibido em um sidePanel.
"storage"
Declara um esquema JSON para o armazenamento gerenciado área. 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 contendo o URL da página de atualizações da extensão. Use essa chave se você está hospedando 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 não for especificada, a "versão" é 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 Acessibilidade da Web Recursos.

Chaves opcionais do ChromeOS

"file_browser_handlers"
Fornece acesso ao fileBrowserHandler API 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 devem gerenciar. Para mais informações, confira file_handlers.
"file_system_provider_capabilities"
Permite o acesso ao 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.