Cada extensão precisa ter um arquivo manifest.json no diretório raiz que
liste informações importantes sobre a estrutura e o comportamento dela.
Nesta página, explicamos a estrutura dos manifestos de extensão e os recursos que eles podem incluir.
Exemplos
Os exemplos de manifesto a seguir 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 abaixo uma lista de todas as chaves de manifesto compatíveis.
Chaves necessárias para a plataforma Extensions
"manifest_version"- Um número inteiro que especifica a versão do formato do arquivo de manifesto usado pela
extensão. O único valor compatível é
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 da localidade, consulte Internacionalização. "version"- Uma string que identifica o número da versão da extensão. Para informações sobre formatação de número de 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 como localizar descrições, consulte Internacionalização.
"icons"- Um ou mais ícones que representam sua extensão. Para informações sobre as práticas recomendadas, consulte Icons.
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 service worker da extensão, que atua como um manipulador de eventos. Para mais informações, consulte Sobre service workers de extensões.
"chrome_settings_overrides"- Define substituições para as configurações selecionadas do Chrome. Para mais informações, consulte 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 abre 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 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 de origem cruzada.
"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 é obrigatória em extensões localizadas e não pode ser usada 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 DevTools.
"export"- Permite que os recursos sejam exportados da extensão. Para mais informações, consulte Exportar.
"externally_connectable"- Especifica a quais outras páginas e extensões suas extensões podem se conectar. Para mais informações, consulte
"externally_connectable". "homepage_url"- Uma string que especifica um URL para a página inicial da extensão. Se não estiver definido, a página inicial será a página da extensão na Chrome Web Store. Esse campo é especialmente útil se você hospedar a extensão no seu próprio site.
"host_permissions"- Lista as páginas da Web com que 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 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 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 mais antigas que a mínima recebem um aviso de "Não compatível" na Chrome Web Store e não conseguem instalar sua extensão. Se você adicionar isso a uma extensão atual, 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 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 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 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 que a extensão vai 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 um usuário mude as opções de extensão na página "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 para APIs individuais listam as permissões necessárias.
"requirements"- Lista as tecnologias necessárias para usar a extensão. Para uma lista de requisitos compatíveis, 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 não isoladas em 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 for indefinido, uma versão truncada da chave "name" será exibida.
"side_panel"- Identifica um arquivo HTML para mostrar em um sidePanel.
"storage"- Declara um esquema JSON para a área de armazenamento gerenciado. 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ê estiver hospedando sua extensão fora da Chrome Web Store.
"version_name"- Uma string que descreve a versão da extensão. Por exemplo,
"1.0 beta"e"build rc2". Se não for especificado, o valor "version" vai aparecer na página de gerenciamento de extensões. "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 pela Web.
Teclas opcionais do ChromeOS
"file_browser_handlers"- Fornece acesso à API
fileBrowserHandlerque permite que as extensões acessem o navegador de arquivos do ChromeOS. "file_handlers"- Especifica os tipos de arquivos que as extensões do ChromeOS podem processar. Para mais informações, confira
file_handlers. "file_system_provider_capabilities"- Permite o acesso à API
fileSystemProviderque permite que as extensões criem sistemas de arquivos que o ChromeOS pode usar. "input_components"- Permite o uso da API Editor de método de entrada. Para mais informações, consulte
input_components.