Descrição
Use a API chrome.privacy para controlar o uso dos recursos do Chrome que podem afetar a privacidade de um usuário. Essa API depende do protótipo ChromeSetting da API types para receber e definir a configuração do Chrome.
Permissões
privacyManifesto
Você precisa declarar a permissão "privacy" no manifesto da extensão para usar a API. Por exemplo:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Uso
Ler o valor atual de uma configuração do Chrome é simples. Primeiro, encontre a propriedade de interesse e chame 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!');
}
});
Mudar o valor de uma configuração é um pouco mais complexo, simplesmente porque você precisa verificar se a extensão pode controlar a configuração. O usuário não verá nenhuma mudança nas configurações se a extensão alternar uma configuração que esteja bloqueada para um valor específico por políticas corporativas (levelOfControl será definido como "not_controllable") ou se outra extensão estiver controlando o valor (levelOfControl será definido como "controlled_by_other_extensions"). A chamada set() será bem-sucedida, mas a configuração será substituída imediatamente. Como isso pode ser confuso, é recomendá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 a extensão puder assumir o controle da configuração. Na verdade, se a extensão não puder controlar a configuração, é recomendável 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ê estiver interessado em mudanças no valor de uma configuração, adicione um listener ao evento onChange. Entre outros usos, isso permite avisar o usuário se uma extensão instalada mais recentemente assumir 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 a seguir é 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 Privacy no repositório chrome-extension-samples.
Tipos
AutofillBlockedType
Categorias de dados de preenchimento automático.
Enumeração
"contact_info"
"payments"
"identity_docs"
"travel"
AutofillSettings
Regras de bloqueio específicas do site para recursos de preenchimento automático.
Tipo
objeto[]
Propriedades
-
blockedTypes
As categorias de dados de preenchimento automático a serem bloqueadas em sites correspondentes.
-
urlPattern
string
Um padrão do URL que especifica os sites para os quais a regra de bloqueio se aplica.
IPHandlingPolicy
A política de tratamento de IP do WebRTC.
Enumeração
"default"
"default_public_and_private_interfaces"
"default_public_interface_only"
"disable_non_proxied_udp"
Propriedades
network
Configurações que influenciam o tratamento de conexões de rede do Chrome em geral.
Tipo
objeto
Propriedades
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Quando ativado, o Chrome tenta acelerar a experiência de navegação na Web pré-resolvendo entradas de DNS e abrindo conexões TCP e SSL de forma preventiva aos servidores. Essa preferência afeta apenas as ações realizadas pelo serviço de previsão interno do Chrome. Ela não afeta pré-buscas ou pré-conexões iniciadas por páginas da Web. O valor dessa preferência é booleano e o padrão é
true. -
webRTCIPHandlingPolicyChrome 48 e versões mais recentes
Permite que os usuários especifiquem as compensações de desempenho/privacidade de mídia que afetam como o tráfego do WebRTC será roteado e quantas informações de endereço local serão expostas. 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>
Quando ativado, o Chrome usa um serviço da Web para ajudar a resolver erros de navegação. O valor dessa preferência é booleano e o padrão é
true. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 e versões mais recentesQuando ativado, o Chrome oferece o preenchimento automático de endereços e outros dados de formulário. O valor dessa preferência é booleano e o padrão é
true. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70 e versões mais recentesQuando ativado, o Chrome oferece o preenchimento automático de formulários de cartão de crédito. O valor dessa preferência é 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.
Quando ativado, o Chrome oferece o preenchimento automático de formulários. O valor dessa preferência é booleano e o padrão é
true. -
autofillSettingsPendente
Quando definido, permite o controle específico do site sobre os recursos de preenchimento automático, bloqueando categorias de dados específicas em padrões de URL correspondentes.
-
passwordSavingEnabled
types.ChromeSetting<boolean>
Quando ativado, o gerenciador de senhas pergunta se você quer salvar senhas. O valor dessa preferência é booleano e o padrão é
true. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Quando ativado, o Chrome faz o possível para proteger você contra phishing e malware. O valor dessa preferência é booleano e o padrão é
true. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Quando ativado, o Chrome envia informações adicionais ao Google quando o SafeBrowsing bloqueia uma página, como o conteúdo da página bloqueada. O valor dessa preferência é booleano e o padrão é
false. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Quando ativado, o Chrome envia o texto digitado na omnibox para o mecanismo de pesquisa padrão, que fornece previsões de sites e pesquisas que provavelmente serão concluídas com o que você digitou até agora. O valor dessa preferência é booleano e o padrão é
true. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Quando ativado, o Chrome usa um serviço da Web para ajudar a corrigir erros de ortografia. O valor dessa preferência é booleano e o padrão é
false. -
translationServiceEnabled
types.ChromeSetting<boolean>
Quando ativado, o Chrome oferece a tradução de páginas que não estão em um idioma que você lê. O valor dessa preferência é booleano e o padrão é
true.
websites
Configurações que determinam quais informações o Chrome disponibiliza para sites.
Tipo
objeto
Propriedades
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 e versões mais recentesQuando desativada, a API Attribution Reporting e a API Private Aggregation são desativadas. O valor dessa preferência é booleano e o 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 e versões mais recentesQuando ativado, o Chrome envia o cabeçalho "Do Not Track" (
DNT: 1) com suas solicitações. O valor dessa preferência é booleano e o padrão éfalse. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 e versões mais recentesQuando desativada, a API Fledge é desativada. O valor dessa preferência é booleano e o 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>
Quando ativado, o Chrome envia pings de auditoria quando solicitado por um site (
<a ping>). O valor dessa preferência é booleano e o padrão étrue. -
protectedContentEnabled
types.ChromeSetting<boolean>
Disponível apenas no Windows e no ChromeOS: quando ativado, o Chrome fornece um ID exclusivo para plug-ins para executar conteúdo protegido. O valor dessa preferência é booleano e o padrão é
true. -
referrersEnabled
types.ChromeSetting<boolean>
Quando ativado, o Chrome envia cabeçalhos
referercom suas solicitações. Sim, o nome dessa preferência não corresponde ao cabeçalho com erro de ortografia. Não, não vamos mudar isso. O valor dessa preferência é booleano e o padrão étrue. -
types.ChromeSetting<boolean>
Chrome 121 e versões mais recentesQuando desativado, o recurso Conjuntos de sites relacionados é desativado. O valor dessa preferência é booleano e o 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>
Quando desativado, o Chrome impede que sites de terceiros definam cookies. O valor dessa preferência é booleano e o padrão é
true. As extensões não podem ativar essa API no modo de navegação anônima, em que os cookies de terceiros são bloqueados e só podem ser permitidos no nível do site. Se você tentar definir essa API como verdadeira na navegação anônima, um erro será gerado.Observação: sites individuais ainda podem acessar cookies de terceiros quando essa API retorna
false, se eles tiverem uma isenção válida ou usarem a API Storage Access em vez disso. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 e versões mais recentesQuando desativada, a API Topics é desativada. O valor dessa preferência é booleano e o 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.