chrome.browsingData

说明

使用 chrome.browsingData API 从用户的本地个人资料中移除浏览数据。

权限

browsingData

您必须在扩展程序清单中声明 "browsingData" 权限,才能使用此 API。

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

概念和用法

此 API 最简单的使用场景是用于清除用户浏览数据的基于时间的机制。您的代码应提供一个时间戳,用于指明历史日期,在此日期之后的用户浏览数据应被移除。此时间戳的格式为自 Unix 纪元以来的毫秒数(可以使用 Date 对象的 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() 方法,您只需一次调用即可移除各种类型的浏览数据,这比调用多个更具体的方法要快得多。不过,如果您只想清除一种特定类型的浏览数据(例如 Cookie),那么更精细的方法可提供一种可读的替代方案,而无需使用包含 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() 可能会在清除同步账号的 Cookie 后自动重建该 Cookie。这是为了确保同步功能可以继续正常运行,以便最终在服务器上删除数据。不过,更具体的 chrome.browsingData.removeCookies() 可用于清除同步账号的 Cookie,在这种情况下,同步会暂停。

特定来源

如需移除特定来源的数据或排除一组来源而不进行删除,您可以使用 RemovalOptions.originsRemovalOptions.excludeOrigins 参数。它们只能应用于 Cookie、缓存和存储空间(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);

来源类型

通过向 API 的 options 对象添加 originTypes 属性,您可以指定应影响哪些类型的来源。来源分为三类:

  • unprotectedWeb 涵盖了用户在未采取任何特殊操作的情况下访问的网站这一一般情况。如果您未指定 originTypes,则 API 默认会移除来自不受保护的网络来源的数据。
  • protectedWeb 涵盖已安装为托管应用的 Web 来源。 例如,安装 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,请从 chrome-extension-samples 代码库中安装 browsingData API 示例

类型

DataTypeSet

一组数据类型。缺失的数据类型会被解读为 false

属性

  • appcache

    布尔值(可选)

    网站的应用缓存。

  • 缓存

    布尔值(可选)

    浏览器的缓存。

  • cacheStorage

    布尔值(可选)

    Chrome 72 及更高版本

    缓存空间

  • Cookie

    布尔值(可选)

    浏览器的 Cookie。

  • 下载次数增幅

    布尔值(可选)

    浏览器的下载列表。

  • fileSystems

    布尔值(可选)

    网站的文件系统。

  • formData

    布尔值(可选)

    浏览器存储的表单数据。

  • 历史记录

    布尔值(可选)

    浏览器的历史记录。

  • indexedDB

    布尔值(可选)

    网站的 IndexedDB 数据。

  • localStorage

    布尔值(可选)

    网站的本地存储数据。

  • 密码

    布尔值(可选)

    存储的密码。

  • pluginData

    布尔值(可选)

    自 Chrome 88 起已弃用

    已移除对 Flash 的支持。系统将忽略此数据类型。

    插件的数据。

  • serverBoundCertificates

    布尔值(可选)

    自 Chrome 76 起弃用

    已移除对服务器绑定证书的支持。系统将忽略此数据类型。

    与服务器绑定的证书。

  • serviceWorkers

    布尔值(可选)

    Service Worker。

  • webSQL

    布尔值(可选)

    网站的 WebSQL 数据。

RemovalOptions

用于确定要移除哪些数据的选项。

属性

  • excludeOrigins

    string[] 可选

    Chrome 74 及更高版本

    如果存在,则此列表中的来源对应的数据不会被删除。不能与 origins 结合使用。仅支持 Cookie、存储空间和缓存。系统会排除整个可注册网域的 Cookie。

  • originTypes

    对象(可选)

    一个对象,其属性用于指定应清除哪些来源类型。如果未指定此对象,则默认仅清除“不受保护”的来源。在添加“protectedWeb”或“extensions”之前,请确保您确实要移除应用数据。

    • 扩展程序

      布尔值(可选)

      用户已安装的扩展程序和打包应用(请务必谨慎使用!)。

    • protectedWeb

      布尔值(可选)

      已安装为托管应用的网站(请谨慎操作!)。

    • unprotectedWeb

      布尔值(可选)

      普通网站。

  • 来源

    [string, ...string[]] 可选

    Chrome 74 及更高版本

    如果存在,则仅删除此列表中的来源的数据。仅支持 Cookie、存储空间和缓存。系统会清除整个可注册网域的 Cookie。

  • 开始于

    number 可选

    移除自此日期(以自纪元开始算起的毫秒数表示,可通过 JavaScript Date 对象的 getTime 方法访问)起累积的数据。如果缺省,则默认为 0(这将移除所有浏览数据)。

方法

remove()

chrome.browsingData.remove(
  options: RemovalOptions,
  dataToRemove: DataTypeSet,
)
: Promise<void>

清除用户个人资料中存储的各种类型的浏览数据。

参数

返回

  • Promise<void>

    Chrome 96 及更高版本

removeAppcache()

chrome.browsingData.removeAppcache(
  options: RemovalOptions,
)
: Promise<void>

清除网站的应用缓存数据。

参数

返回

  • Promise<void>

    Chrome 96 及更高版本

removeCache()

chrome.browsingData.removeCache(
  options: RemovalOptions,
)
: Promise<void>

清除浏览器的缓存。

参数

返回

  • Promise<void>

    Chrome 96 及更高版本

removeCacheStorage()

Chrome 72 及更高版本
chrome.browsingData.removeCacheStorage(
  options: RemovalOptions,
)
: Promise<void>

清除网站的缓存存储数据。

参数

返回

  • Promise<void>

    Chrome 96 及更高版本

removeCookies()

chrome.browsingData.removeCookies(
  options: RemovalOptions,
)
: Promise<void>

清除浏览器在特定时间范围内修改的 Cookie 和与服务器绑定的证书。

参数

返回

  • 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 88 起已弃用
chrome.browsingData.removePluginData(
  options: RemovalOptions,
)
: Promise<void>

已移除对 Flash 的支持。此函数无效。

清除插件的数据。

参数

返回

  • Promise<void>

    Chrome 96 及更高版本

removeServiceWorkers()

Chrome 72 及更高版本
chrome.browsingData.removeServiceWorkers(
  options: RemovalOptions,
)
: Promise<void>

清除网站的服务工作线程。

参数

返回

  • Promise<void>

    Chrome 96 及更高版本

removeWebSQL()

chrome.browsingData.removeWebSQL(
  options: RemovalOptions,
)
: Promise<void>

清除网站的 WebSQL 数据。

参数

返回

  • Promise<void>

    Chrome 96 及更高版本

settings()

chrome.browsingData.settings(): Promise<object>

报告“清除浏览数据”设置界面中当前选择了哪些类型的数据。注意:此 API 中包含的某些数据类型在设置界面中不可用,并且某些界面设置可控制此处列出的多种数据类型。

返回

  • Promise<object>

    Chrome 96 及更高版本