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 recuperare e impostare la configurazione di Chrome.
Autorizzazioni
privacyManifest
Per utilizzare l'API, devi dichiarare l'autorizzazione "privacy" nel manifest dell'estensione. Ad esempio:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Utilizzo
Leggere il valore corrente di un'impostazione di Chrome è semplice. Innanzitutto, devi trovare la proprietà che ti interessa, quindi chiamare get() sull'oggetto per recuperare il valore corrente e il livello di controllo dell'estensione. Ad esempio, per determinare se la funzionalità di compilazione automatica di Chrome è abilitata, devi scrivere:
chrome.privacy.services.autofillEnabled.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, semplicemente perché devi prima verificare che la tua estensione possa controllare l'impostazione. L'utente non vedrà alcuna modifica alle impostazioni se l'estensione attiva o disattiva un'impostazione bloccata su un valore specifico dalle policy aziendali (levelOfControl sarà impostato su "not_controllable") o se un'altra estensione controlla il valore (levelOfControl sarà impostato su "controlled_by_other_extensions"). La chiamata set() andrà a buon fine, ma l'impostazione verrà immediatamente sostituita. Poiché questa situazione potrebbe creare confusione, è consigliabile avvisare l'utente quando le impostazioni scelte non vengono applicate in pratica.
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ò acquisire il controllo dell'impostazione (in realtà, se la tua estensione non può controllare l'impostazione, è probabilmente una buona idea disattivare visivamente la funzionalità per ridurre la confusione dell'utente):
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 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 la policy aziendale sostituisce il tuo controllo. Per ascoltare le modifiche allo stato della compilazione automatica, ad esempio, è sufficiente il seguente codice:
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.
}
);
Esempi
Per provare questa API, installa l'esempio dell'API Privacy dal repository chrome-extension-samples.
Tipi
AutofillBlockedType
Categorie di dati della compilazione automatica.
Enum
"contact_info"
"payments"
"identity_docs"
"travel"
AutofillSettings
Regole di blocco specifiche per il sito per le funzionalità di compilazione automatica.
Tipo
object[]
Proprietà
-
blockedTypes
Le categorie di dati della compilazione automatica da bloccare sui siti corrispondenti.
-
urlPattern
stringa
Un pattern URL che specifica i siti per cui si applica la regola di blocco.
IPHandlingPolicy
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 di Chrome in generale.
Tipo
oggetto
Proprietà
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Se abilitata, Chrome tenta di velocizzare l'esperienza di navigazione web pre-risolvendo 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 sulle preletture o sulle preconnessioni avviate dalle pagine web. Il valore di questa preferenza è un valore booleano, con valore predefinito
true. -
webRTCIPHandlingPolicyChrome 48+
Consenti agli utenti di specificare i compromessi tra prestazioni multimediali e privacy che influiscono sul modo in cui il traffico WebRTC verrà instradato e sulla quantità di informazioni sull'indirizzo locale esposte. Il valore di questa preferenza è di tipo IPHandlingPolicy, con valore predefinito
default.
services
Impostazioni che attivano o disattivano le funzionalità che richiedono servizi di rete di terze parti forniti da Google e dal tuo provider di ricerca predefinito.
Tipo
oggetto
Proprietà
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
Se abilitata, Chrome utilizza un servizio web per risolvere gli errori di navigazione. Il valore di questa preferenza è un valore booleano, con valore predefinito
true. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70+Se abilitata, Chrome offre di compilare automaticamente gli indirizzi e altri dati dei moduli. Il valore di questa preferenza è un valore booleano, con valore predefinito
true. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70+Se abilitata, Chrome offre di compilare automaticamente i moduli delle carte di credito. Il valore di questa preferenza è un valore booleano, con valore predefinito
true. -
autofillEnabled
types.ChromeSetting<boolean>
Deprecato a partire da Chrome 70Utilizza privacy.services.autofillAddressEnabled e privacy.services.autofillCreditCardEnabled. Questa impostazione rimane per la compatibilità con le versioni precedenti in questa release e verrà rimossa in futuro.
Se abilitata, Chrome offre di compilare automaticamente i moduli. Il valore di questa preferenza è un valore booleano, con valore predefinito
true. -
autofillSettingsIn attesa
Se impostato, consente il controllo specifico del sito sulle funzionalità di compilazione automatica bloccando categorie di dati specifiche sui pattern URL corrispondenti.
-
passwordSavingEnabled
types.ChromeSetting<boolean>
Se abilitato, il gestore delle password ti chiederà se vuoi salvare le password. Il valore di questa preferenza è un valore booleano, con valore predefinito
true. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Se abilitata, Chrome fa del suo meglio per proteggerti da phishing e malware. Il valore di questa preferenza è un valore booleano, con valore predefinito
true. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Se abilitata, Chrome invierà informazioni aggiuntive a Google quando Safe Browsing blocca una pagina, ad esempio i contenuti della pagina bloccata. Il valore di questa preferenza è un valore booleano, con valore predefinito
false. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Se abilitata, Chrome invia il testo che digiti nella omnibox al tuo motore di ricerca predefinito, che fornisce previsioni di siti web e ricerche che sono probabili completamenti di ciò che hai digitato finora. Il valore di questa preferenza è un valore booleano, con valore predefinito
true. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Se abilitata, Chrome utilizza un servizio web per correggere gli errori di ortografia. Il valore di questa preferenza è un valore booleano, con valore predefinito
false. -
translationServiceEnabled
types.ChromeSetting<boolean>
Se abilitata, Chrome offre di tradurre le pagine che non sono in una lingua che leggi. Il valore di questa preferenza è un valore booleano, con valore predefinito
true.
websites
Impostazioni che determinano quali informazioni Chrome rende disponibili ai siti web.
Tipo
oggetto
Proprietà
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111+Se disabilitata, 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 sufalse. Se provi a impostare queste API sutrue, verrà generato un errore. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65+Se abilitata, Chrome invia l'intestazione "Do Not Track" (
DNT: 1) con le tue richieste. Il valore di questa preferenza è di tipo booleano e il valore predefinito èfalse. -
fledgeEnabled
types.ChromeSetting<boolean>
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 sufalse. Se provi a impostare questa API sutrue, verrà generato un errore. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Se abilitata, Chrome invia ping di audit quando richiesto da un sito web (
<a ping>). Il valore di questa preferenza è di tipo booleano e il valore predefinito ètrue. -
protectedContentEnabled
types.ChromeSetting<boolean>
Disponibile solo su Windows e ChromeOS: se abilitata, 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
types.ChromeSetting<boolean>
Se abilitata, Chrome invia le intestazioni
referercon le tue richieste. Sì, il nome di questa preferenza non corrisponde all'intestazione con errore di ortografia. No, non lo cambieremo. Il valore di questa preferenza è di tipo booleano e il valore predefinito ètrue. -
types.ChromeSetting<boolean>
Chrome 121+Se disabilitata, 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 sufalse. Se provi a impostare questa API sutrue, verrà generato un errore. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Se disabilitata, 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 hanno un'esenzione valida o se utilizzano l'API Storage Access. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111+Se disabilitata, 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 sufalse. Se provi a impostare questa API sutrue, verrà generato un errore.