chrome.privacy

Opis

Za pomocą interfejsu chrome.privacy możesz 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 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źć interesującą Cię właściwość, a potem wywołać metodę get() na tym obiekcie, aby pobrać jego bieżącą wartość i poziom kontroli rozszerzenia. Aby na przykład sprawdzić, czy funkcja Autouzupełnianie w Chrome jest włączona, napisz:

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, ponieważ najpierw musisz sprawdzić, czy rozszerzenie może kontrolować to ustawienie. Użytkownik nie zobaczy żadnych zmian w ustawieniach, jeśli rozszerzenie przełączy ustawienie, które jest zablokowane na określoną wartość przez zasady firmowe (levelOfControl będzie ustawione na „not_controllable”), lub jeśli wartość jest kontrolowana przez inne rozszerzenie (levelOfControl będzie ustawione na „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.

Oznacza to, że musisz 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 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 interesują Cię zmiany wartości ustawienia, dodaj detektor do zdarzenia onChange. Umożliwi to między innymi ostrzeganie użytkownika, jeśli nowo zainstalowane rozszerzenie przejmie kontrolę nad ustawieniem lub jeśli zasady firmowe zastąpią Twoją kontrolę. Aby na przykład monitorować zmiany stanu Autouzupełniania, wystarczy 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ład interfejsu Privacy API z repozytorium chrome-extension-samples.

Typy

AutofillBlockedType

Chrome 151+

Kategorie danych Autouzupełniania.

Typ wyliczeniowy

„contact_info”

„payments”

„identity_docs”

„travel”

„all”

IPHandlingPolicy

Chrome 48+

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ólną obsługę połączeń sieciowych przez Chrome.

Typ

obiekt

Właściwości

  • networkPredictionEnabled

    Jeśli ta opcja jest włączona, Chrome próbuje przyspieszyć przeglądanie stron internetowych, wstępnie rozwiązując wpisy DNS, otwierając połączenia TCP i SSL z serwerami oraz wstępnie wczytując strony. Wyłączenie tej preferencji uniemożliwia właścicielom witryn ładowanie spekulacyjne treści (np. wstępne pobieranie lub renderowanie wstępne za pomocą interfejsu Speculation Rules API). Nie wpływa to na wstępne połączenia ani wstępne pobieranie DNS inicjowane przez stronę internetową. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

  • webRTCIPHandlingPolicy
    Chrome 48+

    Umożliwia użytkownikom określenie kompromisów między wydajnością multimediów a prywatnością, co wpływa na sposób kierowania ruchu WebRTC i ilość informacji o adresie lokalnym, które są udostępniane. Wartość tej preferencji jest typu IPHandlingPolicy i domyślnie ma wartość default.

services

Ustawienia, które włączają lub wyłączają funkcje wymagające usług sieciowych innych firm świadczonych przez Google i domyślnego dostawcę wyszukiwarki.

Typ

obiekt

Właściwości

  • alternateErrorPagesEnabled

    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 preferencji jest typu boolean i domyślnie ma wartość true.

  • autofillAddressEnabled
    Chrome 70+

    Jeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie adresów i innych danych formularza. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

  • autofillCreditCardEnabled
    Chrome 70+

    Jeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie formularzy z danymi karty kredytowej. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

  • autofillEnabled
    Wycofane od Chrome 70

    Używaj privacy.services.autofillAddressEnabled i privacy.services.autofillCreditCardEnabled. W tej wersji pozostaje to dla zachowania zgodności wstecznej i zostanie usunięte w przyszłości.

    Jeśli ta opcja jest włączona, Chrome oferuje automatyczne wypełnianie formularzy. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

  • passwordSavingEnabled

    Jeśli ta opcja jest włączona, menedżer haseł zapyta, czy chcesz zapisywać hasła. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

  • safeBrowsingEnabled

    Jeśli ta opcja jest włączona, Chrome będzie chronić Cię przed wyłudzaniem danych i złośliwym oprogramowaniem. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

  • safeBrowsingExtendedReportingEnabled

    Jeśli ta opcja jest włączona, gdy Bezpieczne przeglądanie zablokuje stronę, Chrome będzie wysyłać do Google dodatkowe informacje, np. zawartość zablokowanej strony. Wartość tej preferencji jest typu boolean i domyślnie ma wartość false.

  • searchSuggestEnabled

    Jeśli ta opcja jest włączona, Chrome wysyła tekst wpisywany w omniboksie do domyślnej wyszukiwarki, która podaje przewidywania witryn i wyszukiwań, które prawdopodobnie uzupełnią wpisany tekst. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

  • spellingServiceEnabled

    Jeśli ta opcja jest włączona, Chrome używa usługi internetowej, aby pomóc w poprawianiu błędów ortograficznych. Wartość tej preferencji jest typu boolean i domyślnie ma wartość false.

  • translationServiceEnabled

    Jeśli ta opcja jest włączona, Chrome oferuje tłumaczenie stron, które nie są w języku, w którym czytasz. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

websites

Ustawienia, które określają, jakie informacje Chrome udostępnia witrynom.

Typ

obiekt

Właściwości

  • adMeasurementEnabled
    Chrome 111+

    Jeśli ta opcja jest wyłączona, interfejsy Attribution Reporting API i Private Aggregation API są dezaktywowane. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true. Rozszerzenia mogą wyłączyć te interfejsy API tylko przez ustawienie wartości false. Jeśli spróbujesz ustawić te interfejsy API na true, zgłosi błąd.

  • doNotTrackEnabled
    Chrome 65+

    Jeśli ta opcja jest włączona, Chrome wysyła nagłówek „Do Not Track” (DNT: 1) z Twoimi żądaniami. Wartość tej preferencji jest typu boolean i domyślnie ma wartość false.

  • fledgeEnabled
    Chrome 111+

    Jeśli ta opcja jest wyłączona, interfejs Fledge API jest dezaktywowany. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartości false. Jeśli spróbujesz ustawić ten interfejs API na true, zgłosi błąd.

  • hyperlinkAuditingEnabled

    Jeśli ta opcja jest włączona, Chrome wysyła pingi audytu, gdy witryna o to poprosi (<a ping>). Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

  • protectedContentEnabled

    Dostępne tylko w systemach Windows i ChromeOS: jeśli ta opcja jest włączona, Chrome udostępnia wtyczkom unikalny identyfikator, aby umożliwić im odtwarzanie treści chronionych. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

  • referrersEnabled

    Jeśli ta opcja jest włączona, Chrome wysyła nagłówki referer z Twoimi żądaniami. Tak, nazwa tej preferencji nie pasuje do błędnie napisanego nagłówka. Nie, nie zmienimy tego. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true.

  • relatedWebsiteSetsEnabled
    Chrome 121+

    Jeśli ta opcja jest wyłączona, funkcja „Zestawy powiązanych witryn” jest dezaktywowana. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartości false. Jeśli spróbujesz ustawić ten interfejs API na true, zgłosi błąd.

  • thirdPartyCookiesAllowed

    Jeśli ta opcja jest wyłączona, Chrome blokuje witryny innych firm przed ustawianiem plików cookie. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true. Rozszerzenia nie mogą włączyć 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 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 używają interfejsu Storage Access API.

  • topicsEnabled
    Chrome 111+

    Jeśli ta opcja jest wyłączona, interfejs Topics API jest dezaktywowany. Wartość tej preferencji jest typu boolean i domyślnie ma wartość true. Rozszerzenia mogą wyłączyć ten interfejs API tylko przez ustawienie wartości false. Jeśli spróbujesz ustawić ten interfejs API na true, zgłosi błąd.