Opis
Użyj interfejsu API chrome.privacy, aby 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 konfigurowania Chrome.
Uprawnienia
privacyAby korzystać z interfejsu API, musisz zadeklarować uprawnienie „privacy” w pliku manifestu rozszerzenia. Przykład:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Pojęcia i użycie
Odczytanie bieżącej wartości ustawienia Chrome jest proste. Najpierw musisz znaleźć właściwość, która Cię interesuje, a następnie wywołać get() na tym obiekcie, aby pobrać jego bieżącą wartość i poziom kontroli rozszerzenia. Aby na przykład sprawdzić, czy funkcja autouzupełniania danych karty kredytowej w Chrome jest włączona, wpisz:
browser.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.value) {
console.log('Autofill is on!');
} else {
console.log('Autofill is off!');
}
});
Zmiana wartości ustawienia jest nieco bardziej skomplikowana, ponieważ najpierw musisz sprawdzić, czy rozszerzenie może kontrolować ustawienie. Użytkownik nie zobaczy żadnych zmian w ustawieniach, jeśli rozszerzenie przełączy ustawienie, które jest zablokowane na określonej wartości przez zasady firmy (levelOfControl będzie mieć wartość „not_controllable”) lub jeśli wartość jest kontrolowana przez inne rozszerzenie (levelOfControl będzie mieć wartość „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 w praktyce.
Oznacza to, że należy 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 nie dezorientować użytkownika):
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);
}
});
}
});
Jeśli interesują Cię zmiany wartości ustawienia, dodaj detektor do zdarzenia onChange. Dzięki temu możesz m.in. ostrzec użytkownika, jeśli nowo zainstalowane rozszerzenie przejmie kontrolę nad ustawieniem lub jeśli zasady firmy zastąpią Twoją kontrolę. Aby na przykład monitorować zmiany stanu autouzupełniania karty kredytowej, wystarczy ten kod:
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.
}
);
Przykłady
Aby wypróbować ten interfejs API, zainstaluj przykład interfejsu API prywatności z repozytorium chrome-extension-samples.
Typy
AutofillBlockedType
Kategorie danych autouzupełniania.
Typ wyliczeniowy
"contact_info"
"payments"
"identity_docs"
"travel"
"all"
IPHandlingPolicy
Zasada 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 sposób obsługi połączeń sieciowych przez Chrome.
Typ
obiekt
Właściwości
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Jeśli ta zasada jest włączona, Chrome próbuje przyspieszyć przeglądanie internetu przez wstępne rozpoznawanie wpisów DNS, zapobiegawcze otwieranie połączeń TCP i SSL z serwerami oraz wstępne wczytywanie stron. Wyłączenie tej opcji uniemożliwia właścicielom witryn ładowanie spekulacyjne treści (np. pobieranie z wyprzedzeniem lub renderowanie wstępne za pomocą interfejsu Speculation Rules API). Nie ma to wpływu na wstępne połączenia ani wstępne pobieranie DNS inicjowane przez stronę internetową. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
true. -
webRTCIPHandlingPolicyChrome 48 lub nowsza browser.* od Chrome 148
Zezwalaj użytkownikom na określanie kompromisów między wydajnością multimediów a prywatnością, co wpływa na sposób kierowania ruchu WebRTC i ilość ujawnianych informacji o adresie lokalnym. Wartość tego ustawienia jest typu IPHandlingPolicy, a domyślna wartość to
default.
services
Ustawienia, które włączają lub wyłączają funkcje wymagające usług sieciowych innych firm świadczonych przez Google i Twojego domyślnego dostawcę wyszukiwania.
Typ
obiekt
Właściwości
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
Jeśli zasada jest włączona, Chrome używa usługi internetowej, aby pomóc w rozwiązywaniu błędów nawigacji. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
true. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 lub nowsza browser.* od Chrome 148Jeśli zasada jest włączona, Chrome proponuje automatyczne wypełnianie adresów i innych danych formularzy. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
true. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70 lub nowsza browser.* od Chrome 148Jeśli zasada jest włączona, Chrome proponuje automatyczne wypełnianie formularzy kart kredytowych. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
true. -
autofillEnabled
types.ChromeSetting<boolean>
Wycofane od wersji Chrome 70Użyj privacy.services.autofillAddressEnabled i privacy.services.autofillCreditCardEnabled. Ta opcja została zachowana w tej wersji ze względu na zgodność wsteczną i zostanie usunięta w przyszłości.
Jeśli zasada jest włączona, Chrome proponuje automatyczne wypełnianie formularzy. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
true. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Jeśli zasada jest włączona, menedżer haseł pyta, czy chcesz zapisać hasła. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
true. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome stara się chronić Cię przed phishingiem i złośliwym oprogramowaniem. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
true. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Jeśli ta zasada jest włączona, Chrome wysyła do Google dodatkowe informacje, gdy Bezpieczne przeglądanie blokuje stronę, np. zawartość zablokowanej strony. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
false. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Jeśli to ustawienie jest włączone, Chrome wysyła tekst wpisywany w omniboksie do domyślnej wyszukiwarki, która podaje podpowiedzi stron internetowych i wyszukiwań, które mogą być uzupełnieniem wpisanego tekstu. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
true. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Jeśli zasada jest włączona, Chrome używa usługi internetowej do poprawiania błędów pisowni. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
false. -
translationServiceEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome proponuje tłumaczenie stron, które nie są w języku, w którym czytasz. Wartość tego ustawienia jest wartością logiczną, która domyślnie wynosi
true.
websites
Ustawienia określające, jakie informacje Chrome udostępnia witrynom.
Typ
obiekt
Właściwości
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 lub nowsza wersja browser.* od Chrome 148Jeśli ta opcja jest wyłączona, interfejsy Attribution Reporting API i Private Aggregation API są dezaktywowane. Wartość tego ustawienia jest typu logicznego, a wartość domyślna to
true. Rozszerzenia mogą wyłączyć te interfejsy API tylko przez ustawienie wartościfalse. Jeśli spróbujesz ustawić te interfejsy API natrue, pojawi się błąd. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 lub nowsza browser.* od Chrome 148Jeśli zasada jest włączona, Chrome wysyła z żądaniami nagłówek „Do Not Track” (
DNT: 1). Wartość tego ustawienia jest typu logicznego, a wartość domyślna tofalse. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 lub nowsza wersja browser.* od Chrome 148Jeśli ta opcja jest wyłączona, interfejs Fledge API jest dezaktywowany. Wartość tego ustawienia jest typu logicznego, a wartość domyślna to
true. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartościfalse. Jeśli spróbujesz ustawić ten interfejs API natrue, wystąpi błąd. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Jeśli zasada jest włączona, Chrome wysyła pingi kontrolne, gdy zażąda tego witryna (
<a ping>). Wartość tej zasady jest typu logicznego, a wartość domyślna totrue. -
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ć uruchamianie chronionych treści. Wartość tego ustawienia jest typu logicznego, a wartość domyślna to
true. -
referrersEnabled
types.ChromeSetting<boolean>
Jeśli zasada jest włączona, Chrome wysyła nagłówki
refererz Twoimi żądaniami. Tak, nazwa tej opcji nie pasuje do nagłówka z błędem pisowni. Nie, nie zamierzamy tego zmieniać. Wartość tego ustawienia jest typu logicznego, a wartość domyślna totrue. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Jeśli zasada jest wyłączona, Chrome blokuje witrynom innych firm możliwość ustawiania plików cookie. Wartość tego ustawienia jest typu logicznego, a wartość domyślna to
true. Rozszerzenia nie mogą włączać 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 wartość „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 zamiast tego używają interfejsu Storage Access API. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 lub nowsza wersja browser.* od Chrome 148Jeśli zasada jest wyłączona, interfejs Topics API jest nieaktywny. Wartość tego ustawienia jest typu logicznego, a wartość domyślna to
true. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartościfalse. Jeśli spróbujesz ustawić ten interfejs API natrue, wystąpi błąd.