说明
使用 chrome.browsingData
API 从用户的本地个人资料中移除浏览数据。
权限
browsingData
您必须在扩展程序清单中声明 "browsingData"
权限,才能使用此 API。
{
"name": "My extension",
...
"permissions": [
"browsingData",
],
...
}
概念和用法
此 API 最简单的用例是一种基于时间的机制,用于清除用户浏览数据。
您的代码应提供一个时间戳,指明历史日期,在此日期之后
浏览数据。此时间戳的格式设置为自事件发生以来经过的毫秒数
Unix 纪元(可以使用 getTime()
方法从 JavaScript Date
对象中检索)。
例如,要清除用户上周的所有浏览数据,您可以编写如下代码: 如下:
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
。这是为了确保同步功能可继续工作,
数据最终在服务器上会被删除不过,越具体
chrome.browsingData.removeCookies()
可用于清除同步账号的 Cookie,而同步
在这种情况下将暂停投放
特定来源
要移除特定来源的数据或排除某些来源的删除记录,您可以使用
RemovalOptions.origins
和 RemovalOptions.excludeOrigins
参数。它们只能应用于
Cookie、缓存和存储(CacheStorage、FileSystems、IndexedDB、LocalStorage、ServiceWorker 和
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
涵盖那些已经作为托管应用安装的网站源。 例如,安装 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 中的 chrome-extension-samples 存储库
类型
DataTypeSet
一组数据类型。缺失的数据类型会被解读为 false
。
属性
-
appcache
布尔值(可选)
网站appcaches 等方法。
-
缓存
布尔值(可选)
浏览器的缓存。
-
cacheStorage
布尔值(可选)
Chrome 72 或更高版本缓存存储空间
-
Cookie
布尔值(可选)
浏览器的 Cookie。
-
下载次数增幅
布尔值(可选)
浏览器的下载列表。
-
fileSystems
布尔值(可选)
网站文件系统
-
formData
布尔值(可选)
浏览器存储的表单数据。
-
历史
布尔值(可选)
浏览器的历史记录。
-
indexedDB
布尔值(可选)
网站IndexedDB 数据。
-
localStorage
布尔值(可选)
网站本地存储数据
-
密码
布尔值(可选)
存储的密码。
-
pluginData
布尔值(可选)
<ph type="x-smartling-placeholder"></ph> 自 Chrome 88 起已弃用取消了对 Flash 的支持。此数据类型将被忽略。
插件的数据。
-
serverBoundCertificates
布尔值(可选)
<ph type="x-smartling-placeholder"></ph> 自 Chrome 76 起弃用不再支持服务器绑定证书。此数据类型将被忽略。
服务器绑定证书。
-
serviceWorkers
布尔值(可选)
Service Worker。
-
webSQL
布尔值(可选)
网站WebSQL 数据。
RemovalOptions
用于确切确定要移除哪些数据的选项。
属性
-
excludeOrigins
string[] 选填
Chrome 74 及更高版本如果此列表中包含源站的数据,则不会被删除。不能与
origins
一起使用。仅支持 Cookie、存储和缓存。整个可注册网域不会使用 Cookie。 -
originTypes
对象(可选)
此对象的属性指定了应清除的出发地类型。如果未指定此对象,则默认仅清除“不受保护的”来源。在添加“protectedWeb”之前,请确保您确实想要移除应用数据或“扩展程序”
-
扩展程序
布尔值(可选)
用户安装的扩展程序和打包应用程序(一定要 _非常_ 小心!)。
-
protectedWeb
布尔值(可选)
已经作为托管应用程序安装的网站(请注意!)。
-
unprotectedWeb
布尔值(可选)
普通网站。
-
-
源
[string, ...string[]] 选填
Chrome 74 及更高版本如果存在,系统只会删除此列表中源站的数据。仅支持 Cookie、存储和缓存。清除整个可注册网域的 Cookie。
-
开始于
编号(选填)
移除在此日期当天或之后累积的数据,以自纪元以来的毫秒数表示(可通过 JavaScript
Date
对象的getTime
方法访问)。如果不存在,则默认为 0(这会移除所有浏览数据)。
方法
remove()
chrome.browsingData.remove(
options: RemovalOptions,
dataToRemove: DataTypeSet,
callback?: function,
)
清除用户个人资料中存储的各类浏览数据。
参数
-
dataToRemove
要移除的数据类型集。
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeAppcache()
chrome.browsingData.removeAppcache(
options: RemovalOptions,
callback?: function,
)
清除网站的appcache 数据。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeCache()
chrome.browsingData.removeCache(
options: RemovalOptions,
callback?: function,
)
清除浏览器的缓存。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeCacheStorage()
chrome.browsingData.removeCacheStorage(
options: RemovalOptions,
callback?: function,
)
清除网站的缓存存储数据。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeCookies()
chrome.browsingData.removeCookies(
options: RemovalOptions,
callback?: function,
)
清除在特定时间范围内修改的浏览器 Cookie 和服务器绑定证书。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeDownloads()
chrome.browsingData.removeDownloads(
options: RemovalOptions,
callback?: function,
)
清除浏览器的已下载文件列表(而非已下载文件本身)。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeFileSystems()
chrome.browsingData.removeFileSystems(
options: RemovalOptions,
callback?: function,
)
清除网站的文件系统数据。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeFormData()
chrome.browsingData.removeFormData(
options: RemovalOptions,
callback?: function,
)
清除浏览器存储的表单数据(自动填充)。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeHistory()
chrome.browsingData.removeHistory(
options: RemovalOptions,
callback?: function,
)
清除浏览器的历史记录。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeIndexedDB()
chrome.browsingData.removeIndexedDB(
options: RemovalOptions,
callback?: function,
)
清除网站的IndexedDB 数据。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeLocalStorage()
chrome.browsingData.removeLocalStorage(
options: RemovalOptions,
callback?: function,
)
清除网站的本地存储数据
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removePasswords()
chrome.browsingData.removePasswords(
options: RemovalOptions,
callback?: function,
)
清除浏览器存储的密码。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removePluginData()
chrome.browsingData.removePluginData(
options: RemovalOptions,
callback?: function,
)
取消了对 Flash 的支持。此函数没有任何作用。
清除插件的数据。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeServiceWorkers()
chrome.browsingData.removeServiceWorkers(
options: RemovalOptions,
callback?: function,
)
清除网站的Service Worker。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
removeWebSQL()
chrome.browsingData.removeWebSQL(
options: RemovalOptions,
callback?: function,
)
清除网站的WebSQL 数据。
参数
-
callback
函数(可选)
callback
参数如下所示:() => void
返回
-
承诺<void>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。
settings()
chrome.browsingData.settings(
callback?: function,
)
报告“清除浏览数据”中当前选择的数据类型设置界面。注意:此 API 中包含的某些数据类型在设置界面中不可用,而某些界面设置可控制此处列出的多种数据类型。
参数
-
callback
函数(可选)
callback
参数如下所示:(result: object) => void
-
结果
对象
-
dataRemovalPermitted
所有类型都会显示在结果中,如果允许移除(例如企业政策),则值为
true
;如果不允许移除,则值为false
。 -
dataToRemove
所有类型都会出现在结果中,如果它们都被选中以被移除和移除,其值为
true
,否则为false
。
-
-
返回
-
Promise<object>
Chrome 96 及更高版本Manifest V3 及更高版本支持 Promise,但为以下项目提供回调: 向后兼容性您不能在同一个函数调用中同时使用这两者。通过 promise 使用传递给回调的类型进行解析。