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
privacyAnda harus mendeklarasikan izin "privacy" di manifes ekstensi untuk menggunakan API. Contoh:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
Konsep dan penggunaan
Membaca nilai saat ini dari setelan Chrome sangatlah mudah. Anda harus menemukan properti yang diinginkan terlebih dahulu, lalu 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 harus menulis:
browser.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 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, lalu hanya
memanggil set() jika ekstensi Anda dapat mengambil kontrol atas setelan (bahkan jika ekstensi Anda tidak dapat
mengontrol setelan, sebaiknya nonaktifkan fitur secara visual untuk mengurangi kebingungan
pengguna):
browser.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
browser.privacy.services.autofillCreditCardEnabled.set({ value: true }, function() {
if (browser.runtime.lastError === undefined) {
console.log("Hooray, it worked!");
} else {
console.log("Sadness!", browser.runtime.lastError);
}
});
}
});
Jika Anda tertarik dengan perubahan pada nilai setelan, tambahkan pemroses ke peristiwa onChange-nya. Di antara
kegunaan lainnya, hal ini akan memungkinkan Anda memperingatkan pengguna jika ekstensi yang diinstal lebih baru mengambil
kontrol setelan, atau jika kebijakan perusahaan mengganti kontrol Anda. Misalnya, untuk memproses perubahan pada
status isi otomatis kartu kredit, kode berikut sudah cukup:
browser.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 API privasi dari repositori chrome-extension-samples.
Jenis
AutofillBlockedType
Kategori data Isi Otomatis.
Enum
"contact_info"
"payments"
"identity_docs"
"travel"
"all"
IPHandlingPolicy
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 melakukan pra-penyelesaian entri DNS, membuka koneksi TCP dan SSL ke server secara preemptive, dan melakukan pramuat halaman. Menonaktifkan preferensi ini akan mengganti kemampuan pemilik situs untuk memuat konten secara spekulatif (seperti pengambilan data atau pra-rendering melalui Speculation Rules API). Hal ini tidak memengaruhi pra-koneksi atau pengambilan data DNS yang dimulai oleh halaman web. Nilai preferensi ini adalah boolean, dengan default
true. -
webRTCIPHandlingPolicyChrome 48+ browser.* sejak Chrome 148
Mengizinkan pengguna menentukan kompromi performa/privasi media yang memengaruhi cara traffic WebRTC akan dirutekan dan jumlah informasi alamat lokal yang ditampilkan. Nilai preferensi ini berjenis IPHandlingPolicy, dengan default
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, dengan default
true. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70+ browser.* sejak Chrome 148Jika diaktifkan, Chrome akan menawarkan untuk otomatis mengisi alamat dan data formulir lainnya. Nilai preferensi ini adalah boolean, dengan default
true. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70+ browser.* sejak Chrome 148Jika diaktifkan, Chrome akan menawarkan untuk mengisi formulir kartu kredit secara otomatis. Nilai preferensi ini adalah boolean, dengan default
true. -
autofillEnabled
types.ChromeSetting<boolean>
Tidak digunakan lagi sejak Chrome 70Gunakan privacy.services.autofillAddressEnabled dan privacy.services.autofillCreditCardEnabled. Hal ini tetap dipertahankan 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, dengan default
true. -
passwordSavingEnabled
types.ChromeSetting<boolean>
Jika diaktifkan, pengelola sandi akan menanyakan apakah Anda ingin menyimpan sandi. Nilai preferensi ini adalah boolean, dengan default
true. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
Jika diaktifkan, Chrome akan melakukan yang terbaik untuk melindungi Anda dari phishing dan malware. Nilai preferensi ini adalah boolean, dengan default
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, dengan default
false. -
searchSuggestEnabled
types.ChromeSetting<boolean>
Jika diaktifkan, Chrome akan mengirimkan teks yang Anda ketik ke Omnibox ke mesin telusur default Anda, yang memberikan prediksi situs dan penelusuran yang kemungkinan merupakan pelengkap dari apa yang telah Anda ketik sejauh ini. Nilai preferensi ini adalah boolean, dengan default
true. -
spellingServiceEnabled
types.ChromeSetting<boolean>
Jika diaktifkan, Chrome akan menggunakan layanan web untuk membantu memperbaiki kesalahan ejaan. Nilai preferensi ini adalah boolean, dengan default
false. -
translationServiceEnabled
types.ChromeSetting<boolean>
Jika diaktifkan, Chrome akan menawarkan untuk menerjemahkan halaman yang tidak menggunakan bahasa yang Anda baca. Nilai preferensi ini adalah boolean, dengan default
true.
websites
Setelan yang menentukan informasi yang disediakan Chrome untuk situs.
Jenis
objek
Properti
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111+ browser.* sejak Chrome 148Jika 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 nilainya kefalse. Jika Anda mencoba menyetel API ini ketrue, error akan muncul. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65+ browser.* sejak Chrome 148Jika diaktifkan, Chrome akan mengirim header 'Do Not Track' (
DNT: 1) bersama permintaan Anda. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalahfalse. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111+ browser.* sejak Chrome 148Jika dinonaktifkan, Fledge API akan dinonaktifkan. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah
true. Ekstensi hanya dapat menonaktifkan API ini dengan menetapkan nilainya kefalse. Jika Anda mencoba menyetel API ini ketrue, error akan ditampilkan. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
Jika diaktifkan, Chrome akan mengirimkan ping audit saat diminta oleh situs (
<a ping>). Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalahtrue. -
protectedContentEnabled
types.ChromeSetting<boolean>
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
types.ChromeSetting<boolean>
Jika diaktifkan, Chrome akan mengirim header
refererbersama 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 adalahtrue. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
Jika dinonaktifkan, Chrome akan memblokir situs pihak ketiga agar tidak menyetel cookie. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah
true. Ekstensi tidak boleh mengaktifkan API ini dalam mode Samaran, tempat cookie pihak ketiga diblokir dan hanya dapat diizinkan di tingkat situs. Jika Anda mencoba menyetel API ini ke benar (true) dalam mode Samaran, error akan ditampilkan.Catatan: Setiap situs mungkin masih dapat mengakses cookie pihak ketiga saat API ini menampilkan
false, jika situs tersebut memiliki pengecualian yang valid atau menggunakan Storage Access API. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111+ browser.* sejak Chrome 148Jika dinonaktifkan, Topics API akan dinonaktifkan. Nilai preferensi ini berjenis boolean, dan nilai defaultnya adalah
true. Ekstensi hanya dapat menonaktifkan API ini dengan menetapkan nilainya kefalse. Jika Anda mencoba menyetel API ini ketrue, error akan ditampilkan.