Declarar permissões

Para usar a maioria das APIs de extensão e dos recursos, é necessário declarar a intent da sua extensão nos campos de permissões do manifesto. As extensões podem solicitar as seguintes categorias de permissões, especificadas usando as respectivas chaves de manifesto:

"permissions"
Contém itens de uma lista de strings conhecidas. As mudanças podem acionar um aviso.
"optional_permissions"
Concedido pelo usuário no momento da execução, e não no momento da instalação.
"content_scripts.matches"
Contém um ou mais padrões de correspondência que permitem que scripts de conteúdo injetem em um ou mais hosts. As mudanças podem acionar um aviso.
"host_permissions"
Contém um ou mais padrões de correspondência que dão acesso a um ou mais hosts. As mudanças podem acionar um aviso.
"optional_host_permissions"
Concedido pelo usuário no momento da execução, e não no momento da instalação.

As permissões ajudam a limitar os danos caso sua extensão seja comprometida por malware. Alguns avisos de permissão são exibidos aos usuários antes da instalação ou durante a execução, conforme detalhado em Permissão com avisos.

Considere usar permissões opcionais sempre que a funcionalidade da extensão permitir, para fornecer aos usuários controle informado sobre o acesso a recursos e dados.

Se uma API exige uma permissão, a documentação explica como declará-la. Veja um exemplo em API Storage.

Manifesto

Este é um exemplo da seção de permissões de um arquivo de manifesto:

manifest.json:

{
  "name": "Permissions Extension",
  ...
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  "optional_permissions": [
    "topSites",
  ],
  "host_permissions": [
    "https://www.developer.chrome.com/*"
  ],
  "optional_host_permissions":[
    "https://*/*",
    "http://*/*"
  ],
  ...
  "manifest_version": 3
}

Permissões do host

As permissões de host permitem que as extensões interajam com os padrões correspondentes do URL. Algumas APIs do Chrome exigem permissões de host, além das próprias permissões de API, que estão documentadas em cada página de referência. Confira alguns exemplos:

Permissões com avisos

Quando uma extensão solicita várias permissões e muitas delas exibem avisos na instalação, o usuário verá uma lista de avisos, como no exemplo a seguir:

Avisos de permissão de extensão na instalação

Os usuários são mais propensos a confiar em uma extensão com avisos limitados ou quando as permissões são explicadas para eles. Considere implementar permissões opcionais ou uma API menos eficiente para evitar avisos Alarmes. Consulte as práticas recomendadas para avisos em Diretrizes de avisos de permissão. Os avisos específicos são listados com as permissões a que se aplicam na lista de referência Permissões.

Adicionar ou mudar padrões de correspondência nos campos "host_permissions" e "content_scripts.matches" do arquivo de manifesto também aciona um aviso. Para saber mais, consulte Como atualizar permissões.

Permitir acesso

Se sua extensão precisar ser executada em URLs do file:// ou no modo de navegação anônima, os usuários precisarão conceder acesso à extensão na página de detalhes. Encontre instruções para abrir a página de detalhes em Gerenciar suas extensões.

Permitir acesso a URLs de arquivos e páginas anônimas

  1. Clique com o botão direito do mouse no ícone da extensão no Chrome.
  2. Selecione Gerenciar extensão.

    Menu de contexto da extensão
    Menu da extensão
  3. Role para baixo para ativar o acesso aos URLs dos arquivos ou ao modo de navegação anônima.

    Permitir URLs de arquivos e o modo de navegação anônima na página de detalhes da extensão
    Acesso a URLs de arquivos e modo de navegação anônima.

Para detectar se o usuário permitiu o acesso, chame extension.isAllowedIncognitoAccess() ou extension.isAllowedFileSchemeAccess().