chrome.privacy

Deskripsi

Gunakan chrome.privacy API untuk mengontrol penggunaan fitur di Chrome yang dapat memengaruhi privasi pengguna. API ini mengandalkan prototipe ChromeSetting dari API jenis untuk mendapatkan dan menetapkan konfigurasi Chrome.

Izin

privacy

Manifes

Anda harus mendeklarasikan izin "privacy" dalam manifes ekstensi untuk menggunakan API. Contoh:

{
  "name": "My extension",
  ...
  "permissions": [
    "privacy"
  ],
  ...
}

Penggunaan

Membaca nilai setelan Chrome saat ini sangat mudah. Pertama, Anda harus menemukan properti yang Anda minati, lalu Anda akan memanggil get() pada objek tersebut untuk mengambil nilai saat ini dan tingkat kontrol ekstensi Anda. Misalnya, untuk menentukan apakah fitur Isi Otomatis Chrome diaktifkan, Anda akan menulis:

chrome.privacy.services.autofillEnabled.get({}, function(details) {
  if (details.value) {
    console.log('Autofill is on!');
  } else {
    console.log('Autofill is off!');
  }
});

Mengubah nilai setelan sedikit lebih kompleks, karena Anda harus memverifikasi terlebih dahulu bahwa ekstensi Anda dapat mengontrol setelan tersebut. Pengguna tidak akan melihat perubahan apa pun pada setelannya jika ekstensi Anda mengalihkan setelan yang dikunci ke nilai tertentu oleh kebijakan perusahaan (levelOfControl akan ditetapkan ke "not_controllable"), atau jika ekstensi lain mengontrol nilai (levelOfControl akan ditetapkan ke "controlled_by_other_extensions"). Panggilan set() akan berhasil, tetapi setelan akan segera diganti. Karena hal ini mungkin membingungkan, sebaiknya peringatkan pengguna saat setelan yang mereka pilih tidak diterapkan secara praktis.

Artinya, Anda harus menggunakan metode get() untuk menentukan tingkat akses Anda, lalu hanya memanggil set() jika ekstensi Anda dapat mengambil kontrol atas setelan tersebut (sebenarnya, jika ekstensi Anda tidak dapat mengontrol setelan, sebaiknya nonaktifkan fungsi secara visual untuk mengurangi kebingungan pengguna):

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);
      }
    });
  }
});

Jika Anda tertarik dengan perubahan pada nilai setelan, tambahkan pemroses ke peristiwa onChange-nya. Selain penggunaan lainnya, hal ini akan memungkinkan Anda memperingatkan pengguna jika ekstensi yang baru diinstal mengambil kontrol setelan, atau jika kebijakan perusahaan mengganti kontrol Anda. Untuk memproses perubahan pada status Isi Otomatis, misalnya, kode berikut akan cukup:

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.
  }
);

Contoh

Untuk mencoba API ini, instal contoh privacy API dari repositori chrome-extension-samples.

Jenis

IPHandlingPolicy

Chrome 48+

Kebijakan penanganan IP WebRTC.

Enum

"default"

"default_public_and_private_interfaces"

"default_public_interface_only"

"disable_non_proxied_udp"

Properti

network

Setelan yang memengaruhi penanganan koneksi jaringan Chrome secara umum.

Jenis

objek

Properti

  • networkPredictionEnabled

    Jika diaktifkan, Chrome akan mencoba mempercepat pengalaman penjelajahan web Anda dengan menyelesaikan entri DNS terlebih dahulu dan membuka koneksi TCP dan SSL ke server secara proaktif. Preferensi ini hanya memengaruhi tindakan yang dilakukan oleh layanan prediksi internal Chrome. Preferensi ini tidak memengaruhi pengambilan data atau prakoneksi yang dimulai oleh halaman web. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke true.

  • webRTCIPHandlingPolicy
    Chrome 48+

    Memungkinkan pengguna menentukan kompromi privasi/performa media yang memengaruhi cara traffic WebRTC akan dirutekan dan seberapa banyak informasi alamat lokal yang diekspos. Nilai preferensi ini berjenis IPHandlingPolicy, yang secara default ditetapkan ke default.

services

Setelan yang mengaktifkan atau menonaktifkan fitur yang memerlukan layanan jaringan pihak ketiga yang disediakan oleh Google dan penyedia penelusuran default Anda.

Jenis

objek

Properti

  • alternateErrorPagesEnabled

    Jika diaktifkan, Chrome akan menggunakan layanan web untuk membantu mengatasi error navigasi. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke true.

  • autofillAddressEnabled
    Chrome 70+

    Jika diaktifkan, Chrome akan menawarkan untuk mengisi alamat dan data formulir lainnya secara otomatis. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke true.

  • autofillCreditCardEnabled
    Chrome 70+

    Jika diaktifkan, Chrome akan menawarkan untuk mengisi formulir kartu kredit secara otomatis. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke true.

  • autofillEnabled
    Tidak digunakan lagi sejak Chrome 70

    Gunakan privacy.services.autofillAddressEnabled dan privacy.services.autofillCreditCardEnabled. Hal ini tetap ada untuk kompatibilitas mundur dalam rilis ini dan akan dihapus pada masa mendatang.

    Jika diaktifkan, Chrome akan menawarkan untuk mengisi formulir secara otomatis. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke true.

  • passwordSavingEnabled

    Jika diaktifkan, pengelola sandi akan menanyakan apakah Anda ingin menyimpan sandi. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke true.

  • safeBrowsingEnabled

    Jika diaktifkan, Chrome akan berupaya sebaik mungkin untuk melindungi Anda dari phishing dan malware. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke true.

  • safeBrowsingExtendedReportingEnabled

    Jika diaktifkan, Chrome akan mengirimkan informasi tambahan ke Google saat SafeBrowsing memblokir halaman, seperti konten halaman yang diblokir. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke false.

  • searchSuggestEnabled

    Jika diaktifkan, Chrome akan mengirimkan teks yang Anda ketik ke Omnibox ke mesin telusur default Anda, yang memberikan prediksi situs dan penelusuran yang kemungkinan akan melengkapi apa yang telah Anda ketik sejauh ini. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke true.

  • spellingServiceEnabled

    Jika diaktifkan, Chrome akan menggunakan layanan web untuk membantu mengoreksi kesalahan ejaan. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke false.

  • translationServiceEnabled

    Jika diaktifkan, Chrome akan menawarkan untuk menerjemahkan halaman yang tidak menggunakan bahasa yang Anda baca. Nilai preferensi ini adalah boolean, yang secara default ditetapkan ke true.

websites

Setelan yang menentukan informasi yang disediakan Chrome untuk situs.

Jenis

objek

Properti

  • adMeasurementEnabled
    Chrome 111+

    Jika dinonaktifkan, Attribution Reporting API dan Private Aggregation API akan dinonaktifkan. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah true. Ekstensi hanya dapat menonaktifkan API ini dengan menetapkan nilai ke false. Jika Anda mencoba menetapkan API ini ke true, error akan muncul.

  • doNotTrackEnabled
    Chrome 65+

    Jika diaktifkan, Chrome akan mengirimkan header 'Do Not Track' (DNT: 1) dengan permintaan Anda. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah false.

  • fledgeEnabled
    Chrome 111+

    Jika dinonaktifkan, Fledge API akan dinonaktifkan. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah true. Ekstensi hanya dapat menonaktifkan API ini dengan menetapkan nilai ke false. Jika Anda mencoba menetapkan API ini ke true, error akan muncul.

  • hyperlinkAuditingEnabled

    Jika diaktifkan, Chrome akan mengirimkan ping audit saat diminta oleh situs (<a ping>). Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah true.

  • protectedContentEnabled

    Hanya tersedia di Windows dan ChromeOS: Jika diaktifkan, Chrome akan memberikan ID unik ke plugin untuk menjalankan konten yang dilindungi. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah true.

  • referrersEnabled

    Jika diaktifkan, Chrome akan mengirimkan header referer dengan permintaan Anda. Ya, nama preferensi ini tidak cocok dengan header yang salah eja. Tidak, kami tidak akan mengubahnya. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah true.

  • relatedWebsiteSetsEnabled
    Chrome 121+

    Jika dinonaktifkan, Set Situs Terkait akan dinonaktifkan. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah true. Ekstensi hanya dapat menonaktifkan API ini dengan menetapkan nilai ke false. Jika Anda mencoba menetapkan API ini ke true, error akan muncul.

  • thirdPartyCookiesAllowed

    Jika dinonaktifkan, Chrome akan memblokir situs pihak ketiga untuk menetapkan cookie. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah true. Ekstensi tidak dapat mengaktifkan API ini dalam mode Samaran, tempat cookie pihak ketiga diblokir dan hanya dapat diizinkan di tingkat situs. Jika Anda mencoba menetapkan API ini ke true dalam mode Samaran, error akan muncul.

    Catatan: Situs individual mungkin masih dapat mengakses cookie pihak ketiga saat API ini menampilkan false, jika mereka memiliki pengecualian yang valid atau menggunakan Storage Access API sebagai gantinya.

  • topicsEnabled
    Chrome 111+

    Jika dinonaktifkan, Topics API akan dinonaktifkan. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah true. Ekstensi hanya dapat menonaktifkan API ini dengan menetapkan nilai ke false. Jika Anda mencoba menetapkan API ini ke true, error akan muncul.