Opis
Używaj interfejsu API chrome.privacy
, aby kontrolować korzystanie z funkcji w Chrome, które mogą wpływać na prywatność użytkownika. Ten interfejs API korzysta z prototypu ChromeSetting typu API do pobierania i ustawiania konfiguracji Chrome.
Uprawnienia
privacy
Aby korzystać z interfejsu API, musisz zadeklarować uprawnienie „privacy” w pliku manifestu rozszerzenia. Przykład:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Pojęcia i zastosowanie
Odczyt bieżącej wartości ustawienia Chrome jest bardzo prosty. Najpierw musisz znaleźć interesującą Cię właściwość, a potem wywołać funkcję get()
tego obiektu, aby pobrać jego bieżącą wartość i poziom kontroli rozszerzenia. Aby na przykład sprawdzić, czy funkcja automatycznego wypeł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ż musisz najpierw sprawdzić, czy Twoje rozszerzenie może nim sterować. Użytkownik nie zauważy żadnej zmiany ustawień, jeśli Twoje rozszerzenie przełączy ustawienie, które jest zablokowane na określoną wartość przez zasady firmowe (wartość levelOfControl
zostanie ustawiona na „not_controllable”) lub jeśli inne rozszerzenie kontroluje wartość (wartość levelOfControl
zostanie ustawiona na „controlled_by_other_extensions”). Wywołanie funkcji set()
zakończy się powodzeniem, ale ustawienie zostanie natychmiast zastąpione. Może to być mylące, dlatego zalecamy ostrzeżenie 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 Twoja rozszerzenie może przejąć kontrolę nad ustawieniem (w fakcie, jeśli Twoja rozszerzenie nie może kontrolować ustawienia, warto wizualnie wyłączyć tę funkcję, aby nie wprowadzać użytkowników w błąd):
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 zdarzenia onChange
odpowiedni odbiornik. Pozwoli Ci to m.in. ostrzec użytkownika, jeśli niedawno zainstalowane rozszerzenie przejmie kontrolę nad ustawieniem lub jeśli zasady firmy zastąpią Twoją kontrolę. Aby nasłuchiwać zmian stanu autouzupełniania danych karty kredytowej, wystarczy na przykład 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 sposób obsługi połączeń sieciowych przez Chrome.
Typ
obiekt
Właściwości
-
networkPredictionEnabled
types.ChromeSetting<boolean>
Jeśli ta funkcja jest włączona, Chrome stara się przyspieszyć przeglądanie internetu przez wstępne rozwiązywanie wpisów DNS i wcześniejsze otwieranie połączeń TCP i SSL do serwerów. Ta opcja ma wpływ tylko na działania podejmowane przez wewnętrzną usługę prognozowania w Chrome. Nie wpływa to na wstępną obróbkę ani wstępną konfigurację inicjowane przez stronę internetową. Wartość tej opcji jest typu logicznego i domyślnie ustawiona na
true
. -
webRTCIPHandlingPolicyChrome 48+
Umożliw użytkownikom określenie kompromisu między wydajnością multimediów a prywatnością, który wpływa na sposób kierowania ruchu WebRTC i ilość informacji o adresie lokalnym, które są udostępniane. Wartość tej opcji ma typ IPHandlingPolicy i domyślnie jest ustawiona na
default
.
services
Ustawienia, które włączają lub wyłączają funkcje wymagające usług sieciowych innych firm oferowanych 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ść tej opcji jest typu logicznego i domyślnie ustawiona na
true
. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 lub nowszyJeśli ta funkcja jest włączona, Chrome automatycznie wypełnia pola adresów i inne dane formularzy. Wartość tej opcji jest typu logicznego i domyślnie ustawiona na
true
. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome w wersji 70 lub nowszejJeśli ta opcja jest włączona, Chrome automatycznie wypełnia formularze kart kredytowych. Wartość tej opcji jest typu logicznego i domyślnie ustawiona na
true
. -
autofillEnabled
types.ChromeSetting<boolean>
Wycofane w wersji Chrome 70Użyj interfejsów privacy.services.autofillAddressEnabled i privacy.services.autofillCreditCardEnabled. W tej wersji jest to zachowane ze względu na zgodność wsteczną, ale w przyszłości zostanie usunięte.
Jeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie formularzy. Wartość tej opcji jest typu logicznego i domyślnie ustawiona na
true
. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, menedżer haseł zapyta, czy chcesz zapisać hasła. Wartość tej opcji jest typu logicznego i domyślnie ustawiona na
true
. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Jeśli ta funkcja jest włączona, Chrome robi, co w jego mocy, aby chronić Cię przed wyłudzaniem informacji i złośliwym oprogramowaniem. Wartość tej opcji jest typu logicznego i domyślnie ustawiona na
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ść tej opcji jest typu logicznego i domyślnie ustawiona na
false
. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Jeśli ta funkcja jest włączona, Chrome wysyła tekst wpisany w omniboksie do domyślnej wyszukiwarki, która wyświetla przewidywane strony i wyszukiwania, które mogą być dokończeniem tego, co zostało do tej pory wpisane. Wartość tej opcji jest typu logicznego i domyślnie ustawiona na
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ść tej opcji jest typu logicznego i domyślnie ustawiona na
false
. -
translationServiceEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome oferuje tłumaczenie stron w obcych językach. Wartość tej opcji jest typu logicznego i domyślnie ustawiona na
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 nowszyJeśli są wyłączone, interfejs Attribution Reporting API i interfejs 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ści nafalse
. Jeśli spróbujesz ustawić te interfejsy API jakotrue
, pojawi się błąd. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 i nowszeJeśli jest włączona, Chrome wysyła nagłówek „Nie śledź” (
DNT: 1
) z Twoimi żądaniami. Wartość tego ustawienia jest typu logicznego, a wartość domyślna tofalse
. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 lub nowszyJeśli jest wyłączona, interfejs Pledge 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ści nafalse
. Jeśli spróbujesz ustawić ten interfejs API na wartośćtrue
, pojawi się błąd. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome wysyła pingi kontrolne na żądanie strony internetowej (
<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 unikalny identyfikator wtyczkom, aby umożliwić uruchamianie treści chronionych. 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
referer
w zapytaniach. Tak, nazwa tej opcji nie pasuje do nagłówka z błędem ortograficznym. Nie, nie zamierzamy tego zmieniać. Wartość tego ustawienia jest typu logicznego, a wartość domyślna totrue
. -
types.ChromeSetting<boolean>
Chrome 121 lub nowszyJeśli 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ści nafalse
. Jeśli spróbujesz ustawić ten interfejs API natrue
, pojawi się 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
.**Uwaga:**poszczególne witryny mogą nadal mieć dostęp do plików cookie innych firm, gdy ten interfejs API zwróci wartość
false
, jeśli mają ważną wyjątkę lub jeśli zamiast tego używają interfejsu Storage Access API. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 lub nowszyJeśli jest wyłączony, interfejs Topics 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ści nafalse
. Jeśli spróbujesz ustawić ten interfejs API natrue
, pojawi się błąd.