browser.privacy

Description

Utilisez l'API chrome.privacy pour contrôler l'utilisation des fonctionnalités de Chrome qui peuvent affecter la confidentialité d'un utilisateur. Cette API s'appuie sur le prototype ChromeSetting de l'API de type pour obtenir et définir la configuration de Chrome.

Autorisations

privacy

Pour utiliser l'API, vous devez déclarer l'autorisation "privacy" dans le fichier manifeste de votre extension. Exemple :

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

Concepts et utilisation

La lecture de la valeur actuelle d'un paramètre Chrome est simple. Vous devez d'abord trouver la propriété qui vous intéresse, puis appeler get() sur cet objet afin de récupérer sa valeur actuelle et le niveau de contrôle de votre extension. Par exemple, pour déterminer si la fonctionnalité de saisie automatique des cartes de crédit de Chrome est activée, vous devez écrire :

browser.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
  if (details.value) {
    console.log('Autofill is on!');
  } else {
    console.log('Autofill is off!');
  }
});

La modification de la valeur d'un paramètre est un peu plus complexe, car vous devez d'abord vérifier que votre extension peut contrôler le paramètre. L'utilisateur ne verra aucune modification de ses paramètres si votre extension active un paramètre verrouillé sur une valeur spécifique par les règles d'entreprise (levelOfControl sera défini sur "not_controllable") ou si une autre extension contrôle la valeur (levelOfControl sera défini sur "controlled_by_other_extensions"). L'appel set() aboutira, mais le paramètre sera immédiatement remplacé. Comme cela peut prêter à confusion, il est conseillé d'avertir l'utilisateur lorsque les paramètres qu'il a choisis ne sont pas appliqués en pratique.

Cela signifie que vous devez utiliser la méthode get() pour déterminer votre niveau d'accès, puis n'appeler set() que si votre extension peut prendre le contrôle du paramètre (en fait, si votre extension ne peut pas contrôler le paramètre, il est probablement judicieux de désactiver visuellement la fonctionnalité pour réduire la confusion des utilisateurs) :

browser.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
  if (details.levelOfControl === 'controllable_by_this_extension') {
    browser.privacy.services.autofillCreditCardEnabled.set({ value: true }, function() {
      if (browser.runtime.lastError === undefined) {
        console.log("Hooray, it worked!");
      } else {
        console.log("Sadness!", browser.runtime.lastError);
      }
    });
  }
});

Si vous souhaitez suivre les modifications apportées à la valeur d'un paramètre, ajoutez un écouteur à son événement onChange. Cela vous permettra, entre autres, d'avertir l'utilisateur si une extension installée plus récemment prend le contrôle d'un paramètre ou si une règle d'entreprise remplace votre contrôle. Par exemple, pour écouter les modifications de l'état de la saisie automatique des cartes de crédit, le code suivant suffit :

browser.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.
  }
);

Exemples

Pour essayer cette API, installez l'exemple d'API de confidentialité à partir du dépôt chrome-extension-samples.

Types

AutofillBlockedType

Chrome 151 ou version ultérieure

Catégories de données utilisées par la saisie automatique.

Énumération

"contact_info"

"payments"

"identity_docs"

"travel"

"all"

IPHandlingPolicy

Chrome 48+ browser.* depuis Chrome 148

Règle de gestion des adresses IP de WebRTC.

Énumération

"default"

"default_public_and_private_interfaces"

"default_public_interface_only"

"disable_non_proxied_udp"

Propriétés

network

Paramètres qui influent sur la gestion des connexions réseau par Chrome en général.

Type

objet

Propriétés

  • networkPredictionEnabled

    Si cette règle est activée, Chrome tente d'accélérer votre expérience de navigation Web en pré-résolvant les entrées DNS, en ouvrant de manière préventive les connexions TCP et SSL aux serveurs, et en préchargeant les pages. Si vous désactivez cette préférence, les propriétaires de sites ne pourront plus charger de contenu de manière spéculative (par exemple, en préchargeant ou en prérendant du contenu via l'API Speculation Rules). Cela n'affecte pas les préconnexions ni les préchargements DNS initiés par la page Web. La valeur de cette préférence est une valeur booléenne, définie par défaut sur true.

  • webRTCIPHandlingPolicy
    Chrome 48+ browser.* depuis Chrome 148

    Permet aux utilisateurs de spécifier les compromis entre performances et confidentialité des contenus multimédias, ce qui a un impact sur la façon dont le trafic WebRTC est acheminé et sur la quantité d'informations d'adresse locale exposées. La valeur de cette préférence est de type IPHandlingPolicy, avec la valeur par défaut default.

services

Paramètres qui activent ou désactivent les fonctionnalités nécessitant des services réseau tiers fournis par Google et votre moteur de recherche par défaut.

Type

objet

Propriétés

  • alternateErrorPagesEnabled

    Si cette règle est activée, Chrome utilise un service Web pour résoudre les erreurs de navigation. La valeur de cette préférence est un booléen, défini par défaut sur true.

  • autofillAddressEnabled
    Chrome 70 et versions ultérieures browser.* depuis Chrome 148

    Si cette option est activée, Chrome propose de remplir automatiquement les adresses et d'autres données de formulaire. La valeur de cette préférence est une valeur booléenne, définie par défaut sur true.

  • autofillCreditCardEnabled
    Chrome 70+ browser.* depuis Chrome 148

    Si cette option est activée, Chrome propose de remplir automatiquement les formulaires de carte de crédit. La valeur de cette préférence est un booléen, défini par défaut sur true.

  • autofillEnabled
    Obsolète depuis Chrome 70

    Veuillez utiliser privacy.services.autofillAddressEnabled et privacy.services.autofillCreditCardEnabled. Cette option est conservée pour assurer la rétrocompatibilité dans cette version et sera supprimée à l'avenir.

    Si cette option est activée, Chrome propose de remplir automatiquement les formulaires. La valeur de cette préférence est un booléen, défini par défaut sur true.

  • passwordSavingEnabled

    Si cette option est activée, le gestionnaire de mots de passe vous demandera si vous souhaitez enregistrer les mots de passe. La valeur de cette préférence est une valeur booléenne, définie par défaut sur true.

  • safeBrowsingEnabled

    Si elle est activée, Chrome fait de son mieux pour vous protéger contre l'hameçonnage et les logiciels malveillants. La valeur de cette préférence est un booléen, défini par défaut sur true.

  • safeBrowsingExtendedReportingEnabled

    Si cette option est activée, Chrome envoie des informations supplémentaires à Google lorsque la navigation sécurisée bloque une page, comme le contenu de la page bloquée. La valeur de cette préférence est un booléen, défini par défaut sur false.

  • searchSuggestEnabled

    Si cette option est activée, Chrome envoie le texte que vous saisissez dans l'omnibox à votre moteur de recherche par défaut, qui fournit des prédictions de sites Web et de recherches susceptibles de compléter ce que vous avez saisi jusqu'à présent. La valeur de cette préférence est un booléen, défini par défaut sur true.

  • spellingServiceEnabled

    Si cette règle est activée, Chrome utilise un service Web pour corriger les fautes d'orthographe. La valeur de cette préférence est un booléen, défini par défaut sur false.

  • translationServiceEnabled

    Si cette option est activée, Chrome propose de traduire les pages qui ne sont pas dans une langue que vous lisez. La valeur de cette préférence est une valeur booléenne, définie par défaut sur true.

websites

Paramètres qui déterminent les informations que Chrome met à la disposition des sites Web.

Type

objet

Propriétés

  • adMeasurementEnabled
    Chrome 111 ou version ultérieure browser.* depuis Chrome 148

    Si elle est désactivée, l'API Attribution Reporting et l'API Private Aggregation sont désactivées. La valeur de cette préférence est de type booléen, et la valeur par défaut est true. Les extensions ne peuvent désactiver ces API qu'en définissant la valeur sur false. Si vous essayez de définir ces API sur true, une erreur sera générée.

  • doNotTrackEnabled
    Chrome 65 et versions ultérieures browser.* depuis Chrome 148

    Si cette option est activée, Chrome envoie l'en-tête "Do Not Track" (DNT: 1) avec vos requêtes. La valeur de cette préférence est de type booléen, et la valeur par défaut est false.

  • fledgeEnabled
    Chrome 111 ou version ultérieure browser.* depuis Chrome 148

    Si cette option est désactivée, l'API Fledge est désactivée. La valeur de cette préférence est de type booléen, et la valeur par défaut est true. Les extensions ne peuvent désactiver cette API qu'en définissant la valeur sur false. Si vous essayez de définir cette API sur true, une erreur sera générée.

  • hyperlinkAuditingEnabled

    Si cette option est activée, Chrome envoie des pings d'audit lorsqu'un site Web le demande (<a ping>). La valeur de cette préférence est de type booléen, et la valeur par défaut est true.

  • protectedContentEnabled

    Disponible sur Windows et ChromeOS uniquement : si cette option est activée, Chrome fournit un identifiant unique aux plug-ins pour exécuter du contenu protégé. La valeur de cette préférence est de type booléen, et la valeur par défaut est true.

  • referrersEnabled

    Si cette option est activée, Chrome envoie des en-têtes referer avec vos requêtes. Oui, le nom de cette préférence ne correspond pas à l'en-tête mal orthographié. Non, nous n'allons pas le modifier. La valeur de cette préférence est de type booléen, et la valeur par défaut est true.

  • thirdPartyCookiesAllowed

    Si elle est désactivée, Chrome empêche les sites tiers de définir des cookies. La valeur de cette préférence est de type booléen, et la valeur par défaut est true. Les extensions ne peuvent pas activer cette API en mode navigation privée, où les cookies tiers sont bloqués et ne peuvent être autorisés qu'au niveau du site. Si vous essayez de définir cette API sur "true" en mode navigation privée, une erreur sera générée.

    Remarque : Les sites individuels peuvent toujours accéder aux cookies tiers lorsque cette API renvoie false, s'ils disposent d'une exemption valide ou s'ils utilisent l'API Storage Access à la place.

  • topicsEnabled
    Chrome 111 ou version ultérieure browser.* depuis Chrome 148

    Si elle est désactivée, l'API Topics l'est également. La valeur de cette préférence est de type booléen, et la valeur par défaut est true. Les extensions ne peuvent désactiver cette API qu'en définissant la valeur sur false. Si vous essayez de définir cette API sur true, une erreur sera générée.