--- title: permissões slug: Mozilla/Add-ons/WebExtensions/manifest.json/permissions translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/permissions original_slug: Mozilla/Add-ons/WebExtensions/manifest.json/permissões ---
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 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:
<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 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:
tabs
dá acesso a partes privilagiadas da API tabs
: Tab.url
, Tab.title
e Tab.faviconUrl
. No Firefox, você também precisa tabs
se quiser incluir url
no parâmetro queryInfo
para tabs.query()
. O resto ad API tabs
pode ser usado sem solicitar nenhuma permissão.webRequestBlocking
permite usar o argumento "blocking", assim você pode modificar e cancelar requisições.downloads.open
permite usar a API {{WebExtAPIRef("downloads.open()")}}.tabHide
permite usar a API {{WebExtAPIRef("tabs.hide()")}}.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:
Os privilégios adicionais são:
browser.tabs.executeScript
e browser.tabs.insertCSS
Tab.url
, Tab.title
e Tab.faviconUrl
.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)}}).
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.
A permissão unlimitedStorage
:
"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.
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
{{Compat("webextensions.manifest.permissions")}}