Opis
Za pomocą interfejsu chrome.privacy możesz kontrolować korzystanie z funkcji Chrome, które mogą wpływać na prywatność użytkownika. Ten interfejs API korzysta z prototypu ChromeSetting interfejsu API typu do pobierania i ustawiania konfiguracji Chrome.
Uprawnienia
privacyPlik manifestu
Aby korzystać z interfejsu API, musisz zadeklarować uprawnienie „privacy” w pliku manifestu rozszerzenia. Przykład:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Wykorzystanie
Odczytanie bieżącej wartości ustawienia Chrome jest proste. Najpierw musisz znaleźć interesującą Cię właściwość, a potem wywołać metodę get() na tym obiekcie, aby pobrać jego bieżącą wartość i poziom kontroli rozszerzenia. Aby na przykład sprawdzić, czy funkcja Autouzupełnianie w Chrome jest włączona, napisz:
chrome.privacy.services.autofillEnabled.get({}, function(details) {
if (details.value) {
console.log('Autofill is on!');
} else {
console.log('Autofill is off!');
}
});
Zmiana wartości ustawienia jest nieco bardziej złożona, ponieważ najpierw musisz sprawdzić, czy rozszerzenie może kontrolować to ustawienie. Użytkownik nie zobaczy żadnych zmian w ustawieniach, jeśli rozszerzenie przełączy ustawienie, które jest zablokowane na określoną wartość przez zasady firmowe (levelOfControl będzie ustawione na „not_controllable”), lub jeśli wartość jest kontrolowana przez inne rozszerzenie (levelOfControl będzie ustawione na „controlled_by_other_extensions”). Wywołanie set() zakończy się powodzeniem, ale ustawienie zostanie natychmiast zastąpione. Może to być mylące, dlatego zalecamy ostrzeganie użytkownika, gdy wybrane przez niego ustawienia nie są stosowane.
Oznacza to, że musisz użyć metody get(), aby określić poziom dostępu, a następnie wywołać metodę set() tylko wtedy, gdy rozszerzenie może przejąć kontrolę nad ustawieniem (jeśli rozszerzenie nie może kontrolować ustawienia, warto wizualnie wyłączyć tę funkcję, aby zmniejszyć dezorientację użytkownika):
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);
}
});
}
});
Jeśli interesują Cię zmiany wartości ustawienia, dodaj detektor do zdarzenia onChange. Umożliwi to między innymi ostrzeganie użytkownika, jeśli nowo zainstalowane rozszerzenie przejmie kontrolę nad ustawieniem lub jeśli zasady firmowe zastąpią Twoją kontrolę. Aby na przykład monitorować zmiany stanu Autouzupełniania, wystarczy ten kod:
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.
}
);
Przykłady
Aby wypróbować ten interfejs API, zainstaluj przykład interfejsu Privacy API z repozytorium chrome-extension-samples.
Typy
AutofillBlockedType
Kategorie danych Autouzupełniania.
Typ wyliczeniowy
„contact_info”
„payments”
„identity_docs”
„travel”
„all”
IPHandlingPolicy
Zasady obsługi adresów IP przez WebRTC.
Typ wyliczeniowy
„default”
"default_public_and_private_interfaces"
"default_public_interface_only"
"disable_non_proxied_udp"
Właściwości
network
Ustawienia, które wpływają na ogólną obsługę połączeń sieciowych przez Chrome.
Typ
obiekt
Właściwości
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome próbuje przyspieszyć przeglądanie stron internetowych, wstępnie rozwiązując wpisy DNS, otwierając połączenia TCP i SSL z serwerami oraz wstępnie wczytując strony. Wyłączenie tej preferencji uniemożliwia właścicielom witryn ładowanie spekulacyjne treści (np. wstępne pobieranie lub renderowanie wstępne za pomocą interfejsu Speculation Rules API). Nie wpływa to na wstępne połączenia ani wstępne pobieranie DNS inicjowane przez stronę internetową. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. -
webRTCIPHandlingPolicyChrome 48+
Umożliwia użytkownikom określenie kompromisów między wydajnością multimediów a prywatnością, co wpływa na sposób kierowania ruchu WebRTC i ilość informacji o adresie lokalnym, które są udostępniane. Wartość tej preferencji jest typu IPHandlingPolicy i domyślnie ma wartość
default.
services
Ustawienia, które włączają lub wyłączają funkcje wymagające usług sieciowych innych firm świadczonych przez Google i domyślnego dostawcę wyszukiwarki.
Typ
obiekt
Właściwości
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome używa usługi internetowej, aby pomóc w rozwiązywaniu błędów nawigacji. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70+Jeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie adresów i innych danych formularza. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70+Jeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie formularzy z danymi karty kredytowej. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. -
autofillEnabled
types.ChromeSetting<boolean>
Wycofane od Chrome 70Używaj privacy.services.autofillAddressEnabled i privacy.services.autofillCreditCardEnabled. W tej wersji pozostaje to dla zachowania zgodności wstecznej i zostanie usunięte w przyszłości.
Jeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie formularzy. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, menedżer haseł zapyta, czy chcesz zapisywać hasła. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome będzie chronić Cię przed wyłudzaniem danych i złośliwym oprogramowaniem. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, gdy Bezpieczne przeglądanie zablokuje stronę, Chrome będzie wysyłać do Google dodatkowe informacje, np. zawartość zablokowanej strony. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
false. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome wysyła tekst wpisywany w omniboksie do domyślnej wyszukiwarki, która podaje przewidywania witryn i wyszukiwań, które prawdopodobnie uzupełnią wpisany tekst. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome używa usługi internetowej, aby pomóc w poprawianiu błędów ortograficznych. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
false. -
translationServiceEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome oferuje tłumaczenie stron, które nie są w języku, w którym czytasz. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true.
websites
Ustawienia, które określają, jakie informacje Chrome udostępnia witrynom.
Typ
obiekt
Właściwości
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111+Jeśli ta opcja jest wyłączona, interfejsy Attribution Reporting API i Private Aggregation API są dezaktywowane. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. Rozszerzenia mogą wyłączyć te interfejsy API tylko przez ustawienie wartościfalse. Jeśli spróbujesz ustawić te interfejsy API natrue, zgłosi błąd. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65+Jeśli ta opcja jest włączona, Chrome wysyła nagłówek „Do Not Track” (
DNT: 1) z Twoimi żądaniami. Wartość tej preferencji jest typu boolean i domyślnie ma wartośćfalse. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111+Jeśli ta opcja jest wyłączona, interfejs Fledge API jest dezaktywowany. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartościfalse. Jeśli spróbujesz ustawić ten interfejs API natrue, zgłosi błąd. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome wysyła pingi audytu, gdy witryna o to poprosi (
<a ping>). Wartość tej preferencji jest typu boolean i domyślnie ma wartośćtrue. -
protectedContentEnabled
types.ChromeSetting<boolean>
Dostępne tylko w systemach Windows i ChromeOS: jeśli ta opcja jest włączona, Chrome udostępnia wtyczkom unikalny identyfikator, aby umożliwić im odtwarzanie treści chronionych. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. -
referrersEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome wysyła nagłówki
refererz Twoimi żądaniami. Tak, nazwa tej preferencji nie pasuje do błędnie napisanego nagłówka. Nie, nie zmienimy tego. Wartość tej preferencji jest typu boolean i domyślnie ma wartośćtrue. -
types.ChromeSetting<boolean>
Chrome 121+Jeśli ta opcja jest wyłączona, funkcja „Zestawy powiązanych witryn” jest dezaktywowana. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartościfalse. Jeśli spróbujesz ustawić ten interfejs API natrue, zgłosi błąd. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Jeśli ta opcja jest wyłączona, Chrome blokuje witryny innych firm przed ustawianiem plików cookie. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. Rozszerzenia nie mogą włączyć tego interfejsu API w trybie incognito, w którym pliki cookie innych firm są blokowane i mogą być dozwolone tylko na poziomie witryny. Jeśli spróbujesz ustawić ten interfejs API na true w trybie incognito, pojawi się błąd.Uwaga: poszczególne witryny mogą nadal mieć dostęp do plików cookie innych firm, gdy ten interfejs API zwraca wartość
false, jeśli mają ważne zwolnienie lub używają interfejsu Storage Access API. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111+Jeśli ta opcja jest wyłączona, interfejs Topics API jest dezaktywowany. Wartość tej preferencji jest typu boolean i domyślnie ma wartość
true. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartościfalse. Jeśli spróbujesz ustawić ten interfejs API natrue, zgłosi błąd.