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
privacyPer utilizzare l'API, devi dichiarare l'autorizzazione "privacy" nel manifest dell'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, quindi chiamare get() su quell'oggetto per recuperare il suo valore attuale e il livello di controllo dell'estensione. Ad esempio, per determinare se la funzionalità di compilazione automatica della carta di credito di Chrome è attiva, scrivi:
browser.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.value) {
console.log('Autofill is on!');
} else {
console.log('Autofill is off!');
}
});
La modifica del valore di un'impostazione è un po' più complessa, perché devi prima verificare che l'estensione possa controllare l'impostazione. L'utente non vedrà alcuna modifica alle proprie impostazioni se la tua estensione attiva/disattiva un'impostazione bloccata su un valore specifico dalle policy 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 set() andrà a buon fine, ma l'impostazione verrà immediatamente sostituita. Poiché ciò 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, quindi chiamare set() solo se l'estensione può assumere il controllo dell'impostazione (infatti, se l'estensione non può controllare l'impostazione, probabilmente è una buona idea disattivare visivamente la funzionalità per ridurre la confusione degli utenti):
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);
}
});
}
});
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 assume il controllo di un'impostazione o se la policy aziendale esegue l'override del tuo controllo. Per rilevare le modifiche allo stato della compilazione automatica della carta di credito, ad esempio, è sufficiente il seguente codice:
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.
}
);
Esempi
Per provare questa API, installa l'esempio di API per la privacy dal repository chrome-extension-samples.
Tipi
AutofillBlockedType
Categorie di dati della compilazione automatica.
Enum
"contact_info"
"payments"
"identity_docs"
"travel"
"all"
IPHandlingPolicy
La 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 influiscono sulla gestione delle connessioni di rete da parte di Chrome in generale.
Tipo
oggetto
Proprietà
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Se l'impostazione è attiva, Chrome tenta di velocizzare la navigazione sul web pre-risolvendo le voci DNS, aprendo preventivamente le connessioni TCP e SSL ai server e precaricando le pagine. La disattivazione di questa preferenza sostituisce la possibilità per i proprietari dei siti di caricare i contenuti in modo speculativo (ad esempio il precaricamento o il prerendering tramite l'API Speculation Rules). Non influisce sulle preconnessioni o sui prefetch DNS avviati dalle pagine web. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è
true. -
webRTCIPHandlingPolicyChrome 48+ browser.* da Chrome 148
Consenti agli utenti di specificare i compromessi tra prestazioni e privacy dei contenuti multimediali che influiscono sul modo in cui verrà instradato il traffico WebRTC e sulla quantità di informazioni sugli indirizzi locali 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 motore di ricerca predefinito.
Tipo
oggetto
Proprietà
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
Se attivata, 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
types.ChromeSetting<boolean>
Browser Chrome 70 e versioni successive * da Chrome 148Se l'impostazione è attiva, Chrome offre la possibilità di compilare automaticamente gli indirizzi e altri dati dei moduli. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è
true. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Browser Chrome 70 e versioni successive * da Chrome 148Se l'opzione è attiva, Chrome offre la compilazione automatica dei moduli per le carte di credito. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è
true. -
autofillEnabled
types.ChromeSetting<boolean>
Ritirato da Chrome 70Utilizza privacy.services.autofillAddressEnabled e privacy.services.autofillCreditCardEnabled. Questo rimane per la compatibilità con le versioni precedenti in questa release e verrà rimosso in futuro.
Se l'opzione è attiva, Chrome offre la compilazione automatica dei moduli. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è
true. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Se l'opzione è attiva, Gestore delle password ti chiederà se vuoi salvare le password. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è
true. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Se l'opzione è attiva, 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
types.ChromeSetting<boolean>
Se questa opzione è attiva, Chrome invierà informazioni aggiuntive a Google 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
types.ChromeSetting<boolean>
Se l'impostazione è attiva, Chrome invia il testo digitato nella omnibox al tuo motore di ricerca predefinito, che fornisce previsioni di siti web e ricerche che probabilmente completano ciò che hai digitato finora. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è
true. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Se l'opzione è attiva, Chrome utilizza un servizio web per correggere gli errori ortografici. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è
false. -
translationServiceEnabled
types.ChromeSetting<boolean>
Se l'opzione è attiva, Chrome propone di tradurre le pagine che non sono in una lingua che leggi. Il valore di questa preferenza è un valore booleano, il cui valore predefinito è
true.
websites
Impostazioni che determinano quali informazioni Chrome mette a disposizione dei siti web.
Tipo
oggetto
Proprietà
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 e versioni successive browser.* da Chrome 148Se disattivata, le API Attribution Reporting e 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 e versioni successive browser.* da Chrome 148Se l'impostazione è attiva, 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 e versioni successive browser.* da Chrome 148Se l'opzione è disattivata, 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 l'opzione è attiva, 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
types.ChromeSetting<boolean>
Disponibile solo su Windows e ChromeOS: se attivata, 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 l'impostazione è attiva, Chrome invia intestazioni
referercon le tue richieste. Sì, il nome di questa preferenza non corrisponde all'intestazione con l'errore ortografico. No, non lo cambieremo. Il valore di questa preferenza è di tipo booleano e il valore predefinito ètrue. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Se il criterio viene disattivato, 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 attivare questa API in modalità 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 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
types.ChromeSetting<boolean>
Chrome 111 e versioni successive browser.* da Chrome 148Se 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 sufalse. Se provi a impostare questa API sutrue, verrà generato un errore.