Opis
Użyj interfejsu chrome.privacy API, aby kontrolować korzystanie z funkcji Chrome, które mogą wpływać na prywatność użytkownika. Ten interfejs API korzysta z prototypu ChromeSetting interfejsu API do pobierania i ustawiania konfiguracji Chrome.
Uprawnienia
privacyAby korzystać z tego interfejsu API, musisz zadeklarować uprawnienie „privacy” w pliku manifestu rozszerzenia. Przykład:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Pojęcia i zastosowanie
Odczytanie bieżącej wartości ustawienia Chrome jest proste. Najpierw musisz znaleźć właściwość, która Cię interesuje, a następnie wywołać na tym obiekcie funkcję get(), 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:
chrome.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ć to ustawienie. Jeśli rozszerzenie przełącza ustawienie, które jest zablokowane na określoną wartość przez zasady firmowe (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”), użytkownik nie zobaczy żadnych zmian w ustawieniach. Połączenie set() zostanie nawiązane, ale ustawienie zostanie natychmiast zastąpione. Może to być mylące, dlatego warto ostrzec użytkownika, gdy wybrane przez niego ustawienia nie są stosowane w praktyce.
Oznacza to, że do określenia poziomu dostępu należy użyć metody get(), 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.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);
}
});
}
});
Jeśli interesują Cię zmiany wartości ustawienia, dodaj do niego odbiornik zdarzeń onChange. Umożliwi Ci to m.in. ostrzeganie użytkownika, jeśli nowsze rozszerzenie przejmie kontrolę nad ustawieniem lub jeśli zasady przedsiębiorstwa zastąpią Twoją kontrolę. Aby na przykład nasłuchiwać zmian stanu automatycznego wypełniania danych karty kredytowej, wystarczy ten kod:
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.
}
);
Przykłady
Aby wypróbować ten interfejs API, zainstaluj przykład interfejsu API dotyczącego prywatności z repozytorium chrome-extension-samples.
Typy
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ólne zarządzanie połączeniami sieciowymi w Chrome.
Typ
obiekt
Właściwości
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome próbuje przyspieszyć przeglądanie internetu, wstępnie rozwiązując wpisy DNS i otwierając połączenia TCP i SSL z serwerami. To ustawienie ma wpływ tylko na działania podejmowane przez wewnętrzną usługę prognozowania Chrome. Nie ma to wpływu na wstępne pobieranie ani wstępne łączenie inicjowane przez stronę internetową. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
true. -
webRTCIPHandlingPolicyChrome 48 lub nowsza
Umożliwia użytkownikom 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 lokalnym adresie. Wartość tego ustawienia jest typu IPHandlingPolicy, a wartość domyślna to
default.
services
Ustawienia, które włączają lub wyłączają funkcje wymagające usług sieciowych innych firm dostarczanych przez Google i domyślnego dostawcę wyszukiwania.
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ść tego ustawienia jest wartością logiczną, której domyślna wartość to
true. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome w wersji 70 lub nowszejJeśli ta opcja jest włączona, Chrome automatycznie wypełnia adresy i inne dane w formularzach. Wartość tego ustawienia to wartość logiczna, która domyślnie wynosi
true. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome w wersji 70 lub nowszejJeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie formularzy kart kredytowych. Wartość tego ustawienia to wartość logiczna, która domyślnie wynosi
true. -
autofillEnabled
types.ChromeSetting<boolean>
Wycofane w Chrome 70Używaj ustawień privacy.services.autofillAddressEnabled i privacy.services.autofillCreditCardEnabled. W tej wersji zachowujemy tę funkcję ze względu na zgodność wsteczną, ale w przyszłości ją usuniemy.
Jeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie formularzy. Wartość tego ustawienia to wartość logiczna, która domyślnie wynosi
true. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, menedżer haseł zapyta, czy chcesz zapisywać hasła. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
true. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome dokłada wszelkich starań, aby chronić Cię przed phishingiem i złośliwym oprogramowaniem. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
true. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome będzie wysyłać do Google dodatkowe informacje, gdy Bezpieczne przeglądanie zablokuje stronę, np. zawartość zablokowanej strony. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
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 dotyczące witryn i wyszukiwań, które prawdopodobnie będą zakończeniem wpisanego tekstu. Wartość tego ustawienia jest logiczna i domyślnie wynosi
true. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome używa usługi internetowej do poprawiania błędów ortograficznych. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
false. -
translationServiceEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome proponuje tłumaczenie stron w obcych językach. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
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 nowszaJeś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, zgłosi błąd. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 lub nowszaJeśli ta opcja jest włączona, Chrome wysyła nagłówek „Do Not Track” (
DNT: 1) wraz z Twoimi żądaniami. Wartość tego ustawienia jest typu logicznego, a wartość domyślna tofalse. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 lub nowszaJeś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, zostanie zgłoszony błąd. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome wysyła pingi audytu na żądanie witryny (
<a ping>). Wartość tego ustawienia 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 mogły one uruchamiać chronione treści. Wartość tego ustawienia jest typu logicznego, a wartość domyślna to
true. -
referrersEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome wysyła nagłówki
refererwraz z Twoimi żądaniami. Tak, nazwa tego ustawienia nie pasuje do nagłówka z błędem. Nie, nie zmienimy tego. Wartość tego ustawienia jest typu logicznego, a wartość domyślna totrue. -
types.ChromeSetting<boolean>
Chrome 121 lub nowszaJeśli ta opcja jest wyłączona, zestawy powiązanych witryn są dezaktywowane. 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, zgłosi błąd. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Jeśli ta opcja 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 wyjątki lub zamiast tego używają interfejsu Storage Access API. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 lub nowszaJeśli ta opcja 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, zgłosi błąd.