Tipo Array
Obrigatório Não
Examplo
"permissions": [
  "*://developer.mozilla.org/*",
  "webRequest"
]

Use a chave permissions para solicitar privilégios especiais para sua extensão. Esta chave é um array de strings, onde cada string é uma solicitação para uma permissão.

Se você solicitar permissões usando esta chave, o navegador poderá informar ao usuário que a extensão a ser instalada está solicitando certos privilégios, e perguntar se aceita ou não conceder esses privilégios. O navegador também poderá permitir que o usuário inspecione os privilégios de uma extensão depois que essa for instalada.

A chave pode conter três tipos de permissões:

  • permissões de servidor (host)
  • permissões de API
  • a permissão activeTab (aba ativa)

Permissões de servidor (host)

Permissões de servidor são espscificadas como match patterns. Cada pattern identifica um grupo de URLs para os quais a extensão solicita privilégios adicionais. Por exemplo, uma permissão de servidor poderia ser "*://developer.mozilla.org/*".

Os privilégios adicionais incluem:

  • acesso XMLHttpRequest e fetch para aquelas origens sem restrições cross-origin (mesmo para requisições feitas a partir de content scripts)
  • habilidade de injetar scripts programaticamente (usando tabs.executeScript) em páginas servidas a partir daquelas origens
  • habilidade de receber eventos a partir da API webRequest para aqueles servidores
  • habilidade de acessar cookies daquele servidor usando a API cookies, caso a permissão de API "cookies" também esteja incluída.
  • desconsiderar a proteção contra rastreamento se o servidor for um domínio completo sem asteriscos. Não funciona com <all_urls>.

No Firefox, da versão 56 em diante, extensões recebem automaticamente permissões de servidor para sua própria origem, que é na forma:

moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/

onde 60a20a9b-1ad4-af49-9b6c-c64c98c37920 é o ID interno da extensão. A extensão pode obter essa URL programaticamente chamando extension.getURL():

browser.extension.getURL("");
// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/

Permissões de API

Permissões de API são especificadas como palavras-chave. Cada palavra-chave nomeia uma API WebExtension que a extensão gostaria de usar.

As seguintes palavras-chave estão atualmente disponíveis:

  • activeTab
  • alarms
  • background
  • bookmarks
  • browserSettings
  • browsingData
  • contentSettings
  • contextMenus
  • contextualIdentities
  • cookies
  • debugger
  • dns
  • downloads
  • downloads.open
  • find
  • geolocation
  • history
  • identity
  • idle
  • management
  • menus
  • nativeMessaging
  • notifications
  • pageCapture
  • pkcs11
  • privacy
  • proxy
  • search
  • sessions
  • storage
  • tabHide
  • tabs
  • theme
  • topSites
  • webNavigation
  • webRequest
  • webRequestBlocking

Na maioria dos casos, a permissão apenas concede acesso à API, com as seguintes exceções:

Permissão activeTab (aba ativa)

Esta permissão é especificada como "activeTab". Se uma extensão tem a permissão activeTab, quando o usuário interage com a extensão, a extensão recebe privilégios adicionais somente para a aba ativa.

"Interação do usuário" inclui:

  • o usuário clica na ação da extensão, no navegador ou na página
  • o usuário seleciona um item da extensão no menu de contexto
  • o usuário ativa um atalho de teclado definido pela extensão

Os privilégios adicionais são:

A intenção desta permissão é permitir que extensões executem um caso de uso comum, sem ter que lhes dar permissões poderosas demais. Muitas extensões querem "fazer alguma coisa com a página atual quando o usuário pede". Por exemplo, considere uma extensão que queira executar um script na página atual quando o usuário clicar em uma ação do navegador. Se a permissão  activeTab não existisse, a extensão precisaria pedir a permissão de servidor <all_urls>. Mas isso daria à extensão mais poder que o necessário: ela poderia executar scripts em qualquer aba e quando quisesse, em vez de apenas na aba atual e somente em resposta a uma ação do usuário.

Note que você só pode ter acesso à aba ou dado que estava ali, quando a interação do usuário ocorreu (por exemplo, um clique do mouse). Quando a aba ativa muda para outra página, por exemplo devido a concluir o carregamento ou algum outro evento, a permissão não lhe concede mais acesso à aba.

Normalmente, a aba a qual foi concedido activeTab é somente a aba ativa atual, exceto em um caso. A API menus permite a uma extensão criar um item de menu que é exibido se o usuário abrir o menu de contexto sobre uma aba (ou seja, no elemento na lista de abas que permite ao usuário mudar de uma aba para outra). Se o usuário clicar em um item desses, a permissão activeTab é concedida para a aba em que o usuário clicou, mesmo que essa não seja a aba ativa no momento (de acordo com Firefox 63, bug 1446956).

Acesso à área de transferência

Existem duas permissões que permitem à extensão interagir com a área de transferência:

  • clipboardWrite: escrever para a área de transferência usando document.execCommand("copy") ou document.execCommand("cut")
  • clipboardRead: ler da área de transferência usando document.execCommand("paste")

Consulte Interação com a área de transferência para saber todos os detalhes sobre isso.

Armazenamento ilimitado

A permissão unlimitedStorage:

Examplos

 "permissions": ["*://developer.mozilla.org/*"]

Solicita acesso privilegiado a páginas sob developer.mozilla.org.

  "permissions": ["tabs"]

Solicita acesso a partes privilegiadas da API tabs.

  "permissions": ["*://developer.mozilla.org/*", "tabs"]

Solicita ambas as permissões anteriores.

Compatibilidade com navegadores

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxOperaFirefox for Android
Basic supportChrome Full support YesEdge Full support 14Firefox Full support 48Opera Full support YesFirefox Android Full support 48
activeTabChrome Full support YesEdge No support NoFirefox Full support 48Opera Full support YesFirefox Android Full support 48
alarmsChrome Full support YesEdge No support NoFirefox Full support 45Opera Full support YesFirefox Android Full support 48
backgroundChrome Full support 10Edge No support NoFirefox No support NoOpera No support NoFirefox Android No support No
bookmarksChrome Full support YesEdge Full support 15Firefox Full support 45Opera Full support YesFirefox Android No support No
browserSettingsChrome No support NoEdge No support NoFirefox Full support 56Opera No support NoFirefox Android Full support 56
browsingDataChrome Full support YesEdge No support NoFirefox Full support 53Opera Full support YesFirefox Android Full support 56
clipboardReadChrome Full support YesEdge No support NoFirefox Full support 54Opera Full support YesFirefox Android Full support 54
clipboardWriteChrome Full support YesEdge No support NoFirefox Full support 51Opera Full support YesFirefox Android Full support 51
contentSettingsChrome Full support YesEdge No support NoFirefox No support NoOpera Full support YesFirefox Android No support No
contextMenusChrome Full support YesEdge Full support 14Firefox Full support 55
Notes
Full support 55
Notes
Notes Available as an alias to the menus permission.
Opera Full support YesFirefox Android No support No
contextualIdentitiesChrome No support NoEdge No support NoFirefox Full support 53Opera No support NoFirefox Android Full support 53
cookiesChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 48
debuggerChrome Full support YesEdge No support NoFirefox No support NoOpera Full support YesFirefox Android No support No
dnsChrome No support NoEdge No support NoFirefox Full support 60Opera No support NoFirefox Android Full support 60
downloadsChrome Full support YesEdge No support NoFirefox Full support 47Opera Full support YesFirefox Android Full support 48
downloads.openChrome Full support YesEdge No support NoFirefox Full support 48Opera Full support YesFirefox Android Full support 48
findChrome No support NoEdge No support NoFirefox Full support 57Opera No support NoFirefox Android No support No
geolocationChrome Full support YesEdge Full support 14Firefox Full support 54Opera Full support YesFirefox Android Full support 54
historyChrome Full support YesEdge No support NoFirefox Full support 49Opera Full support YesFirefox Android No support No
identityChrome Full support YesEdge No support NoFirefox Full support 53Opera Full support YesFirefox Android No support No
idleChrome Full support YesEdge Full support 15Firefox Full support 45Opera Full support YesFirefox Android Full support 48
managementChrome Full support YesEdge No support NoFirefox Full support 51Opera Full support YesFirefox Android Full support 51
menusChrome No support NoEdge No support NoFirefox Full support 53Opera No support NoFirefox Android No support No
nativeMessagingChrome Full support 29Edge Full support 15Firefox Full support 50Opera Full support 16Firefox Android No support No
notificationsChrome Full support 5Edge No support NoFirefox Full support 45Opera Full support 25Firefox Android Full support 48
pageCaptureChrome Full support YesEdge No support NoFirefox No support NoOpera Full support YesFirefox Android No support No
pkcs11Chrome No support NoEdge No support NoFirefox Full support 58Opera No support NoFirefox Android No support No
privacyChrome Full support YesEdge No support NoFirefox Full support 54Opera Full support YesFirefox Android Full support 54
proxyChrome No support NoEdge No support NoFirefox Full support 55Opera No support NoFirefox Android Full support 55
sessionsChrome Full support YesEdge No support NoFirefox Full support 52Opera Full support YesFirefox Android No support No
storageChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 48
tabsChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 54
themeChrome No support NoEdge No support NoFirefox Full support 55Opera No support NoFirefox Android No support No
topSitesChrome Full support YesEdge No support NoFirefox Full support 52Opera Full support YesFirefox Android Full support 52
unlimitedStorageChrome Full support YesEdge Full support 14Firefox Full support 56Opera No support NoFirefox Android Full support 56
webNavigationChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support 17Firefox Android Full support 48
webRequestChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 48
webRequestBlockingChrome Full support YesEdge Full support 14Firefox Full support 45Opera Full support YesFirefox Android Full support 48

Legend

Full support  
Full support
No support  
No support
See implementation notes.
See implementation notes.

Etiquetas do documento e colaboradores

Colaboradores desta página: MarceloGhelman, Weslei
Última atualização por: MarceloGhelman,