chrome.privacy

Deskripsi

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

Izin

privacy

Anda harus menyatakan izin "privasi" izin di manifes ekstensi Anda untuk menggunakan API. Contoh:

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

Konsep dan penggunaan

Membaca nilai setelan Chrome saat ini sangat mudah. Pertama-tama, Anda harus menemukan yang Anda minati, maka Anda akan memanggil get() pada objek tersebut untuk mengambil nilai saat ini dan tingkat kontrol ekstensi Anda. Misalnya, untuk menentukan apakah fitur isi otomatis kartu kredit Chrome diaktifkan, Anda akan menulis:

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

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

Artinya, Anda harus menggunakan metode get() untuk menentukan tingkat akses, dan kemudian hanya panggil set() jika ekstensi Anda bisa mendapatkan kontrol atas setelan (fakta jika ekstensi Anda tidak dapat mengontrol setelan, sebaiknya nonaktifkan fitur tersebut secara visual untuk mengurangi kebingungan):

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

Jika ingin mengetahui perubahan pada nilai setelan, tambahkan pemroses ke peristiwa onChange-nya. Di antara penggunaan lain, hal ini memungkinkan Anda memperingatkan pengguna jika ekstensi yang baru diinstal kontrol setelan, atau jika kebijakan perusahaan menggantikan kontrol Anda. Untuk memproses perubahan pada status isi otomatis kartu kredit, misalnya, kode berikut sudah cukup:

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

Contoh

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

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 oleh Chrome secara umum.

Jenis

objek

Properti

  • networkPredictionEnabled

    types.ChromeSetting<boolean>

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

  • webRTCIPHandlingPolicy
    Chrome 48+

    Izinkan pengguna menentukan kompromi performa/privasi media yang memengaruhi cara traffic WebRTC dirutekan dan berapa banyak informasi alamat lokal yang diekspos. Nilai preferensi ini adalah jenis IPHandlingPolicy, yang ditetapkan secara default 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

    types.ChromeSetting<boolean>

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

  • autofillAddressEnabled

    types.ChromeSetting<boolean>

    Chrome 70 dan yang lebih baru

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

  • autofillCreditCardEnabled

    types.ChromeSetting<boolean>

    Chrome 70 dan yang lebih baru

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

  • autofillEnabled

    types.ChromeSetting<boolean>

    Tidak digunakan lagi sejak Chrome 70

    Gunakan privacy.services.autofillAddressEnabled dan privacy.services.autofillCreditCardEnabled. Tindakan ini tetap berlaku 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 ditetapkan secara default ke true.

  • passwordSavingEnabled

    types.ChromeSetting<boolean>

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

  • safeBrowsingEnabled

    types.ChromeSetting<boolean>

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

  • safeBrowsingExtendedReportingEnabled

    types.ChromeSetting<boolean>

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

  • searchSuggestEnabled

    types.ChromeSetting<boolean>

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

  • spellingServiceEnabled

    types.ChromeSetting<boolean>

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

  • translationServiceEnabled

    types.ChromeSetting<boolean>

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

websites

Setelan yang menentukan informasi yang disediakan Chrome untuk situs.

Jenis

objek

Properti

  • adMeasurementEnabled

    types.ChromeSetting<boolean>

    Chrome 111 dan yang lebih baru

    Jika dinonaktifkan, Attribution Reporting API dan Private Aggregation API akan dinonaktifkan. Nilai preferensi ini adalah jenis 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

    types.ChromeSetting<boolean>

    Chrome 65 dan yang lebih baru

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

  • fledgeEnabled

    types.ChromeSetting<boolean>

    Chrome 111 dan yang lebih baru

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

  • hyperlinkAuditingEnabled

    types.ChromeSetting<boolean>

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

  • protectedContentEnabled

    types.ChromeSetting&lt;boolean&gt;

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

  • referrersEnabled

    types.ChromeSetting&lt;boolean&gt;

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

  • relatedWebsiteSetsEnabled

    types.ChromeSetting&lt;boolean&gt;

    Chrome 121 dan yang lebih baru

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

  • thirdPartyCookiesAllowed

    types.ChromeSetting&lt;boolean&gt;

    Jika dinonaktifkan, Chrome akan memblokir situs pihak ketiga agar tidak menyetel cookie. Nilai preferensi ini adalah jenis boolean, dan nilai defaultnya adalah true.

  • topicsEnabled

    types.ChromeSetting&lt;boolean&gt;

    Chrome 111 dan yang lebih baru

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