คำอธิบาย
ใช้ 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-sample
ประเภท
DataTypeSet
ชุดของประเภทข้อมูล ระบบจะตีความประเภทข้อมูลที่ขาดหายไปเป็น false
พร็อพเพอร์ตี้
-
แคชแอป
บูลีน ไม่บังคับ
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
ออบเจ็กต์ ไม่บังคับ
ออบเจ็กต์ที่มีพร็อพเพอร์ตี้ระบุประเภทต้นทางที่ควรล้าง หากไม่ได้ระบุออบเจ็กต์นี้ ระบบจะล้างเฉพาะต้นทางที่ "ไม่ป้องกัน" ตามค่าเริ่มต้น โปรดตรวจสอบว่าคุณต้องการนำข้อมูลแอปพลิเคชันออกก่อนที่จะเพิ่ม "ProtectionWeb" หรือ "extensions"
-
ส่วนขยาย
บูลีน ไม่บังคับ
ส่วนขยายและแอปพลิเคชันแบบเป็นแพ็กเกจที่ผู้ใช้ติดตั้งไว้ (โปรดระวัง!)
-
protectedWeb
บูลีน ไม่บังคับ
เว็บไซต์ที่ได้รับการติดตั้งเป็นแอปพลิเคชันที่โฮสต์ (โปรดระวัง)
-
unprotectedWeb
บูลีน ไม่บังคับ
เว็บไซต์ปกติ
-
-
ต้นทาง
string[] ไม่บังคับ
Chrome เวอร์ชัน 74 ขึ้นไปหากมี ระบบจะลบเฉพาะข้อมูลของต้นทางในรายการนี้ รองรับเฉพาะคุกกี้ พื้นที่เก็บข้อมูล และแคช ระบบจะล้างคุกกี้ของทั้งโดเมนที่จดทะเบียนได้
-
ตั้งแต่
ตัวเลข ไม่บังคับ
นำข้อมูลที่รวบรวมไว้ในวันที่ดังกล่าวหรือหลังจากวันที่นี้ออกซึ่งแสดงเป็นมิลลิวินาทีนับจาก Epoch (เข้าถึงได้ผ่านเมธอด
getTime
ของออบเจ็กต์ JavaScriptDate
) หากไม่มี ค่าเริ่มต้นจะเป็น 0 (ซึ่งจะนำข้อมูลการท่องเว็บทั้งหมดออก)
วิธีการ
remove()
chrome.browsingData.remove(
options: RemovalOptions,
dataToRemove: DataTypeSet,
callback?: function,
)
ล้างข้อมูลการท่องเว็บประเภทต่างๆ ที่จัดเก็บไว้ในโปรไฟล์ของผู้ใช้
พารามิเตอร์
-
ตัวเลือก
-
dataToRemove
ชุดของประเภทข้อมูลที่จะนำออก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeAppcache()
chrome.browsingData.removeAppcache(
options: RemovalOptions,
callback?: function,
)
ล้างข้อมูล appcache ของเว็บไซต์
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeCache()
chrome.browsingData.removeCache(
options: RemovalOptions,
callback?: function,
)
ล้างแคชของเบราว์เซอร์
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeCacheStorage()
chrome.browsingData.removeCacheStorage(
options: RemovalOptions,
callback?: function,
)
ล้างข้อมูลพื้นที่เก็บข้อมูลแคชของเว็บไซต์
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeCookies()
chrome.browsingData.removeCookies(
options: RemovalOptions,
callback?: function,
)
ล้างคุกกี้ของเบราว์เซอร์และใบรับรองที่เชื่อมโยงกับเซิร์ฟเวอร์ซึ่งแก้ไขภายในกรอบเวลาที่กำหนด
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeDownloads()
chrome.browsingData.removeDownloads(
options: RemovalOptions,
callback?: function,
)
ล้างรายการไฟล์ที่ดาวน์โหลดของเบราว์เซอร์ (ไม่ใช่ตัวไฟล์ที่ดาวน์โหลด)
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeFileSystems()
chrome.browsingData.removeFileSystems(
options: RemovalOptions,
callback?: function,
)
ล้างข้อมูลระบบไฟล์ของเว็บไซต์
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeFormData()
chrome.browsingData.removeFormData(
options: RemovalOptions,
callback?: function,
)
ล้างข้อมูลแบบฟอร์มที่เก็บไว้ของเบราว์เซอร์ (ป้อนอัตโนมัติ)
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeHistory()
chrome.browsingData.removeHistory(
options: RemovalOptions,
callback?: function,
)
ล้างประวัติการเข้าชมของเบราว์เซอร์
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeIndexedDB()
chrome.browsingData.removeIndexedDB(
options: RemovalOptions,
callback?: function,
)
ล้างข้อมูล IndexedDB ของเว็บไซต์
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeLocalStorage()
chrome.browsingData.removeLocalStorage(
options: RemovalOptions,
callback?: function,
)
ล้างข้อมูลพื้นที่เก็บข้อมูลในเครื่องของเว็บไซต์
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removePasswords()
chrome.browsingData.removePasswords(
options: RemovalOptions,
callback?: function,
)
ล้างรหัสผ่านที่จัดเก็บไว้ของเบราว์เซอร์
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removePluginData()
chrome.browsingData.removePluginData(
options: RemovalOptions,
callback?: function,
)
เลิกรองรับ Flash แล้ว ฟังก์ชันนี้ไม่มีผล
ล้างข้อมูลของปลั๊กอิน
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeServiceWorkers()
chrome.browsingData.removeServiceWorkers(
options: RemovalOptions,
callback?: function,
)
ล้าง Service Worker ของเว็บไซต์
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
removeWebSQL()
chrome.browsingData.removeWebSQL(
options: RemovalOptions,
callback?: function,
)
ล้างข้อมูล WebSQL ของเว็บไซต์
พารามิเตอร์
-
ตัวเลือก
-
Callback
ฟังก์ชัน ไม่บังคับ
พารามิเตอร์
callback
มีลักษณะดังนี้()=>void
การคืนสินค้า
-
Promise<void>
Chrome 96 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ
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 ขึ้นไปPromiss รองรับเฉพาะไฟล์ Manifest V3 ขึ้นไป ส่วนแพลตฟอร์มอื่นๆ จะต้องใช้โค้ดเรียกกลับ