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 typu do pobierania i ustawiania konfiguracji Chrome.
Uprawnienia
privacy
Plik manifestu
Aby korzystać z tego 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źć 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 w Chrome jest włączona, wpisz:
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 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 swoich ustawieniach. Połączenie set()
zostanie zrealizowane, 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żytkowników):
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 odbiornik do zdarzenia onChange
. Dzięki temu możesz m.in. ostrzegać użytkownika, jeśli nowsze rozszerzenie przejmie kontrolę nad ustawieniem lub jeśli zasady przedsiębiorstwa zastąpią Twoją kontrolę. Aby nasłuchiwać zmian stanu Autouzupełniania, wystarczy użyć tego kodu:
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 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 funkcja jest włączona, Chrome automatycznie wypełnia adresy i inne dane w formularzach. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
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 jest wartością logiczną, której domyślna wartość to
true
. -
autofillEnabled
types.ChromeSetting<boolean>
Wycofane w Chrome 70Używaj ustawień privacy.services.autofillAddressEnabled i privacy.services.autofillCreditCardEnabled. W tej wersji pozostaje to ze względu na zgodność wsteczną, ale w przyszłości zostanie usunięte.
Jeśli ta opcja jest włączona, Chrome automatycznie wypełnia formularze. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
true
. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, menedżer haseł zapyta, czy chcesz zapisać hasła. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
true
. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Jeśli ta funkcja 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. jej zawartość. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
false
. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Jeśli ta funkcja jest włączona, Chrome wysyła tekst wpisywany w omniboksie do domyślnej wyszukiwarki, która podaje podpowiedzi dotyczące witryn i wyszukiwań, które prawdopodobnie będą zakończeniem wpisanego przez Ciebie tekstu. Wartość tego ustawienia jest wartością logiczną, której domyślna wartość to
true
. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome używa usługi internetowej do poprawiania błędów pisowni. 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 oferuje 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
, pojawi się błąd. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 lub nowszaJeśli ta opcja jest włączona, Chrome wysyła nagłówek „Nie śledź” (
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 nieaktywny. 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. -
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 odtwarzać 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 z Twoimi żądaniami nagłówki
referer
. Tak, nazwa tego ustawienia nie pasuje do nagłówka z błędem ortograficznym. 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, funkcja Zestawy powiązanych witryn jest dezaktywowana. 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
. 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ści nafalse
. Jeśli spróbujesz ustawić ten interfejs API natrue
, pojawi się błąd.