chrome.browsingData

Nội dung mô tả

Dùng API chrome.browsingData để xoá dữ liệu duyệt web khỏi hồ sơ cục bộ của người dùng.

Quyền

browsingData

Bạn phải khai báo quyền "browsingData" trong tệp kê khai tiện ích để sử dụng API này.

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

Khái niệm và cách sử dụng

Trường hợp sử dụng đơn giản nhất cho API này là cơ chế dựa trên thời gian để xoá dữ liệu duyệt web của người dùng. Mã của bạn phải cung cấp dấu thời gian cho biết ngày trong quá khứ mà sau đó dữ liệu duyệt web của người dùng sẽ bị xoá. Dấu thời gian này được định dạng là số mili giây kể từ thời gian bắt đầu của hệ thống Unix (có thể được truy xuất từ đối tượng Date JavaScript bằng phương thức getTime()).

Ví dụ: để xoá tất cả dữ liệu duyệt web của người dùng trong tuần trước, bạn có thể viết mã như sau:

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

Phương thức chrome.browsingData.remove() cho phép bạn xoá nhiều loại dữ liệu duyệt web bằng một lệnh gọi duy nhất, và sẽ nhanh hơn nhiều so với việc gọi nhiều phương thức cụ thể hơn. Tuy nhiên, nếu bạn chỉ muốn xoá một loại dữ liệu duyệt web cụ thể (ví dụ: cookie), các phương thức chi tiết hơn sẽ cung cấp phương án thay thế dễ đọc cho lệnh gọi được điền bằng 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);

Nếu người dùng đang đồng bộ hoá dữ liệu, thì chrome.browsingData.remove() có thể tự động tạo lại cookie cho tài khoản Đồng bộ hoá sau khi xoá cookie đó. Điều này là để đảm bảo rằng tính năng Đồng bộ hoá có thể tiếp tục hoạt động để dữ liệu cuối cùng có thể bị xoá trên máy chủ. Tuy nhiên, bạn có thể sử dụng chrome.browsingData.removeCookies() cụ thể hơn để xoá cookie của tài khoản Sync và quá trình Đồng bộ hoá sẽ bị tạm dừng trong trường hợp này.

Nguồn gốc cụ thể

Để xoá dữ liệu về một nguồn gốc cụ thể hoặc để loại trừ một nhóm nguồn gốc khỏi bị xoá, bạn có thể sử dụng các tham số RemovalOptions.originsRemovalOptions.excludeOrigins. Các chế độ cài đặt này chỉ có thể được áp dụng cho cookie, bộ nhớ đệm và bộ nhớ lưu trữ (CacheStorage, FileSystems, IndexedDB, LocalStorage, ServiceWorkers và WebSQL).

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

Loại nguồn gốc

Việc thêm thuộc tính originTypes vào đối tượng tuỳ chọn API cho phép bạn chỉ định loại nguồn gốc nào cần được thực hiện. Nguồn gốc được chia thành 3 danh mục:

  • unprotectedWeb đề cập đến trường hợp chung của những trang web mà người dùng truy cập mà không thực hiện bất kỳ hành động đặc biệt nào. Nếu bạn không chỉ định originTypes, thì theo mặc định, API sẽ xoá dữ liệu khỏi các nguồn gốc web không được bảo vệ.
  • protectedWeb bao gồm các nguồn gốc web đã được cài đặt dưới dạng ứng dụng được lưu trữ. Ví dụ: việc cài đặt Angry Birds sẽ giúp bảo vệ nguồn gốc https://chrome.angrybirds.com và xoá nguồn gốc đó khỏi danh mục unprotectedWeb. Hãy cẩn thận khi kích hoạt tính năng xoá dữ liệu cho các nguồn gốc này: hãy đảm bảo người dùng của bạn biết những gì họ sẽ nhận được vì thao tác này sẽ xoá dữ liệu trò chơi của họ. Không ai muốn đánh sập những nhà lợn nhỏ xíu thường xuyên hơn mức cần thiết.
  • extension bao gồm các nguồn gốc trong giao thức chrome-extensions:. Xin nhắc lại, việc xoá dữ liệu tiện ích là điều bạn nên hết sức thận trọng.

Chúng ta có thể điều chỉnh ví dụ trước để chỉ xoá dữ liệu khỏi các trang web được bảo vệ như sau:

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

Ví dụ

Để dùng thử API này, hãy cài đặt ví dụ về API BrowseData trong kho lưu trữ chrome-extension-samples.

Loại

DataTypeSet

Một tập hợp các kiểu dữ liệu. Khi thiếu loại dữ liệu, hệ thống sẽ diễn giải false.

Thuộc tính

  • bộ nhớ đệm ứng dụng

    boolean không bắt buộc

    Bộ nhớ đệm appcache của trang web.

  • Bộ nhớ đệm

    boolean không bắt buộc

    Bộ nhớ đệm của trình duyệt.

  • cacheStorage

    boolean không bắt buộc

    Chrome 72 trở lên

    Dung lượng lưu trữ của bộ nhớ đệm

  • cookie

    boolean không bắt buộc

    Cookie của trình duyệt.

  • video tải xuống

    boolean không bắt buộc

    Danh sách tải xuống của trình duyệt.

  • fileSystems

    boolean không bắt buộc

    Hệ thống tệp của trang web.

  • formData

    boolean không bắt buộc

    Dữ liệu biểu mẫu được lưu trữ của trình duyệt.

  • video đã xem

    boolean không bắt buộc

    Nhật ký duyệt web của trình duyệt.

  • indexedDB

    boolean không bắt buộc

    Dữ liệu IndexedDB của trang web.

  • localStorage

    boolean không bắt buộc

    Dữ liệu bộ nhớ cục bộ của trang web.

  • mật khẩu

    boolean không bắt buộc

    Mật khẩu đã lưu trữ.

  • pluginData

    boolean không bắt buộc

    Không dùng nữa kể từ Chrome 88

    Chúng tôi đã ngừng hỗ trợ Flash. Loại dữ liệu này sẽ bị bỏ qua.

    Dữ liệu của trình bổ trợ.

  • serverBoundCertificates

    boolean không bắt buộc

    Không dùng nữa kể từ Chrome 76

    Chế độ hỗ trợ cho chứng chỉ giới hạn máy chủ không còn được hỗ trợ. Loại dữ liệu này sẽ bị bỏ qua.

    Chứng chỉ liên kết với máy chủ.

  • serviceWorkers

    boolean không bắt buộc

    Trình chạy dịch vụ.

  • webSQL

    boolean không bắt buộc

    Dữ liệu WebSQL của trang web.

RemovalOptions

Các lựa chọn xác định chính xác dữ liệu nào sẽ bị xoá.

Thuộc tính

  • excludeOrigins

    string[] không bắt buộc

    Chrome 74 trở lên

    Nếu có, dữ liệu của các nguồn gốc trong danh sách này sẽ không bị xoá. Không thể sử dụng cùng với origins. Chỉ hỗ trợ cookie, dung lượng lưu trữ và bộ nhớ đệm. Cookie sẽ bị loại trừ cho toàn bộ miền có thể đăng ký.

  • originTypes

    đối tượng không bắt buộc

    Một đối tượng có các thuộc tính chỉ định loại nguồn gốc nào cần được xoá. Nếu bạn không chỉ định đối tượng này, thì theo mặc định, hệ thống sẽ chỉ xoá các nguồn gốc "không được bảo vệ". Hãy đảm bảo rằng bạn thực sự muốn xoá dữ liệu ứng dụng trước khi thêm "ProtectedWeb" hoặc "tiện ích".

    • phần mở rộng

      boolean không bắt buộc

      Các tiện ích và ứng dụng đóng gói mà người dùng đã cài đặt (hãy _rất_ cẩn thận!).

    • protectedWeb

      boolean không bắt buộc

      Các trang web đã được cài đặt dưới dạng ứng dụng được lưu trữ (hãy cẩn thận!).

    • unprotectedWeb

      boolean không bắt buộc

      Các trang web thông thường.

  • nguồn gốc

    string[] không bắt buộc

    Chrome 74 trở lên

    Nếu có, chỉ dữ liệu của các nguồn gốc trong danh sách này mới bị xoá. Chỉ hỗ trợ cookie, dung lượng lưu trữ và bộ nhớ đệm. Cookie sẽ bị xoá cho toàn bộ miền có thể đăng ký.

  • từ

    số không bắt buộc

    Xoá dữ liệu được tích luỹ vào hoặc sau ngày này, biểu thị bằng mili giây kể từ thời gian bắt đầu của hệ thống (có thể truy cập qua phương thức getTime của đối tượng JavaScript Date). Nếu không có, giá trị mặc định sẽ là 0 (sẽ xoá tất cả dữ liệu duyệt web).

Phương thức

remove()

Cam kết
chrome.browsingData.remove(
  options: RemovalOptions,
  dataToRemove: DataTypeSet,
  callback?: function,
)

Xoá nhiều loại dữ liệu duyệt web được lưu trữ trong hồ sơ của người dùng.

Tham số

  • tùy chọn
  • dataToRemove

    Tập hợp các loại dữ liệu cần xoá.

  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeAppcache()

Cam kết
chrome.browsingData.removeAppcache(
  options: RemovalOptions,
  callback?: function,
)

Xoá dữ liệu bộ nhớ đệm của trang web.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeCache()

Cam kết
chrome.browsingData.removeCache(
  options: RemovalOptions,
  callback?: function,
)

Xoá bộ nhớ đệm của trình duyệt.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeCacheStorage()

Cam kết Chrome 72 trở lên
chrome.browsingData.removeCacheStorage(
  options: RemovalOptions,
  callback?: function,
)

Xoá dữ liệu bộ nhớ đệm của trang web.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeCookies()

Cam kết
chrome.browsingData.removeCookies(
  options: RemovalOptions,
  callback?: function,
)

Xóa cookie của trình duyệt và chứng chỉ liên kết với máy chủ được sửa đổi trong một khung thời gian cụ thể.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeDownloads()

Cam kết
chrome.browsingData.removeDownloads(
  options: RemovalOptions,
  callback?: function,
)

Xóa danh sách các tệp được tải xuống của trình duyệt (chứ không phải chính các tệp được tải xuống).

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeFileSystems()

Cam kết
chrome.browsingData.removeFileSystems(
  options: RemovalOptions,
  callback?: function,
)

Xoá dữ liệu hệ thống tệp của trang web.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeFormData()

Cam kết
chrome.browsingData.removeFormData(
  options: RemovalOptions,
  callback?: function,
)

Xoá dữ liệu biểu mẫu đã lưu trữ của trình duyệt (tự động điền).

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeHistory()

Cam kết
chrome.browsingData.removeHistory(
  options: RemovalOptions,
  callback?: function,
)

Xoá nhật ký của trình duyệt.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeIndexedDB()

Cam kết
chrome.browsingData.removeIndexedDB(
  options: RemovalOptions,
  callback?: function,
)

Xoá dữ liệu IndexedDB của trang web.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeLocalStorage()

Cam kết
chrome.browsingData.removeLocalStorage(
  options: RemovalOptions,
  callback?: function,
)

Xoá dữ liệu bộ nhớ cục bộ của trang web.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removePasswords()

Cam kết
chrome.browsingData.removePasswords(
  options: RemovalOptions,
  callback?: function,
)

Xoá mật khẩu đã lưu trữ của trình duyệt.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removePluginData()

Lời hứa Không dùng nữa kể từ Chrome 88
chrome.browsingData.removePluginData(
  options: RemovalOptions,
  callback?: function,
)

Chúng tôi đã ngừng hỗ trợ Flash. Hàm này không có tác dụng.

Xoá dữ liệu của trình bổ trợ.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeServiceWorkers()

Cam kết Chrome 72 trở lên
chrome.browsingData.removeServiceWorkers(
  options: RemovalOptions,
  callback?: function,
)

Xoá trình chạy dịch vụ của trang web.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

removeWebSQL()

Cam kết
chrome.browsingData.removeWebSQL(
  options: RemovalOptions,
  callback?: function,
)

Xoá dữ liệu WebSQL của trang web.

Tham số

  • tùy chọn
  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    ()=>void

Giá trị trả về

  • Promise<void>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.

settings()

Cam kết
chrome.browsingData.settings(
  callback?: function,
)

Báo cáo những loại dữ liệu hiện được chọn trong giao diện người dùng cài đặt "Xoá dữ liệu duyệt web". Lưu ý: một số loại dữ liệu có trong API này không có trong giao diện người dùng chế độ cài đặt. Đồng thời, một số chế độ cài đặt giao diện người dùng kiểm soát nhiều loại dữ liệu nêu ở đây.

Tham số

  • số gọi lại

    hàm không bắt buộc

    Tham số callback sẽ có dạng như sau:

    (result: object)=>void

    • kết quả

      đối tượng

      • dataRemovalPermitted

        Tất cả các loại đều sẽ xuất hiện trong kết quả, với giá trị là true nếu được phép xoá (ví dụ: theo chính sách doanh nghiệp) và false nếu không được phép.

      • dataToRemove

        Tất cả các loại sẽ xuất hiện trong kết quả, với giá trị true nếu cả hai đều được chọn là xoá và được phép xoá, nếu không thì là false.

      • tùy chọn

Giá trị trả về

  • Promise<object>

    Chrome 96 trở lên

    Lời hứa được hỗ trợ trong Manifest V3 trở lên nhưng lệnh gọi lại được cung cấp để có khả năng tương thích ngược. Bạn không thể sử dụng cả hai trong cùng một lệnh gọi hàm. Lời hứa sẽ được phân giải bằng cùng một loại được truyền đến lệnh gọi lại.