คำอธิบาย
ใช้ 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.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.browsingData.removePluginData(
options: RemovalOptions,
callback?: function,
)
ระบบเลิกรองรับ Flash แล้ว ฟังก์ชันนี้จะไม่มีผลใดๆ
ล้างปลั๊กอิน
พารามิเตอร์
-
ตัวเลือก
-
Callback
ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้() => void
การคืนสินค้า
-
คำสัญญา<โมฆะ>
Chrome 96 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback
removeServiceWorkers()
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<object>
Chrome 96 ขึ้นไปPromise รองรับไฟล์ Manifest V3 ขึ้นไปเท่านั้น ส่วนแพลตฟอร์มอื่นๆ ต้องใช้ Callback