คำอธิบาย
ใช้ chrome.browsingData
API เพื่อนำข้อมูลการท่องเว็บออกจากโปรไฟล์ภายในเครื่องของผู้ใช้
สิทธิ์
browsingData
คุณต้องประกาศสิทธิ์ "browsingData"
ในไฟล์ Manifest ของส่วนขยายเพื่อใช้ API นี้
{ "name": "My extension", ... "permissions": [ "browsingData", ], ... }
แนวคิดและการใช้งาน
กรณีการใช้งานที่ง่ายที่สุดสำหรับ API นี้คือกลไกตามเวลาสำหรับการล้างข้อมูลการท่องเว็บของผู้ใช้ โค้ดควรระบุการประทับเวลาที่บ่งบอกวันที่ในอดีตหลังจากที่ควรนำข้อมูลการท่องเว็บของผู้ใช้ออก การประทับเวลานี้จัดรูปแบบเป็นจำนวนมิลลิวินาทีตั้งแต่ ยุค Unix (ซึ่งดึงข้อมูลจากออบเจ็กต์ 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()
ที่เฉพาะเจาะจงมากขึ้น เพื่อล้างคุกกี้สำหรับบัญชีซิงค์ และระบบจะหยุดซิงค์ชั่วคราวในกรณีนี้
ต้นทางที่เฉพาะเจาะจง
หากต้องการนำข้อมูลสำหรับแหล่งที่มาที่เฉพาะเจาะจงออกหรือยกเว้นชุดแหล่งที่มาจากการลบ คุณสามารถใช้พารามิเตอร์ 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
บูลีน ไม่บังคับ
Appcache ของเว็บไซต์
- แคช
บูลีน ไม่บังคับ
แคชของเบราว์เซอร์
- 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
object ไม่บังคับ
ออบเจ็กต์ที่มีพร็อพเพอร์ตี้ที่ระบุประเภทต้นทางที่ควรล้าง หากไม่ได้ระบุออบเจ็กต์นี้ ระบบจะล้างเฉพาะต้นทางที่ "ไม่มีการป้องกัน" เป็นค่าเริ่มต้น โปรดตรวจสอบว่าคุณต้องการนำข้อมูลแอปพลิเคชันออกจริงๆ ก่อนที่จะเพิ่ม "protectedWeb" หรือ "extensions"
- ส่วนขยาย
บูลีน ไม่บังคับ
ส่วนขยายและแอปพลิเคชันที่แพ็กเกจไว้ซึ่งผู้ใช้ติดตั้ง (โปรดระมัดระวังเป็นอย่างยิ่ง)
- protectedWeb
บูลีน ไม่บังคับ
เว็บไซต์ที่ติดตั้งเป็นแอปพลิเคชันที่โฮสต์ (โปรดระมัดระวัง)
- unprotectedWeb
บูลีน ไม่บังคับ
เว็บไซต์ปกติ
-
- ต้นกำเนิด
[string, ...string[]] ไม่บังคับ
Chrome 74 ขึ้นไปเมื่อมีอยู่ ระบบจะลบเฉพาะข้อมูลสำหรับต้นทางในรายการนี้ รองรับเฉพาะคุกกี้ พื้นที่เก็บข้อมูล และแคช ระบบจะล้างคุกกี้สำหรับโดเมนที่จดทะเบียนได้ทั้งหมด
- ตั้งแต่
หมายเลข ไม่บังคับ
นำข้อมูลที่สะสมในหรือหลังวันที่นี้ออก ซึ่งแสดงเป็นมิลลิวินาทีตั้งแต่ Epoch (เข้าถึงได้ผ่านเมธอด
getTime
ของออบเจ็กต์Date
JavaScript) หากไม่มี ระบบจะใช้ค่าเริ่มต้นเป็น 0 (ซึ่งจะนำข้อมูลการท่องเว็บทั้งหมดออก)
เมธอด
remove()
chrome.browsingData.remove(
options: RemovalOptions,
dataToRemove: DataTypeSet,
): Promise<void>
ล้างข้อมูลการท่องเว็บประเภทต่างๆ ที่จัดเก็บไว้ในโปรไฟล์ของผู้ใช้
พารามิเตอร์
- ตัวเลือก
- dataToRemove
ชุดประเภทข้อมูลที่จะนำออก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeAppcache()
chrome.browsingData.removeAppcache(
options: RemovalOptions,
): Promise<void>
ล้างข้อมูล AppCache ของเว็บไซต์
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeCache()
chrome.browsingData.removeCache(
options: RemovalOptions,
): Promise<void>
ล้างแคชของเบราว์เซอร์
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeCacheStorage()
chrome.browsingData.removeCacheStorage(
options: RemovalOptions,
): Promise<void>
ล้างข้อมูลพื้นที่เก็บข้อมูลแคชของเว็บไซต์
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeCookies()
chrome.browsingData.removeCookies(
options: RemovalOptions,
): Promise<void>
ล้างคุกกี้และใบรับรองที่เชื่อมโยงกับเซิร์ฟเวอร์ของเบราว์เซอร์ซึ่งมีการแก้ไขภายในระยะเวลาที่กำหนด
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeDownloads()
chrome.browsingData.removeDownloads(
options: RemovalOptions,
): Promise<void>
ล้างรายการไฟล์ที่ดาวน์โหลดของเบราว์เซอร์ (ไม่ใช่ไฟล์ที่ดาวน์โหลดเอง)
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeFileSystems()
chrome.browsingData.removeFileSystems(
options: RemovalOptions,
): Promise<void>
ล้างข้อมูลระบบไฟล์ของเว็บไซต์
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeFormData()
chrome.browsingData.removeFormData(
options: RemovalOptions,
): Promise<void>
ล้างข้อมูลแบบฟอร์มที่จัดเก็บไว้ของเบราว์เซอร์ (ป้อนข้อความอัตโนมัติ)
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeHistory()
chrome.browsingData.removeHistory(
options: RemovalOptions,
): Promise<void>
ล้างประวัติของเบราว์เซอร์
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeIndexedDB()
chrome.browsingData.removeIndexedDB(
options: RemovalOptions,
): Promise<void>
ล้างข้อมูล IndexedDB ของเว็บไซต์
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeLocalStorage()
chrome.browsingData.removeLocalStorage(
options: RemovalOptions,
): Promise<void>
ล้างข้อมูลพื้นที่เก็บข้อมูลในเครื่องของเว็บไซต์
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removePasswords()
chrome.browsingData.removePasswords(
options: RemovalOptions,
): Promise<void>
ล้างรหัสผ่านที่จัดเก็บไว้ของเบราว์เซอร์
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removePluginData()
chrome.browsingData.removePluginData(
options: RemovalOptions,
): Promise<void>
ระบบนำการสนับสนุน Flash ออกแล้ว ฟังก์ชันนี้ไม่มีผล
ล้างข้อมูลของปลั๊กอิน
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeServiceWorkers()
chrome.browsingData.removeServiceWorkers(
options: RemovalOptions,
): Promise<void>
ล้าง Service Worker ของเว็บไซต์
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
removeWebSQL()
chrome.browsingData.removeWebSQL(
options: RemovalOptions,
): Promise<void>
ล้างข้อมูล WebSQL ของเว็บไซต์
พารามิเตอร์
- ตัวเลือก
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไป
settings()
chrome.browsingData.settings(): Promise<object>
รายงานประเภทข้อมูลที่เลือกอยู่ใน UI การตั้งค่า "ล้างข้อมูลการท่องเว็บ" ในขณะนี้ หมายเหตุ: ข้อมูลบางประเภทที่รวมอยู่ใน API นี้จะไม่มีใน UI ของการตั้งค่า และการตั้งค่า UI บางอย่างจะควบคุมข้อมูลมากกว่า 1 ประเภทที่แสดงไว้ที่นี่
การคืนสินค้า
-
Promise<object>
Chrome 96 ขึ้นไป