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, que são 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"
Concedidos pelo usuário no momento da execução, e não na instalação.
"content_scripts.matches"
Contém um ou mais padrões de correspondência que permitem que scripts de conteúdo sejam injetados 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"
Fornecidas pelo usuário no momento da execução, e não na instalação.

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

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

Se uma API exigir uma permissão, a documentação explica como declará-la. Para um exemplo, consulte 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 de correspondência do URL. Algumas APIs do Chrome exigem permissões de host, além de suas próprias permissões de API, que estão documentadas em cada página de referência. Veja 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 da extensão na instalação

É mais provável que os usuários confiem em uma extensão com avisos limitados ou quando as permissões são explicadas a eles. Considere implementar permissões opcionais ou uma API menos eficiente para evitar alarmes de alertas. Para conferir as práticas recomendadas para avisos, consulte as Diretrizes de avisos de permissão. Específicas avisos são listados com as permissões às quais se aplicam na Lista de referências de Permissions.

adicionar ou mudar padrões de correspondência em "host_permissions" e "content_scripts.matches"; do arquivo de manifesto também vai acionar um aviso. Para saber mais, consulte Atualização de permissões.

Permitir acesso

Se sua extensão precisar ser executada em URLs do file:// ou funcionar no modo de navegação anônima, os usuários precisarão conceder acesso à extensão na página de detalhes. Você pode encontrar 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. Escolha Gerenciar extensão.

    Menu de contexto da extensão
    Menu da extensão
  3. Role para baixo para ativar o acesso a URLs de 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 ativado 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()