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