Os usuários não vão instalar uma extensão se ela comprometer a privacidade ou pedir mais permissões do que parece precisar. As solicitações de permissão precisam fazer sentido para os usuários e ser limitadas às informações essenciais necessárias para implementar a extensão. As extensões que coletam ou transmitem dados do usuário precisam obedecer às políticas em Proteção da privacidade do usuário.
Proteja e respeite os usuários da extensão incluindo estas precauções para manter a identidade deles segura.
Reduzir as permissões necessárias
As APIs que uma extensão pode acessar são especificadas no campo permissions do manifesto. Quanto mais permissões forem concedidas, mais maneiras um invasor terá de interceptar informações. Apenas as APIs de que uma extensão depende devem ser listadas, e opções menos invasivas precisam ser consideradas. Quanto menos permissões uma extensão solicitar, menos avisos de permissão serão mostrados a um usuário. Os usuários têm mais chances de instalar uma extensão com poucos avisos.
As extensões não devem "preparar para o futuro" o acesso aos dados do usuário solicitando permissões que não são necessárias no momento, mas que podem ser implementadas no futuro. Inclua novas permissões com atualizações de extensão e considere torná-las opcionais.
activeTab
As extensões que usam permissões de host para injetar scripts geralmente podem substituir activeTab. A permissão activeTab concede à extensão acesso temporário à guia ativa no momento, apenas quando o usuário invoca a extensão. O acesso é interrompido quando o usuário sai ou fecha a guia atual. Ele serve como alternativa para muitos usos de <all_urls>.
{
"name": "Very Secure Extension",
"version": "1.0",
"description": "Example of a Secure Extension",
"permissions": ["activeTab"],
"manifest_version": 3
}
A permissão activeTab não mostra mensagens de aviso durante a instalação.
Ativar permissões opcionais
Inclua permissões opcionais para que os usuários escolham os recursos e as permissões de que precisam em uma extensão. Se um recurso não for essencial para a funcionalidade principal de uma extensão, torne-o opcional e mova a API ou o domínio para o campo optional_permissions.
{
"name": "Very Secure Extension",
...
"optional_permissions": [ "tabs", ],
"optional_host_permissions": ["https://www.google.com/" ],
...
}
Incluir permissões opcionais permite que uma extensão explique por que ela precisa de uma permissão específica quando o usuário ativa o recurso relevante. A extensão pode oferecer ao usuário a opção de ativar recursos.

Ao clicar em OK!, o evento a seguir será acionado no service worker.
chrome.action.onClicked.addListener((event) => {
// Permissions must be requested from inside a user gesture, like a button's
// click handler.
chrome.permissions.request(
{
permissions: ["tabs", "scripting"],
origins: ['https://www.google.com/']
},
function (granted) {
// The callback argument will be true if the user granted the permissions.
if (granted) {
// doSomething();
} else {
// doSomethingElse();
}
}
);
});
Em seguida, o usuário vai receber a seguinte solicitação.

As permissões opcionais também podem ser implementadas em uma atualização de extensão. Assim, o novo recurso fica disponível para os usuários sem desativar a extensão, o que pode acontecer se a atualização for feita com novas permissões obrigatórias.
Limitar e proteger as informações do usuário
Solicite apenas a quantidade mínima de dados que uma extensão precisa. Quanto menos informações uma extensão pedir a um usuário, menor será a exposição se ela for comprometida.
Todos os dados do usuário solicitados precisam ser tratados com cuidado. Armazene e recupere dados em um servidor seguro com um domínio registrado. Sempre use HTTPS para se conectar e evite manter dados do usuário sensíveis no lado do cliente de uma extensão, já que o armazenamento de extensões não é criptografado.
Salvar dados e modo de navegação anônima
As extensões podem salvar dados usando a API storage ou fazendo solicitações de servidor que resultam no salvamento de dados. Quando a extensão precisa salvar algo, primeiro considere se é de uma janela anônima. Por padrão, as extensões não são executadas em janelas anônimas.
O modo de navegação anônima promete que a janela não deixará rastros. Ao lidar com dados de janelas anônimas, as extensões precisam honrar essa promessa. Se uma extensão normalmente salva o histórico de navegação, não salve o histórico de janelas anônimas. No entanto, as extensões podem armazenar preferências de configuração de qualquer janela, anônima ou não.
Para detectar se uma janela está no modo de navegação anônima, verifique a propriedade incognito do objeto
tabs.Tab ou windows.Window relevante.
function saveTabData(tab) {
if (tab.incognito) {
return;
} else {
chrome.storage.local.set({data: tab.url});
}
}