browser.browsingData

Deskripsi

Gunakan chrome.browsingData API untuk menghapus data penjelajahan dari profil lokal pengguna.

Izin

browsingData

Anda harus mendeklarasikan izin "browsingData" di manifes ekstensi untuk menggunakan API ini.

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

Konsep dan penggunaan

Kasus penggunaan paling sederhana untuk API ini adalah mekanisme berbasis waktu untuk menghapus data penjelajahan pengguna. Kode Anda harus memberikan stempel waktu yang menunjukkan tanggal historis setelah data penjelajahan pengguna harus dihapus. Stempel waktu ini diformat sebagai jumlah milidetik sejak epoch Unix (yang dapat diambil dari objek Date JavaScript menggunakan metode getTime()).

Misalnya, untuk menghapus semua data penjelajahan pengguna dari minggu lalu, Anda dapat menulis kode seperti berikut:

var callback = function () {
  // Do something clever here once data has been removed.
};

var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek;
browser.browsingData.remove({
  "since": oneWeekAgo
}, {
  "appcache": true,
  "cache": true,
  "cacheStorage": true,
  "cookies": true,
  "downloads": true,
  "fileSystems": true,
  "formData": true,
  "history": true,
  "indexedDB": true,
  "localStorage": true,
  "passwords": true,
  "serviceWorkers": true,
  "webSQL": true
}, callback);

Metode browser.browsingData.remove() memungkinkan Anda menghapus berbagai jenis data penjelajahan dengan satu panggilan, dan akan jauh lebih cepat daripada memanggil beberapa metode yang lebih spesifik. Namun, jika Anda hanya ingin menghapus satu jenis data penjelajahan tertentu (misalnya, cookie), metode yang lebih terperinci menawarkan alternatif yang dapat dibaca untuk panggilan yang diisi dengan JSON.

var callback = function () {
  // Do something clever here once data has been removed.
};

var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek;
browser.browsingData.removeCookies({
  "since": oneWeekAgo
}, callback);

Jika pengguna menyinkronkan datanya, browser.browsingData.remove() dapat otomatis membuat ulang cookie untuk akun Sinkronisasi setelah menghapusnya. Hal ini untuk memastikan bahwa Sinkronisasi dapat terus berfungsi, sehingga data pada akhirnya dapat dihapus di server. Namun, browser.browsingData.removeCookies() yang lebih spesifik dapat digunakan untuk menghapus cookie untuk akun Sinkronisasi, dan Sinkronisasi akan dijeda dalam kasus ini.

Origin tertentu

Untuk menghapus data untuk origin tertentu atau mengecualikan sekumpulan origin dari penghapusan, Anda dapat menggunakan parameter RemovalOptions.origins dan RemovalOptions.excludeOrigins. Kebijakan ini hanya dapat diterapkan ke cookie, cache, dan penyimpanan (CacheStorage, FileSystems, IndexedDB, LocalStorage, ServiceWorkers, dan WebSQL).

browser.browsingData.remove({
  "origins": ["https://www.example.com"]
}, {
  "cacheStorage": true,
  "cookies": true,
  "fileSystems": true,
  "indexedDB": true,
  "localStorage": true,
  "serviceWorkers": true,
  "webSQL": true
}, callback);

Jenis origin

Menambahkan properti originTypes ke objek opsi API memungkinkan Anda menentukan jenis origin yang akan terpengaruh. Asal dibagi menjadi tiga kategori:

  • unprotectedWeb mencakup kasus umum situs yang dikunjungi pengguna tanpa melakukan tindakan khusus. Jika Anda tidak menentukan originTypes, API akan secara default menghapus data dari origin web yang tidak dilindungi.
  • protectedWeb mencakup origin web yang telah diinstal sebagai aplikasi yang dihosting. Misalnya, menginstal Angry Birds akan melindungi origin https://chrome.angrybirds.com, dan menghapusnya dari kategori unprotectedWeb. Berhati-hatilah saat memicu penghapusan data untuk origin ini: pastikan pengguna Anda mengetahui konsekuensinya, karena tindakan ini akan menghapus data game mereka secara permanen. Tidak ada yang ingin merobohkan rumah babi kecil lebih sering daripada yang diperlukan.
  • extension mencakup origin dalam skema chrome-extensions:. Sekali lagi, Anda harus sangat berhati-hati saat menghapus data ekstensi.

Kita dapat menyesuaikan contoh sebelumnya untuk hanya menghapus data dari situs yang dilindungi sebagai berikut:

var callback = function () {
  // Do something clever here once data has been removed.
};

var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7;
var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek;
browser.browsingData.remove({
  "since": oneWeekAgo,
  "originTypes": {
    "protectedWeb": true
  }
}, {
  "appcache": true,
  "cache": true,
  "cacheStorage": true,
  "cookies": true,
  "downloads": true,
  "fileSystems": true,
  "formData": true,
  "history": true,
  "indexedDB": true,
  "localStorage": true,
  "passwords": true,
  "serviceWorkers": true,
  "webSQL": true
}, callback);

Contoh

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

Jenis

DataTypeSet

Satu set jenis data. Jenis data yang tidak ada akan ditafsirkan sebagai false.

Properti

  • appcache

    boolean opsional

    Tidak digunakan lagi sejak Chrome 152

    Dukungan untuk appcache telah dihapus. Jenis data ini akan diabaikan.

    Appcache situs.

  • cache

    boolean opsional

    Cache browser.

  • cacheStorage

    boolean opsional

    Chrome 72+ browser.* sejak Chrome 148

    Penyimpanan cache

  • cookie

    boolean opsional

    Cookie browser.

  • download

    boolean opsional

    Daftar download browser.

  • fileSystems

    boolean opsional

    Sistem file situs.

  • formData

    boolean opsional

    Data formulir yang disimpan browser.

  • sejarah

    boolean opsional

    Histori browser.

  • indexedDB

    boolean opsional

    Data IndexedDB situs.

  • localStorage

    boolean opsional

    Data penyimpanan lokal situs.

  • sandi

    boolean opsional

    Tidak digunakan lagi sejak Chrome 144

    Dukungan untuk penghapusan sandi melalui ekstensi telah dihapus. Jenis data ini akan diabaikan.

    Sandi tersimpan.

  • pluginData

    boolean opsional

    Tidak digunakan lagi sejak Chrome 88

    Dukungan untuk Flash telah dihapus. Jenis data ini akan diabaikan.

    Data plugin.

  • serverBoundCertificates

    boolean opsional

    Tidak digunakan lagi sejak Chrome 76

    Dukungan untuk sertifikat terikat server telah dihapus. Jenis data ini akan diabaikan.

    Sertifikat terikat server.

  • serviceWorkers

    boolean opsional

    Service Worker.

  • webSQL

    boolean opsional

    Tidak digunakan lagi sejak Chrome 152

    Dukungan untuk WebSQL telah dihapus. Jenis data ini akan diabaikan.

    Data WebSQL situs.

RemovalOptions

Opsi yang menentukan dengan tepat data apa yang akan dihapus.

Properti

  • excludeOrigins

    string[] opsional

    Chrome 74+ browser.* sejak Chrome 148

    Jika ada, data untuk origin dalam daftar ini tidak akan dihapus. Tidak dapat digunakan bersama dengan origins. Hanya didukung untuk cookie, penyimpanan, dan cache. Cookie dikecualikan untuk seluruh domain yang dapat didaftarkan.

  • originTypes

    objek opsional

    Objek yang propertinya menentukan jenis origin yang harus dihapus. Jika objek ini tidak ditentukan, objek ini akan ditetapkan secara default untuk hanya menghapus origin "tidak dilindungi". Pastikan Anda benar-benar ingin menghapus data aplikasi sebelum menambahkan 'protectedWeb' atau 'extensions'.

    • extension

      boolean opsional

      Ekstensi dan aplikasi dalam paket yang telah diinstal pengguna (berhati-hatilah!).

    • protectedWeb

      boolean opsional

      Situs yang telah diinstal sebagai aplikasi yang dihosting (hati-hati!).

    • unprotectedWeb

      boolean opsional

      Situs normal.

  • origins

    [string, ...string[]] opsional

    Chrome 74+ browser.* sejak Chrome 148

    Jika ada, hanya data untuk origin dalam daftar ini yang akan dihapus. Hanya didukung untuk cookie, penyimpanan, dan cache. Cookie dihapus untuk seluruh domain yang dapat didaftarkan.

  • sejak

    number opsional

    Hapus data yang diakumulasikan pada atau setelah tanggal ini, yang dinyatakan dalam milidetik sejak epoch (dapat diakses melalui metode getTime dari objek Date JavaScript). Jika tidak ada, setelan defaultnya adalah 0 (yang akan menghapus semua data penjelajahan).

Metode

remove()

browser.browsingData.remove(
  options: RemovalOptions,
  dataToRemove: DataTypeSet,
)
: Promise<void>

Menghapus berbagai jenis data penjelajahan yang disimpan di profil pengguna.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Me-resolve saat penghapusan telah selesai.

removeAppcache()

Tidak digunakan lagi sejak Chrome 152
browser.browsingData.removeAppcache(
  options: RemovalOptions,
)
: Promise<void>

Dukungan untuk appcache telah dihapus. Fungsi ini tidak berpengaruh.

Menghapus data appcache situs.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Menyelesaikan saat data appcache situs telah dihapus.

removeCache()

browser.browsingData.removeCache(
  options: RemovalOptions,
)
: Promise<void>

Menghapus cache browser.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Menyelesaikan saat cache browser telah dihapus.

removeCacheStorage()

Chrome 72+ browser.* sejak Chrome 148
browser.browsingData.removeCacheStorage(
  options: RemovalOptions,
)
: Promise<void>

Menghapus data penyimpanan cache situs.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Diselesaikan saat penyimpanan cache situs telah dihapus.

removeCookies()

browser.browsingData.removeCookies(
  options: RemovalOptions,
)
: Promise<void>

Menghapus cookie browser dan sertifikat terikat server yang diubah dalam jangka waktu tertentu.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Diselesaikan saat cookie browser dan sertifikat yang terikat server telah dihapus.

removeDownloads()

browser.browsingData.removeDownloads(
  options: RemovalOptions,
)
: Promise<void>

Menghapus daftar file yang didownload di browser (bukan file yang didownload itu sendiri).

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Menyelesaikan masalah saat daftar file yang didownload di browser telah dihapus.

removeFileSystems()

browser.browsingData.removeFileSystems(
  options: RemovalOptions,
)
: Promise<void>

Menghapus data sistem file situs.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Menyelesaikan masalah saat sistem file situs telah dihapus.

removeFormData()

browser.browsingData.removeFormData(
  options: RemovalOptions,
)
: Promise<void>

Menghapus data formulir yang disimpan browser (isi otomatis).

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Menyelesaikan saat data formulir browser telah dihapus.

removeHistory()

browser.browsingData.removeHistory(
  options: RemovalOptions,
)
: Promise<void>

Menghapus histori browser.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Me-resolve saat histori browser telah dihapus.

removeIndexedDB()

browser.browsingData.removeIndexedDB(
  options: RemovalOptions,
)
: Promise<void>

Menghapus data IndexedDB situs.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Menyelesaikan saat data IndexedDB situs telah dihapus.

removeLocalStorage()

browser.browsingData.removeLocalStorage(
  options: RemovalOptions,
)
: Promise<void>

Menghapus data penyimpanan lokal situs.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Diselesaikan saat penyimpanan lokal situs telah dihapus.

removePasswords()

Tidak digunakan lagi sejak Chrome 144
browser.browsingData.removePasswords(
  options: RemovalOptions,
)
: Promise<void>

Dukungan untuk penghapusan sandi melalui ekstensi telah dihapus. Fungsi ini tidak berpengaruh.

Menghapus sandi tersimpan di browser.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Me-resolve saat sandi browser telah dihapus.

removePluginData()

Tidak digunakan lagi sejak Chrome 88
browser.browsingData.removePluginData(
  options: RemovalOptions,
)
: Promise<void>

Dukungan untuk Flash telah dihapus. Fungsi ini tidak berpengaruh.

Menghapus data plugin.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Me-resolve saat data plugin telah dihapus.

removeServiceWorkers()

Chrome 72+ browser.* sejak Chrome 148
browser.browsingData.removeServiceWorkers(
  options: RemovalOptions,
)
: Promise<void>

Menghapus pekerja layanan situs.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Diselesaikan saat pekerja layanan situs telah dihapus.

removeWebSQL()

Tidak digunakan lagi sejak Chrome 152
browser.browsingData.removeWebSQL(
  options: RemovalOptions,
)
: Promise<void>

Dukungan untuk WebSQL telah dihapus. Fungsi ini tidak berpengaruh.

Menghapus data WebSQL situs.

Parameter

Hasil

  • Promise<void>

    Chrome 96+ browser.* sejak Chrome 148

    Diselesaikan saat database WebSQL situs telah dihapus.

settings()

browser.browsingData.settings(): Promise<object>

Melaporkan jenis data yang saat ini dipilih di UI setelan 'Hapus data penjelajahan'. Catatan: beberapa jenis data yang disertakan dalam API ini tidak tersedia di UI setelan, dan beberapa setelan UI mengontrol lebih dari satu jenis data yang tercantum di sini.

Hasil

  • Promise<object>

    Chrome 96+ browser.* sejak Chrome 148