Descrição
Utilize a API chrome.privacy
para controlar o uso no Chrome dos recursos que podem afetar a privacidade de um usuário. Essa API usa o protótipo ChromeSetting da API de tipo para receber e definir a configuração do Chrome.
Permissões
privacy
Manifesto
É necessário declarar a permissão de "privacidade" no manifesto da extensão para usar a API. Exemplo:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Uso
Analisar o valor atual de uma configuração do Chrome é simples. Primeiro, você precisa encontrar a propriedade do seu interesse e, em seguida, chamar get()
nesse objeto para recuperar o valor atual e o nível de controle da extensão. Por exemplo, para determinar se o recurso de preenchimento automático
do Chrome está ativado, escreva:
chrome.privacy.services.autofillEnabled.get({}, function(details) {
if (details.value) {
console.log('Autofill is on!');
} else {
console.log('Autofill is off!');
}
});
Alterar o valor de uma configuração é um pouco mais complexo, simplesmente porque você precisa verificar primeiro se sua extensão pode controlar a configuração. As configurações do usuário não serão alteradas se a extensão ativar ou desativar uma configuração que está bloqueada para um valor específico pelas políticas corporativas (levelOfControl
será definido como "not_controllable") ou se outra extensão estiver controlando o valor (levelOfControl
será definido como "control_by_other_extensions"). A chamada set()
será
bem-sucedida, mas a configuração será imediatamente substituída. Como isso pode ser confuso, é aconselhável
avisar o usuário quando as configurações escolhidas não forem aplicadas na prática.
Isso significa que você precisa usar o método get()
para determinar seu nível de acesso e só chamar set()
se sua extensão puder assumir o controle sobre a configuração. Na verdade, se a extensão não puder controlar a configuração, provavelmente é uma boa ideia desativar visualmente a funcionalidade para reduzir a confusão do usuário:
chrome.privacy.services.autofillEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
chrome.privacy.services.autofillEnabled.set({ value: true }, function() {
if (chrome.runtime.lastError === undefined) {
console.log("Hooray, it worked!");
} else {
console.log("Sadness!", chrome.runtime.lastError);
}
});
}
});
Se você tiver interesse em mudanças no valor de uma configuração, adicione um listener ao evento onChange
. Entre
outros usos, isso permitirá que você avise o usuário se uma extensão instalada mais recentemente acessar
o controle de uma configuração ou se a política corporativa substituir seu controle. Para detectar mudanças no
status do preenchimento automático, por exemplo, o código abaixo seria suficiente:
chrome.privacy.services.autofillEnabled.onChange.addListener(
function (details) {
// The new value is stored in `details.value`, the new level of control
// in `details.levelOfControl`, and `details.incognitoSpecific` will be
// `true` if the value is specific to Incognito mode.
}
);
Exemplos
Para testar essa API, instale o exemplo da API de privacidade no repositório chrome-extension-samples.
Tipos
IPHandlingPolicy
A política de tratamento de IP do WebRTC.
Tipo enumerado
"default_public_and_private_interfaces"
"default_public_interface_only"
"disable_non_proxied_udp"
Propriedades
network
Configurações que influenciam como o Chrome processa conexões de rede em geral.
Tipo
objeto
Propriedades
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Se essa opção estiver ativada, o Google Chrome tentará acelerar a experiência de navegação na Web pré-resolvendo entradas de DNS e abrindo preventivamente as conexões TCP e SSL para os servidores. Essa preferência afeta apenas as ações realizadas pelo serviço de previsão interno do Chrome. Isso não afeta prefeituras ou pré-conexões iniciadas em páginas da Web. O valor dessa preferência é um booleano, e o padrão é
true
. -
webRTCIPHandlingPolicyChrome 48 ou mais recente
Permite que os usuários especifiquem as compensações de desempenho de mídia/privacidade que afetam como o tráfego WebRTC será roteado e a quantidade de informações de endereço local é exposta. O valor dessa preferência é do tipo IPHandlingPolicy, e o padrão é
default
.
services
Configurações que ativam ou desativam recursos que exigem serviços de rede de terceiros fornecidos pelo Google e pelo provedor de pesquisa padrão.
Tipo
objeto
Propriedades
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
Se essa opção estiver ativada, o Chrome usará um serviço da Web para ajudar a resolver erros de navegação. O valor dessa preferência é um booleano, e o padrão é
true
. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 ou mais recenteSe ativado, o Chrome se oferece para preencher automaticamente endereços e outros dados de formulário. O valor dessa preferência é um booleano, e o padrão é
true
. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70 ou mais recenteSe ativado, o Chrome oferece o preenchimento automático de formulários de cartão de crédito. O valor dessa preferência é um booleano, e o padrão é
true
. -
autofillEnabled
types.ChromeSetting<boolean>
Descontinuado desde o Chrome 70Use privacy.services.autofillAddressEnabled e privacy.services.autofillCreditCardEnabled. Isso permanece para compatibilidade com versões anteriores nesta versão e será removido no futuro.
Se ativado, o Chrome oferece o preenchimento automático de formulários. O valor dessa preferência é um booleano, e o padrão é
true
. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Se ativado, o gerenciador perguntará se você deseja salvar senhas. O valor dessa preferência é um booleano, e o padrão é
true
. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Se essa opção estiver ativada, o Chrome fará o possível para proteger você contra phishing e malware. O valor dessa preferência é um booleano, e o padrão é
true
. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Se ativado, o Chrome enviará informações adicionais para o Google quando a Navegação segura bloquear uma página, como o conteúdo da página bloqueada. O valor dessa preferência é um booleano, e o padrão é
false
. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Se ativado, o Chrome envia o texto que você digita na omnibox para seu mecanismo de pesquisa padrão, que fornece previsões de sites e pesquisas que provavelmente completam o que você digitou até o momento. O valor dessa preferência é um booleano, e o padrão é
true
. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Se essa opção estiver ativada, o Chrome usará um serviço da Web para ajudar a corrigir erros de ortografia. O valor dessa preferência é um booleano, e o padrão é
false
. -
translationServiceEnabled
types.ChromeSetting<boolean>
Se ativada, o Chrome oferece a tradução de páginas que não estão em um idioma que você conheça. O valor dessa preferência é um booleano, e o padrão é
true
.
websites
Configurações que determinam quais informações o Chrome disponibiliza para os sites.
Tipo
objeto
Propriedades
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 ou mais recenteSe ela for desativada, a API Attribution Reporting e a API Private Aggregate vão ser desativadas. O valor dessa preferência é do tipo booleano, e o valor padrão é
true
. As extensões só podem desativar essas APIs definindo o valor comofalse
. Se você tentar definir essas APIs comotrue
, um erro será gerado. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 ou mais recenteSe essa opção estiver ativada, o Chrome enviará o cabeçalho "Não rastrear" (
DNT: 1
) com suas solicitações. O valor dessa preferência é do tipo booleano, e o valor padrão éfalse
. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 ou mais recenteSe desativada, a Fledge API é desativada. O valor dessa preferência é do tipo booleano, e o valor padrão é
true
. As extensões só podem desativar essa API definindo o valor comofalse
. Se você tentar definir essa API comotrue
, um erro será gerado. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Se ativada, o Chrome envia pings de auditoria quando solicitados por um site (
<a ping>
). O valor dessa preferência é do tipo booleano, e o valor padrão étrue
. -
protectedContentEnabled
types.ChromeSetting<boolean>
Disponível apenas no Windows e no ChromeOS: se ativada, o Chrome fornece um ID exclusivo aos plug-ins para executar conteúdo protegido. O valor dessa preferência é do tipo booleano, e o valor padrão é
true
. -
referrersEnabled
types.ChromeSetting<boolean>
Se essa opção estiver ativada, o Chrome enviará cabeçalhos
referer
com suas solicitações. Sim, o nome dessa preferência não corresponde ao cabeçalho com erro ortográfico. Não, não vamos alterá-lo. O valor dessa preferência é do tipo booleano, e o valor padrão étrue
. -
types.ChromeSetting<boolean>
Chrome 121 ou mais recenteSe essa opção estiver desativada, a opção Conjuntos de sites relacionados também será desativada. O valor dessa preferência é do tipo booleano, e o valor padrão é
true
. As extensões só podem desativar essa API definindo o valor comofalse
. Se você tentar definir essa API comotrue
, um erro será gerado. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Se desativada, o Chrome impede que sites de terceiros definam cookies. O valor dessa preferência é do tipo booleano, e o valor padrão é
true
. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 ou mais recenteSe desativada, a API Topics é desativada. O valor dessa preferência é do tipo booleano, e o valor padrão é
true
. As extensões só podem desativar essa API definindo o valor comofalse
. Se você tentar definir essa API comotrue
, um erro será gerado.