chrome.privacy

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 do tipo API para receber e definir a configuração do Chrome.

Permissões

privacy

É necessário declarar a "privacidade" no manifesto da sua extensão para usar a API. Por exemplo:

{
  "name": "My extension",
  ...
  "permissions": [
    "privacy"
  ],
  ...
}

Conceitos e uso

A leitura do valor atual de uma configuração do Chrome é simples. Primeiro, você precisa encontrar propriedade em que você tem interesse, chame get() nesse objeto para recuperar o o valor atual e o nível de controle da sua extensão. Por exemplo, para determinar se o preenchimento automático de cartão de crédito do Chrome estiver ativado, escreva:

chrome.privacy.services.autofillCreditCardEnabled.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, porque primeiro é preciso verificar que sua extensão possa controlar a configuração. O usuário não verá nenhuma alteração nas configurações se as alterna uma configuração que está bloqueada a um valor específico por políticas da empresa (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() vai mas a configuração será substituída imediatamente. Como isso pode ser confuso, é aconselhável para 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 somente chame set() se a extensão puder controlar a configuração (se ela não puder controlar a configuração, é recomendável desativar visualmente o recurso para reduzir confusão):

chrome.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
  if (details.levelOfControl === 'controllable_by_this_extension') {
    chrome.privacy.services.autofillCreditCardEnabled.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 permitirá que você avise o usuário se uma extensão instalada mais recentemente capturar controle de uma configuração ou se uma política da empresa substitui seu controle. Para detectar alterações em status de preenchimento automático de cartão de crédito. Por exemplo, o código a seguir seria suficiente:

chrome.privacy.services.autofillCreditCardEnabled.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 disponível em chrome-extension-samples repositório de dados.

Tipos

IPHandlingPolicy

Chrome 48 ou superior

A política de gerenciamento de IP do WebRTC.

Enumeração

"padrão"

"default_public_and_private_interfaces"

"default_public_interface_only"

"disable_non_proxied_udp"

Propriedades

network

Configurações que influenciam o processamento de conexões de rede pelo Chrome em geral.

Tipo

objeto

Propriedades

  • networkPredictionEnabled

    types.ChromeSetting<boolean>

    Se essa opção estiver ativada, o Chrome tentará acelerar sua experiência de navegação na Web resolvendo previamente as 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 interno de previsões do Chrome. Isso não afeta áreas ou pré-conexões iniciadas em páginas da Web. O valor dessa preferência é um booleano, tendo como padrão true.

  • webRTCIPHandlingPolicy
    Chrome 48 ou superior

    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 expostas. O valor dessa preferência é do tipo IPHandlingPolicy, que tem default como padrão.

services

Configurações que ativam ou desativam recursos que exigem serviços de rede de terceiros fornecidos pelo Google e seu provedor de pesquisa padrão.

Tipo

objeto

Propriedades

  • alternateErrorPagesEnabled

    types.ChromeSetting<boolean>

    Se ativada, o Chrome usa um serviço da Web para ajudar a resolver erros de navegação. O valor dessa preferência é um booleano, tendo como padrão true.

  • autofillAddressEnabled

    types.ChromeSetting<boolean>

    Chrome 70 ou superior

    Se ativado, o Chrome se oferece para preencher automaticamente endereços e outros dados de formulário. O valor dessa preferência é um booleano, tendo como padrão true.

  • autofillCreditCardEnabled

    types.ChromeSetting<boolean>

    Chrome 70 ou superior

    Se ativado, o Chrome se oferece para preencher automaticamente formulários de cartão de crédito. O valor dessa preferência é um booleano, tendo como padrão true.

  • autofillEnabled

    types.ChromeSetting<boolean>

    Descontinuado desde o Chrome 70

    Use privacy.services.autofillAddressEnabled e privacy.services.autofillCreditCardEnabled. Nesta versão, isso permanece para compatibilidade com versões anteriores e será removido no futuro.

    Se ativado, o Chrome se oferece para preencher formulários automaticamente. O valor dessa preferência é um booleano, tendo como padrão true.

  • passwordSavingEnabled

    types.ChromeSetting<boolean>

    Se ativado, o gerenciador de senhas perguntará se você quer salvar senhas. O valor dessa preferência é um booleano, tendo como padrão true.

  • safeBrowsingEnabled

    types.ChromeSetting<boolean>

    Se a política for ativada, o Chrome fará o possível para proteger você contra phishing e malware. O valor dessa preferência é um booleano, tendo como padrão true.

  • safeBrowsingExtendedReportingEnabled

    types.ChromeSetting<boolean>

    Se ativado, o Chrome enviará informações adicionais ao Google quando o Safe Browsing bloquear uma página, como o conteúdo da página bloqueada. O valor dessa preferência é um booleano, tendo como 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é agora. O valor dessa preferência é um booleano, tendo como padrão true.

  • spellingServiceEnabled

    types.ChromeSetting<boolean>

    Se ativada, o Chrome usa um serviço da Web para ajudar a corrigir erros de ortografia. O valor dessa preferência é um booleano, tendo como padrão false.

  • translationServiceEnabled

    types.ChromeSetting<boolean>

    Se essa opção estiver ativada, o Chrome se oferecerá para traduzir páginas que não estão em um idioma que você conheça. O valor dessa preferência é um booleano, tendo como 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 versões mais recentes

    Se desativada, a API Attribution Reporting e a API Private Aggregate serão 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 como false. Se você tentar definir essas APIs como true, um erro será gerado.

  • doNotTrackEnabled

    types.ChromeSetting<boolean>

    Chrome 65 ou superior

    Se ativado, o Chrome envia "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 versões mais recentes

    Se desativada, a API Fledge é 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 como false. Se você tentar definir essa API como true, um erro será gerado.

  • hyperlinkAuditingEnabled

    types.ChromeSetting<boolean>

    Se essa opção estiver ativada, o Chrome enviará pings de auditoria quando solicitado por um site (<a ping>). O valor dessa preferência é do tipo booleano, e o valor padrão é true.

  • protectedContentEnabled

    types.ChromeSetting&lt;boolean&gt;

    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&lt;boolean&gt;

    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 incorreto. Não, não vamos mudá-lo. O valor dessa preferência é do tipo booleano, e o valor padrão é true.

  • relatedWebsiteSetsEnabled

    types.ChromeSetting&lt;boolean&gt;

    Chrome 121 ou versões mais recentes

    Se desativado, os Conjuntos de sites relacionados ficam desativados. 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 como false. Se você tentar definir essa API como true, um erro será gerado.

  • thirdPartyCookiesAllowed

    types.ChromeSetting&lt;boolean&gt;

    Se desativada, o Chrome impedirá que sites de terceiros definam cookies. O valor dessa preferência é do tipo booleano, e o valor padrão é true.

  • topicsEnabled

    types.ChromeSetting&lt;boolean&gt;

    Chrome 111 ou versões mais recentes

    Se desativada, a API Topics vai 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 como false. Se você tentar definir essa API como true, um erro será gerado.