chrome.privacy

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

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 sposób obsługi połączeń sieciowych przez Chrome.

Typ

obiekt

Właściwości

  • networkPredictionEnabled

    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.

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

    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
    Chrome 70 lub nowszy

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

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

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

    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

    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

    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

    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

    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

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

    Jeśli są wyłączone, interfejs Attribution Reporting APIinterfejs 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 na false. Jeśli spróbujesz ustawić te interfejsy API jako true, pojawi się błąd.

  • doNotTrackEnabled
    Chrome 65 i nowsze

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

  • fledgeEnabled
    Chrome 111 lub nowszy

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

  • hyperlinkAuditingEnabled

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

  • protectedContentEnabled

    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

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

  • relatedWebsiteSetsEnabled
    Chrome 121 lub nowszy

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

    **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
    Chrome 111 lub nowszy

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