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

Manifesto

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

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

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 do Chrome estiver 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 porque primeiro você precisa 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 a funcionalidade para reduzir confusão):

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 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 O status do preenchimento automático, por exemplo, o código a seguir 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 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.