Opis
Używaj interfejsu chrome.privacy
API, aby kontrolować użycie funkcji Chrome, które mogą wpływać na prywatność użytkownika. Do pobierania i ustawiania konfiguracji Chrome używa prototypu ChromeSettingu API.
Uprawnienia
privacy
Plik manifestu
Aby używać interfejsu API, musisz zadeklarować uprawnienie „prywatność” w pliku manifestu rozszerzenia. Przykład:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Wykorzystanie
Odczytywanie bieżącej wartości ustawienia Chrome jest proste. Najpierw znajdź interesującą Cię usługę, a następnie wywołaj w tym obiekcie funkcję get()
, aby pobrać jej aktualną wartość oraz 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 złożona, bo najpierw trzeba sprawdzić, czy rozszerzenie może kontrolować to ustawienie. Użytkownik nie zauważy żadnych zmian w swoich ustawieniach, jeśli rozszerzenie przełączy ustawienie zablokowane przez zasady przedsiębiorstwa (levelOfControl
ma wartość „not_controllable”) lub jeśli inne rozszerzenie kontroluje wartość (levelOfControl
zostanie ustawiona na „controlled_by_other_extensions”). Wywołanie set()
zakończy się, ale ustawienie zostanie natychmiast zastąpione. Może to być mylące, dlatego warto ostrzegać użytkownika, gdy wybrane przez niego ustawienia nie są w rzeczywistości zastosowane.
Oznacza to, że musisz użyć metody get()
, aby określić swój poziom dostępu, i wywołać metodę set()
tylko wtedy, gdy rozszerzenie będzie mieć kontrolę nad tym ustawieniem (jeśli rozszerzenie nie może sterować tym ustawieniem, prawdopodobnie warto wyłączyć tę funkcję wizualnie, 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 chcesz zmienić wartość ustawienia, dodaj odbiornik do zdarzenia onChange
. Ta opcja pozwala też ostrzec użytkownika, jeśli ostatnio zainstalowane rozszerzenie przejmuje kontrolę nad ustawieniem lub gdy zasada przedsiębiorstwa zastępuje Twoją kontrolę. Aby np. wykrywać zmiany stanu autouzupełniania, wystarczy wpisać 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ładowy interfejs Privacy API z repozytorium chrome-extension-samples.
Typy
IPHandlingPolicy
Zasada obsługi adresów IP przez WebRTC.
Enum
"default_public_and_private_interfaces"
"default_public_interface_only"
Właściwości
network
Ustawienia, które ogólnie wpływają na 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 internetu, wstępnie rozpoznając wpisy DNS oraz zapobiegawczo otwierając połączenia TCP i SSL z serwerami. To ustawienie ma wpływ tylko na działania wykonywane przez wewnętrzną usługę przewidywania Chrome. Nie ma to wpływu na prefektury inicjowane przez stronę internetową ani połączenia wstępne. Wartość tego ustawienia jest wartością logiczną (domyślnie
true
). -
webRTCIPHandlingPolicyChrome 48 i nowsze wersje
Zezwalaj użytkownikom na określanie wpływu na wydajność multimediów i prywatność, które wpływają na sposób kierowania ruchu WebRTC oraz ilość informacji o adresach lokalnych. Wartość tego ustawienia jest typu IPhandlingPolicy, a wartość domyślna to
default
.
services
Ustawienia umożliwiające włączenie lub wyłączenie funkcji wymagających usług sieciowych innych firm świadczonych przez Google i domyślnego dostawcę wyszukiwania.
Typ
obiekt
Właściwości
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
Gdy ta opcja jest włączona, Chrome używa usługi internetowej do rozwiązywania błędów nawigacji. Wartość tego ustawienia jest wartością logiczną (domyślnie
true
). -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 i nowsze wersjeJeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie adresów i innych danych formularzy. Wartość tego ustawienia jest wartością logiczną (domyślnie
true
). -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70 i nowsze wersjeJeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie formularzy kart kredytowych. Wartość tego ustawienia jest wartością logiczną (domyślnie
true
). -
autofillEnabled
types.ChromeSetting<boolean>
Wycofane od Chrome 70Użyj privacy.services.autofillAddressEnabled i privacy.services.autofillCreditCardEnabled. Funkcja ta zachowa zgodność wsteczną w tej wersji i w przyszłości zostanie usunięta.
Jeśli ta opcja jest włączona, Chrome proponuje automatyczne wypełnianie formularzy. Wartość tego ustawienia jest wartością logiczną (domyślnie
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ą (domyślnie
true
). -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Gdy jest ona włączona, Chrome robi wszystko, co w naszej mocy, aby chronić Cię przed phishingiem i złośliwym oprogramowaniem. Wartość tego ustawienia jest wartością logiczną (domyślnie
true
). -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
Po włączeniu tej funkcji Chrome będzie wysyłać do Google dodatkowe informacje, gdy funkcja Bezpieczne przeglądanie zablokuje stronę, np. treść zablokowanej strony. Wartość tego ustawienia jest wartością logiczną (domyślnie
false
). -
searchSuggestEnabled
types.ChromeSetting<boolean>
Gdy ta opcja jest włączona, Chrome wysyła tekst wpisywany w omniboksie do domyślnej wyszukiwarki, która wyświetla podpowiedzi dotyczące stron i wyszukiwań, które prawdopodobnie pasują do wpisanego do tej pory tekstu. Wartość tego ustawienia jest wartością logiczną (domyślnie
true
). -
spellingServiceEnabled
types.ChromeSetting<boolean>
Gdy ta opcja jest włączona, Chrome używa usługi internetowej do poprawiania błędów ortograficznych. Wartość tego ustawienia jest wartością logiczną (domyślnie
false
). -
translationServiceEnabled
types.ChromeSetting<boolean>
Gdy ta opcja jest włączona, Chrome proponuje tłumaczenie stron w obcych językach. Wartość tego ustawienia jest wartością logiczną (domyślnie
true
).
websites
Ustawienia określające, jakie informacje Chrome udostępnia witrynom.
Typ
obiekt
Właściwości
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 i nowsze wersjeJeśli je wyłączysz, interfejsy Attribution Reporting API i Private Aggregation API zostaną wyłączone. Wartość tego ustawienia jest wartością logiczną, a wartością domyślną jest
true
. Rozszerzenia mogą wyłączyć te interfejsy API tylko przez ustawienie wartości nafalse
. Próba ustawienia tych interfejsów API natrue
spowoduje zgłoszenie błędu. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 i nowsze wersjeJeśli ta opcja jest włączona, Chrome wysyła razem z żądaniami nagłówek „Bez śledzenia” (
DNT: 1
). Wartość tego ustawienia jest wartością logiczną, a wartością domyślną jestfalse
. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 i nowsze wersjeJeśli go wyłączono, interfejs Fledge API jest wyłączony. Wartość tego ustawienia jest wartością logiczną, a wartością domyślną jest
true
. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartościfalse
. Próba ustawienia tego interfejsu API natrue
spowoduje zgłoszenie błędu. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome wysyła pingi kontrolne na żądanie witryny (
<a ping>
). Wartość tego ustawienia jest wartością logiczną, a wartością domyślną jesttrue
. -
protectedContentEnabled
types.ChromeSetting<boolean>
Dostępne tylko w systemach Windows i ChromeOS: gdy ta opcja jest włączona, Chrome nadaje wtyczkom unikalny identyfikator umożliwiający uruchamianie treści chronionych. Wartość tego ustawienia jest wartością logiczną, a wartością domyślną jest
true
. -
referrersEnabled
types.ChromeSetting<boolean>
Jeśli ta opcja jest włączona, Chrome wysyła w Twoich żądaniach
referer
nagłówki. Tak, nazwa tego ustawienia nie pasuje do błędnie wpisanego nagłówka. Nie, niczego nie zmienimy. Wartość tego ustawienia jest wartością logiczną, a wartością domyślną jesttrue
. -
types.ChromeSetting<boolean>
Chrome 121 i nowsze wersjeJeśli ta opcja jest wyłączona, Zestawy powiązanych witryn są wyłączone. Wartość tego ustawienia jest wartością logiczną, a wartością domyślną jest
true
. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartościfalse
. Próba ustawienia tego interfejsu API natrue
spowoduje zgłoszenie błędu. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Gdy ta opcja jest wyłączona, Chrome blokuje witrynom innych firm możliwość ustawiania plików cookie. Wartość tego ustawienia jest wartością logiczną, a wartością domyślną jest
true
. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 i nowsze wersjeJeśli go wyłączysz, interfejs Topics API zostanie zdezaktywowany. Wartość tego ustawienia jest wartością logiczną, a wartością domyślną jest
true
. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartościfalse
. Próba ustawienia tego interfejsu API natrue
spowoduje zgłoszenie błędu.