chrome.browsingData

คำอธิบาย

ใช้ chrome.browsingData API เพื่อนำข้อมูลการท่องเว็บออกจากโปรไฟล์ในเครื่องของผู้ใช้

สิทธิ์

browsingData

ไฟล์ Manifest

คุณต้องประกาศ "browsingData" สิทธิ์ในไฟล์ Manifest ของส่วนขยายเพื่อใช้ API นี้

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

การใช้งาน

กรณีการใช้งานที่ง่ายที่สุดสำหรับ API นี้คือกลไกที่อิงตามเวลาสำหรับการล้างข้อมูลการท่องเว็บของผู้ใช้ โค้ดควรระบุการประทับเวลาซึ่งระบุวันที่ย้อนหลังที่ผู้ใช้ ข้อมูลการท่องเว็บควรถูกลบออก การประทับเวลานี้จัดรูปแบบเป็นจำนวนมิลลิวินาทีตั้งแต่ Unix Epoch (ซึ่งดึงได้จากออบเจ็กต์ Date ของ JavaScript ผ่านเมธอด getTime)

ตัวอย่างเช่น ในการล้างข้อมูลการท่องเว็บของผู้ใช้จากสัปดาห์ที่แล้วทั้งหมด คุณอาจเขียนโค้ดเป็น ดังต่อไปนี้:

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

เมธอด chrome.browsingData.remove ช่วยให้คุณสามารถนำข้อมูลการท่องเว็บประเภทต่างๆ ออกได้ด้วย การโทรครั้งเดียว และจะเร็วกว่าการโทรด้วยวิธีที่เจาะจงมากกว่า แต่ถ้าคุณ ต้องการล้างข้อมูลการท่องเว็บบางประเภทเท่านั้น (เช่น คุกกี้) ยิ่งมีความละเอียด เป็นทางเลือกที่อ่านได้แทนการเรียกที่เติมด้วย 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;
chrome.browsingData.removeCookies({
  "since": oneWeekAgo
}, callback);

หากผู้ใช้ซิงค์ข้อมูล chrome.browsingData.remove อาจสร้างคุกกี้อีกครั้งโดยอัตโนมัติ สำหรับบัญชีการซิงค์หลังจากล้างข้อมูล เพื่อให้มั่นใจว่าการซิงค์จะทำงานต่อไปได้ เพื่อให้ จากนั้นจึงลบข้อมูลบนเซิร์ฟเวอร์ได้ อย่างไรก็ตาม ยิ่งมีความเจาะจง คุณสามารถใช้ chrome.browsingData.removeCookies เพื่อล้างคุกกี้ของบัญชี Sync และการซิงค์ จะหยุดชั่วคราวในกรณีนี้

ต้นทางที่เฉพาะเจาะจง

หากต้องการนำข้อมูลของต้นทางที่เจาะจงออก หรือยกเว้นชุดต้นทางจากการลบ คุณสามารถใช้เมธอด พารามิเตอร์ RemovalOptions.origins และ RemovalOptions.excludeOrigins ใช้ได้เฉพาะกับ คุกกี้ แคช และพื้นที่เก็บข้อมูล (CacheStorage, FileSystems, IndexedDB, LocalStorage, ServiceWorkers และ WebSQL)

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

ประเภทต้นทาง

การเพิ่มพร็อพเพอร์ตี้ originTypes ลงในออบเจ็กต์ตัวเลือกของ API ช่วยให้คุณระบุประเภทของ ต้นทางควรจะได้รับผลกระทบ ปัจจุบันต้นทางแบ่งออกเป็น 3 หมวดหมู่ดังนี้

  • unprotectedWeb ครอบคลุมกรณีทั่วไปของเว็บไซต์ที่ผู้ใช้เข้าชมโดยไม่มีแบบพิเศษ การดำเนินการ หากไม่ระบุ originTypes ระบบจะใช้ค่าเริ่มต้นของ API ในการนําข้อมูลออกจากที่ไม่มีการป้องกัน ต้นทางเว็บ
  • protectedWeb ครอบคลุมต้นทางของเว็บที่ติดตั้งเป็นแอปพลิเคชันที่โฮสต์ ตัวอย่างเช่น การติดตั้ง Angry Birds จะปกป้องต้นทาง https://chrome.angrybirds.com และ นำออกจากหมวดหมู่ unprotectedWeb แล้ว โปรดระมัดระวังเมื่อเรียกใช้การลบ ข้อมูลจากต้นทางเหล่านี้: ตรวจสอบว่าผู้ใช้ทราบถึงสิ่งที่จะได้รับ เนื่องจากการดำเนินการนี้ไม่สามารถยกเลิกได้ นำข้อมูลเกมออก ไม่มีใครอยากทำให้เล้าหมูจิ๋วบ่อยเกินไป
  • extension จะครอบคลุมต้นทางภายใต้รูปแบบ chrome-extensions: การนำข้อมูลส่วนขยายออกจะ คุณควรระมัดระวังอีกครั้ง

เราสามารถปรับตัวอย่างก่อนหน้านี้เพื่อให้ลบข้อมูลจากเว็บไซต์ที่มีการป้องกันเท่านั้น ดังนี้

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

ตัวอย่าง

หากต้องการลองใช้ API นี้ ให้ติดตั้งตัวอย่าง browsingData API จาก chrome-extension-samples ที่เก็บได้

ประเภท

DataTypeSet

ชุดข้อมูลประเภทต่างๆ ระบบจะตีความประเภทข้อมูลที่ขาดหายไปเป็น false

พร็อพเพอร์ตี้

  • Appcache

    บูลีน ไม่บังคับ

    เว็บไซต์ appcaches

  • แคช

    บูลีน ไม่บังคับ

    แคชของเบราว์เซอร์

  • cacheStorage

    บูลีน ไม่บังคับ

    Chrome 72 ขึ้นไป

    พื้นที่เก็บข้อมูลแคช

  • คุกกี้

    บูลีน ไม่บังคับ

    คุกกี้ของเบราว์เซอร์

  • ดาวน์โหลด

    บูลีน ไม่บังคับ

    รายการดาวน์โหลดของเบราว์เซอร์

  • fileSystems

    บูลีน ไม่บังคับ

    เว็บไซต์ ระบบไฟล์

  • formData

    บูลีน ไม่บังคับ

    ข้อมูลแบบฟอร์มที่จัดเก็บของเบราว์เซอร์

  • ประวัติ

    บูลีน ไม่บังคับ

    ประวัติของเบราว์เซอร์

  • indexedDB

    บูลีน ไม่บังคับ

    เว็บไซต์ ข้อมูล IndexedDB

  • localStorage

    บูลีน ไม่บังคับ

    เว็บไซต์ ข้อมูลที่จัดเก็บในตัวเครื่อง

  • รหัสผ่าน

    บูลีน ไม่บังคับ

    รหัสผ่านที่เก็บไว้

  • pluginData

    บูลีน ไม่บังคับ

    เลิกใช้งานตั้งแต่ Chrome 88

    ระบบเลิกรองรับ Flash แล้ว ระบบจะไม่สนใจข้อมูลประเภทนี้

    ปลั๊กอิน

  • serverBoundCertificates

    บูลีน ไม่บังคับ

    เลิกใช้งานตั้งแต่ Chrome 76

    การรองรับใบรับรองที่ผูกกับเซิร์ฟเวอร์ถูกนำออกแล้ว ระบบจะไม่สนใจข้อมูลประเภทนี้

    ใบรับรองที่ผูกกับเซิร์ฟเวอร์

  • serviceWorkers

    บูลีน ไม่บังคับ

    Service Worker

  • webSQL

    บูลีน ไม่บังคับ

    เว็บไซต์ ข้อมูล WebSQL

RemovalOptions

ตัวเลือกที่จะกำหนดว่าข้อมูลใดจะถูกนำออก

พร็อพเพอร์ตี้

  • excludeOrigins

    string[] ไม่บังคับ

    Chrome 74 ขึ้นไป

    เมื่อปรากฏ ระบบจะยกเว้นข้อมูลของต้นทางในรายการนี้จากการลบ ใช้ร่วมกับ origins ไม่ได้ รองรับเฉพาะคุกกี้ พื้นที่เก็บข้อมูล และแคช ระบบจะยกเว้นคุกกี้สำหรับโดเมนทั้งหมดที่จดทะเบียนได้

  • originTypes

    ออบเจ็กต์ไม่บังคับ

    ออบเจ็กต์ที่มีพร็อพเพอร์ตี้ระบุประเภทต้นทางที่ควรล้าง หากไม่ได้ระบุออบเจ็กต์นี้ ค่าเริ่มต้นจะล้างเฉพาะ "ไม่มีการป้องกัน" โปรดตรวจสอบว่าคุณนำข้อมูลแอปพลิเคชันออกจริงๆ ก่อนที่จะเพิ่ม "ProtectedWeb" หรือ "ส่วนขยาย"

    • ส่วนขยาย

      บูลีน ไม่บังคับ

      ส่วนขยายและแอปพลิเคชันแพ็กเกจที่ผู้ใช้ติดตั้ง (โปรด_really_โปรดระวัง)

    • protectedWeb

      บูลีน ไม่บังคับ

      เว็บไซต์ที่ติดตั้งเป็นแอปพลิเคชันที่โฮสต์ (โปรดระวัง)

    • unprotectedWeb

      บูลีน ไม่บังคับ

      เว็บไซต์ปกติ

  • ต้นทาง

    [string, ...string[]] ไม่บังคับ

    Chrome 74 ขึ้นไป

    หากมี ระบบจะลบเฉพาะข้อมูลของต้นทางในรายการนี้ รองรับเฉพาะคุกกี้ พื้นที่เก็บข้อมูล และแคช ระบบจะล้างคุกกี้ของโดเมนที่ลงทะเบียนได้ทั้งหมด

  • ตั้งแต่

    หมายเลข ไม่บังคับ

    นำข้อมูลที่รวบรวมในวันที่นี้หรือหลังจากนั้นออก ซึ่งแสดงเป็นมิลลิวินาทีตั้งแต่ Epoch (เข้าถึงได้ผ่านเมธอด getTime ของออบเจ็กต์ Date แบบ JavaScript) หากไม่ระบุ ค่าเริ่มต้นจะเป็น 0 (ซึ่งจะนำข้อมูลการท่องเว็บทั้งหมดออก)

เมธอด

remove()

สัญญา
chrome.browsingData.remove(
  options: RemovalOptions,
  dataToRemove: DataTypeSet,
  callback?: function,
)

ล้างข้อมูลการท่องเว็บประเภทต่างๆ ที่เก็บไว้ในโปรไฟล์ของผู้ใช้

พารามิเตอร์

  • ตัวเลือก
  • dataToRemove

    ชุดของประเภทข้อมูลที่จะนำออก

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeAppcache()

สัญญา
chrome.browsingData.removeAppcache(
  options: RemovalOptions,
  callback?: function,
)

ล้างเว็บไซต์ ข้อมูล appcache

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeCache()

สัญญา
chrome.browsingData.removeCache(
  options: RemovalOptions,
  callback?: function,
)

ล้างแคชของเบราว์เซอร์

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeCacheStorage()

สัญญา Chrome 72 ขึ้นไป
chrome.browsingData.removeCacheStorage(
  options: RemovalOptions,
  callback?: function,
)

ล้างเว็บไซต์ ข้อมูลในพื้นที่จัดเก็บข้อมูลแคช

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeCookies()

สัญญา
chrome.browsingData.removeCookies(
  options: RemovalOptions,
  callback?: function,
)

ล้างคุกกี้และใบรับรองที่ผูกกับเซิร์ฟเวอร์ของเบราว์เซอร์ซึ่งแก้ไขภายในกรอบเวลาที่กำหนด

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeDownloads()

สัญญา
chrome.browsingData.removeDownloads(
  options: RemovalOptions,
  callback?: function,
)

ล้างรายการไฟล์ที่ดาวน์โหลดของเบราว์เซอร์ (ไม่ใช่ไฟล์ที่ดาวน์โหลดเอง)

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeFileSystems()

สัญญา
chrome.browsingData.removeFileSystems(
  options: RemovalOptions,
  callback?: function,
)

ล้างเว็บไซต์ ข้อมูลระบบไฟล์

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeFormData()

สัญญา
chrome.browsingData.removeFormData(
  options: RemovalOptions,
  callback?: function,
)

ล้างข้อมูลแบบฟอร์มที่จัดเก็บของเบราว์เซอร์ (ป้อนอัตโนมัติ)

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeHistory()

สัญญา
chrome.browsingData.removeHistory(
  options: RemovalOptions,
  callback?: function,
)

ล้างประวัติการเข้าชมของเบราว์เซอร์

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeIndexedDB()

สัญญา
chrome.browsingData.removeIndexedDB(
  options: RemovalOptions,
  callback?: function,
)

ล้างเว็บไซต์ ข้อมูล IndexedDB

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeLocalStorage()

สัญญา
chrome.browsingData.removeLocalStorage(
  options: RemovalOptions,
  callback?: function,
)

ล้างเว็บไซต์ ข้อมูลที่จัดเก็บในตัวเครื่อง

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removePasswords()

สัญญา
chrome.browsingData.removePasswords(
  options: RemovalOptions,
  callback?: function,
)

ล้างรหัสผ่านที่จัดเก็บไว้ของเบราว์เซอร์

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removePluginData()

สัญญา เลิกใช้งานตั้งแต่ Chrome 88
chrome.browsingData.removePluginData(
  options: RemovalOptions,
  callback?: function,
)

ระบบเลิกรองรับ Flash แล้ว ฟังก์ชันนี้จะไม่มีผลใดๆ

ล้างปลั๊กอิน

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeServiceWorkers()

สัญญา Chrome 72 ขึ้นไป
chrome.browsingData.removeServiceWorkers(
  options: RemovalOptions,
  callback?: function,
)

ล้างเว็บไซต์ Service Worker

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

removeWebSQL()

สัญญา
chrome.browsingData.removeWebSQL(
  options: RemovalOptions,
  callback?: function,
)

ล้างเว็บไซต์ ข้อมูล WebSQL

พารามิเตอร์

  • ตัวเลือก
  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    () => void

การคืนสินค้า

  • คำสัญญา<โมฆะ>

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback

settings()

สัญญา
chrome.browsingData.settings(
  callback?: function,
)

รายงานว่ามีการเลือกข้อมูลประเภทใดบ้างในส่วน "ล้างข้อมูลการท่องเว็บ" UI การตั้งค่า หมายเหตุ: ข้อมูลบางประเภทที่รวมอยู่ใน API นี้ไม่พร้อมใช้งานใน UI การตั้งค่า และการตั้งค่า UI บางรายการจะควบคุมประเภทข้อมูลมากกว่า 1 ประเภทตามที่ระบุไว้ที่นี่

พารามิเตอร์

  • Callback

    ไม่บังคับ

    พารามิเตอร์ callback มีลักษณะดังนี้

    (result: object) => void

    • ผลลัพธ์

      ออบเจ็กต์

      • dataRemovalPermitted

        ประเภททั้งหมดจะแสดงอยู่ในผลการค้นหา โดยมีค่า true หากได้รับอนุญาตให้นำออก (เช่น โดยนโยบายระดับองค์กร) และ false หากไม่เป็นเช่นนั้น

      • dataToRemove

        ประเภททั้งหมดจะปรากฏในผลการค้นหาพร้อมค่า true หากได้รับเลือกให้นำออกทั้ง 2 ประเภทและได้รับอนุญาตให้นำออก หากไม่เป็นเช่นนั้น false

      • ตัวเลือก

การคืนสินค้า

  • Promise&lt;object&gt;

    Chrome 96 ขึ้นไป

    Promise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback