chrome.privacy

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

Chrome 48 lub nowsza

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

    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.

  • webRTCIPHandlingPolicy
    Chrome 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

    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
    Chrome w wersji 70 lub nowszej

    Jeś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
    Chrome w wersji 70 lub nowszej

    Jeś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
    Wycofane w Chrome 70

    Uż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

    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

    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

    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

    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

    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

    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
    Chrome 111 lub nowsza

    Jeśli ta opcja jest wyłączona, interfejsy Attribution Reporting APIPrivate 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 false. Jeśli spróbujesz ustawić te interfejsy API na true, pojawi się błąd.

  • doNotTrackEnabled
    Chrome 65 lub nowsza

    Jeś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 to false.

  • fledgeEnabled
    Chrome 111 lub nowsza

    Jeś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 na false. Jeśli spróbujesz ustawić ten interfejs API na true, pojawi się błąd.

  • hyperlinkAuditingEnabled

    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 to true.

  • protectedContentEnabled

    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

    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 to true.

  • relatedWebsiteSetsEnabled
    Chrome 121 lub nowsza

    Jeś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 na false. Jeśli spróbujesz ustawić ten interfejs API na true, pojawi się błąd.

  • thirdPartyCookiesAllowed

    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
    Chrome 111 lub nowsza

    Jeś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 na false. Jeśli spróbujesz ustawić ten interfejs API na true, pojawi się błąd.