chrome.privacy

Descrizione

Utilizza l'API chrome.privacy per controllare l'utilizzo delle funzionalità di Chrome che possono influire sulla privacy di un utente. Questa API si basa sul prototipo ChromeSetting dell'API di tipo per ottenere e impostare la configurazione di Chrome.

Autorizzazioni

privacy

Per utilizzare l'API, devi dichiarare l'autorizzazione "privacy" nel manifest della tua estensione. Ad esempio:

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

Concetti e utilizzo

Leggere il valore attuale di un'impostazione di Chrome è semplice. Innanzitutto devi trovare la proprietà che ti interessa, poi devi chiamare get() su quell'oggetto per recuperare il suo valore attuale e il livello di controllo della tua estensione. Ad esempio, per determinare se la funzionalità di compilazione automatica della carta di credito di Chrome è attiva, devi scrivere:

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

Modificare il valore di un'impostazione è un po' più complesso, perché devi prima verificare che la tua estensione possa controllare l'impostazione. L'utente non vedrà alcuna modifica alle impostazioni se la tua estensione attiva/disattiva un'impostazione bloccata su un valore specifico dai criteri aziendali (levelOfControl verrà impostato su "not_controllable") o se un'altra estensione controlla il valore (levelOfControl verrà impostato su "controlled_by_other_extensions"). La chiamata a set() andrà a buon fine, ma l'impostazione verrà immediatamente ignorata. Poiché questa situazione potrebbe creare confusione, è consigliabile avvisare l'utente quando le impostazioni scelte non vengono applicate praticamente.

Ciò significa che devi utilizzare il metodo get() per determinare il tuo livello di accesso e poi chiamare set() solo se la tua estensione può assumere il controllo dell'impostazione (infatti, se la tua estensione non può controllare l'impostazione, è probabilmente una buona idea disattivare visivamente la funzionalità per ridurre la confusione degli utenti):

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 ti interessano le modifiche al valore di un'impostazione, aggiungi un listener al relativo evento onChange. Tra gli altri utilizzi, questo ti consentirà di avvisare l'utente se un'estensione installata più di recente acquisisce il controllo di un'impostazione o se il criterio aziendale sostituisce il tuo controllo. Per rilevare le modifiche allo stato di compilazione automatica della carta di credito, ad esempio, il seguente codice è sufficiente:

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

Esempi

Per provare questa API, installa l'esempio di API per la privacy dal repository chrome-extension-samples.

Tipi

IPHandlingPolicy

Chrome 48+

Policy di gestione dell'IP di WebRTC.

Enum

"default"

"default_public_and_private_interfaces"

"default_public_interface_only"

"disable_non_proxied_udp"

Proprietà

network

Impostazioni che influenzano la gestione delle connessioni di rete in Chrome in generale.

Tipo

oggetto

Proprietà

  • networkPredictionEnabled

    Se attivata, Chrome tenta di velocizzare la tua esperienza di navigazione web risolvendo in anticipo le voci DNS e aprendo in modo preventivo le connessioni TCP e SSL ai server. Questa preferenza influisce solo sulle azioni intraprese dal servizio di previsione interno di Chrome. Non influisce sui prefetch o sulle preconnessioni avviati dalle pagine web. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è true.

  • webRTCIPHandlingPolicy
    Chrome 48+

    Consente agli utenti di specificare i compromessi tra prestazioni/privacy dei contenuti multimediali, il che influisce sul modo in cui viene instradato il traffico WebRTC e sulla quantità di informazioni sull'indirizzo locale esposte. Il valore di questa preferenza è di tipo IPHandlingPolicy, il cui valore predefinito è default.

services

Impostazioni che attivano o disattivano funzionalità che richiedono servizi di rete di terze parti forniti da Google e dal tuo provider di ricerca predefinito.

Tipo

oggetto

Proprietà

  • alternateErrorPagesEnabled

    Se attivato, Chrome utilizza un servizio web per risolvere gli errori di navigazione. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è true.

  • autofillAddressEnabled
    Chrome 70+

    Se attivata, Chrome offre di compilare automaticamente indirizzi e altri dati dei moduli. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è true.

  • autofillCreditCardEnabled
    Chrome 70+

    Se attivata, Chrome offre di compilare automaticamente i moduli per le carte di credito. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è true.

  • autofillEnabled
    Ritirato a partire da Chrome 70

    Utilizza privacy.services.autofillAddressEnabled e privacy.services.autofillCreditCardEnabled. Questa funzionalità rimane per la compatibilità con le versioni precedenti in questa release e verrà rimossa in futuro.

    Se attivata, Chrome offre di compilare automaticamente i moduli. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è true.

  • passwordSavingEnabled

    Se è attivato, Gestore delle password ti chiederà se vuoi salvare le password. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è true.

  • safeBrowsingEnabled

    Se questa opzione è attivata, Chrome fa del suo meglio per proteggerti da phishing e malware. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è true.

  • safeBrowsingExtendedReportingEnabled

    Se attivata, Chrome invierà a Google informazioni aggiuntive quando Navigazione sicura blocca una pagina, ad esempio i contenuti della pagina bloccata. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è false.

  • searchSuggestEnabled

    Se questa impostazione è attivata, Chrome invia il testo digitato nella omnibox al motore di ricerca predefinito, che fornisce previsioni di siti web e ricerche che potrebbero completare ciò che hai digitato finora. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è true.

  • spellingServiceEnabled

    Se attivata, Chrome utilizza un servizio web per correggere gli errori ortografici. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è false.

  • translationServiceEnabled

    Se attivata, Chrome propone di tradurre le pagine in lingue che non conosci. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è true.

websites

Impostazioni che determinano quali informazioni Chrome rende disponibili ai siti web.

Tipo

oggetto

Proprietà

  • adMeasurementEnabled
    Chrome 111+

    Se disabilitate, l'API Attribution Reporting e l'API Private Aggregation vengono disattivate. Il valore di questa preferenza è di tipo booleano e il valore predefinito è true. Le estensioni possono disattivare queste API solo impostando il valore su false. Se provi a impostare queste API su true, verrà generato un errore.

  • doNotTrackEnabled
    Chrome 65+

    Se attivata, Chrome invia l'intestazione "Non monitorare" (DNT: 1) con le tue richieste. Il valore di questa preferenza è di tipo booleano e il valore predefinito è false.

  • fledgeEnabled
    Chrome 111+

    Se disabilitata, l'API Fledge viene disattivata. Il valore di questa preferenza è di tipo booleano e il valore predefinito è true. Le estensioni possono disattivare questa API solo impostando il valore su false. Se provi a impostare questa API su true, verrà generato un errore.

  • hyperlinkAuditingEnabled

    Se attivato, Chrome invia ping di controllo quando richiesto da un sito web (<a ping>). Il valore di questa preferenza è di tipo booleano e il valore predefinito è true.

  • protectedContentEnabled

    Disponibile solo su Windows e ChromeOS: se attivato, Chrome fornisce un ID univoco ai plug-in per eseguire contenuti protetti. Il valore di questa preferenza è di tipo booleano e il valore predefinito è true.

  • referrersEnabled

    Se questa opzione è attivata, Chrome invia le intestazioni referer con le tue richieste. Sì, il nome di questa preferenza non corrisponde all'intestazione con errori ortografici. No, non lo cambieremo. Il valore di questa preferenza è di tipo booleano e il valore predefinito è true.

  • relatedWebsiteSetsEnabled
    Chrome 121+

    Se disattivata, la funzionalità Insiemi di siti web correlati viene disattivata. Il valore di questa preferenza è di tipo booleano e il valore predefinito è true. Le estensioni possono disattivare questa API solo impostando il valore su false. Se provi a impostare questa API su true, verrà generato un errore.

  • thirdPartyCookiesAllowed

    Se disattivata, Chrome impedisce ai siti di terze parti di impostare i cookie. Il valore di questa preferenza è di tipo booleano e il valore predefinito è true. Le estensioni non possono abilitare questa API in modalità di navigazione in incognito, in cui i cookie di terze parti sono bloccati e possono essere consentiti solo a livello di sito. Se provi a impostare questa API su true in modalità di navigazione in incognito, verrà generato un errore.

    Nota: i singoli siti potrebbero comunque essere in grado di accedere ai cookie di terze parti quando questa API restituisce false, se dispongono di un'esenzione valida o se utilizzano l'API Storage Access.

  • topicsEnabled
    Chrome 111+

    Se disattivata, l'API Topics viene disattivata. Il valore di questa preferenza è di tipo booleano e il valore predefinito è true. Le estensioni possono disattivare questa API solo impostando il valore su false. Se provi a impostare questa API su true, verrà generato un errore.