chrome.browsingData
描述: |
使用 chrome.browsingData API 从用户的本地配置文件删除浏览数据。
|
可用版本: |
从 Chrome 19 开始支持。
|
权限: |
"browsingData"
|
清单文件
您必须在扩展程序的清单文件中声明 "browsingData" 权限才能使用这一 API。
{ "name": "我的扩展程序", ... "permissions": [ "browsingData", ], ... }
用法
这一 API 最简单的用法就是基于时间清理用户浏览数据。您的代码应该提供时间戳,指定应该删除的是在这一历史时刻之后的用户浏览数据。这一时间戳的格式为自 1970 年 1 月 1 日以来所经过的毫秒数(可以通过 JavaScript 中 Date
对象的 getTime
方法获得)。
例如,要清除上一周的用户浏览数据,您可以编写如下代码:
var callback = function () { // 数据清除后可以在这里进行一些处理。 }; var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7; var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek; chrome.browsingData.remove({ "since": oneWeekAgo }, { "appcache": true, "cache": true, "cookies": true, "downloads": true, "fileSystems": true, "formData": true, "history": true, "indexedDB": true, "localStorage": true, "pluginData": true, "passwords": true, "webSQL": true }, callback);
chrome.browsingData.remove
方法允许您通过一次调用删除多种类型的浏览数据,并且比多次调用更具体的方法要快得多。然而,如果您只需要清除某种具体类型的浏览数据(例如 Cookie),粒度更细的方法要比包含 JSON 的调用更具可读性。
var callback = function () { // 数据清除后可以在这里进行一些处理。 }; var millisecondsPerWeek = 1000 * 60 * 60 * 24 * 7; var oneWeekAgo = (new Date()).getTime() - millisecondsPerWeek; chrome.browsingData.removeCookies({ "since": oneWeekAgo }, callback);
重要: 清除浏览数据涉及到后台大量的负荷,取决于用户配置文件,可能需要几十秒来完成。您应该使用回调机制通知用户清除状态。
来源类型
向该 API 的选项对象添加一个 originTypes
属性允许您指定哪些类型的来源应该受到影响。目前来源分为三类:
-
unprotectedWeb
包括了用户访问网站、不进行特殊操作的一般情况。如果您没有指定originTypes
,该 API 默认情况下删除来自不受保护的网络来源的数据。 -
protectedWeb
包括了安装为托管应用的网络来源。例如,安装 Angry Birds 后来源http://chrome.angrybirds.com
将受到保护,并将从unprotectedWeb
分类中移除。在执行这些来源内的删除操作时请格外小心:确保您的用户知道这样做的结果,因为这可能会彻底删除他们的游戏数据。没有人愿意一次又一次地推倒小猪的屋子。 -
extension
包括了chrome-extensions:
协议下的来源。删除扩展程序数据同样是您应该格外小心的事情。
我们可以调整前一个例子,只删除来自受保护的网络来源的数据,如下所示:
var callback = function () { // 数据清除后可以在这里进行一些处理。 }; 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, "cookies": true, "downloads": true, "fileSystems": true, "formData": true, "history": true, "indexedDB": true, "localStorage": true, "serverBoundCertificates": true, "pluginData": true, "passwords": true, "webSQL": true }, callback);
特别重要:使用 protectedWeb
与
extension
时必须格外小心,这些是毁灭性的操作,如果没有很好地告知用户您的扩展程序代表他们删除数据的后果,您会收到用户写来的愤怒的邮件。
例子
browsingData
API
的例子在示例页面中可用。
摘要
类型 | |
---|---|
RemovalOptions | |
DataTypeSet | |
方法 | |
settings −
chrome.browsingData.settings(function callback)
| |
remove −
chrome.browsingData.remove( RemovalOptions options, DataTypeSet dataToRemove, function callback)
| |
removeAppcache −
chrome.browsingData.removeAppcache( RemovalOptions options, function callback)
| |
removeCache −
chrome.browsingData.removeCache( RemovalOptions options, function callback)
| |
removeCookies −
chrome.browsingData.removeCookies( RemovalOptions options, function callback)
| |
removeDownloads −
chrome.browsingData.removeDownloads( RemovalOptions options, function callback)
| |
removeFileSystems −
chrome.browsingData.removeFileSystems( RemovalOptions options, function callback)
| |
removeFormData −
chrome.browsingData.removeFormData( RemovalOptions options, function callback)
| |
removeHistory −
chrome.browsingData.removeHistory( RemovalOptions options, function callback)
| |
removeIndexedDB −
chrome.browsingData.removeIndexedDB( RemovalOptions options, function callback)
| |
removeLocalStorage −
chrome.browsingData.removeLocalStorage( RemovalOptions options, function callback)
| |
removePluginData −
chrome.browsingData.removePluginData( RemovalOptions options, function callback)
| |
removePasswords −
chrome.browsingData.removePasswords( RemovalOptions options, function callback)
| |
removeWebSQL −
chrome.browsingData.removeWebSQL( RemovalOptions options, function callback)
|
类型
RemovalOptions
属性 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
double | (可选) since |
删除从指定日期开始积累的所有数据,表示为从 1970 年 1 月 1 日午夜开始所经过的毫秒数(可通过 JavaScript |
|||||||||
object | (可选) originTypes |
从 Chrome 21 开始支持。 一个对象,属性指定哪些来源类型的数据应该被清除。如果没有指定该对象,默认情况下只清除“unprotected”来源。添加 protectedWeb 或 extensions 前请确保您真的需要删除应用数据。
|
DataTypeSet
从 Chrome 27 开始支持。
属性 | ||
---|---|---|
boolean | (可选) appcache |
网站的应用程序缓存。 |
boolean | (可选) cache |
浏览器缓存。注意:删除数据时将清除所有缓存内容,并不仅限于您指定的范围。 |
boolean | (可选) cookies |
浏览器的 Cookie。 |
boolean | (可选) downloads |
浏览器的下载历史记录。 |
boolean | (可选) fileSystems |
网站的文件系统数据。 |
boolean | (可选) formData |
浏览器保存的表单数据。 |
boolean | (可选) history |
浏览器的历史记录。 |
boolean | (可选) indexedDB |
网站的 IndexedDB 数据。 |
boolean | (可选) localStorage |
网站的本地存储数据。 |
boolean | (可选) serverBoundCertificates |
服务器绑定的证书。 |
boolean | (可选) pluginData |
插件数据。 |
boolean | (可选) passwords |
保存的密码。 |
boolean | (可选) webSQL |
网站的 WebSQL 数据。 |
方法
settings
chrome.browsingData.settings(function callback)
从 Chrome 26 开始支持。
报告“清除浏览数据”用户界面中哪些类型的数据当前以选中。注意:该 API 中包含的某些数据类型不能在设置用户界面中访问,而某些用户界面设置控制这里列出的几种数据类型。
参数 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
function | callback |
callback 参数应该是一个如下形式的函数: function(object result) {...};
|
remove
chrome.browsingData.remove( RemovalOptions options, DataTypeSet dataToRemove, function callback)
清除储存在用户配置文件中的各种浏览数据。
参数 | ||
---|---|---|
RemovalOptions | options | |
DataTypeSet | dataToRemove |
要删除的数据类型的集合。 |
function | (可选) callback |
删除完成时调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removeAppcache
chrome.browsingData.removeAppcache( RemovalOptions options, function callback)
清除网站的应用程序缓存数据。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
网站的应用程序缓存数据清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removeCache
chrome.browsingData.removeCache( RemovalOptions options, function callback)
清除浏览器缓存。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
浏览器缓存清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removeCookies
chrome.browsingData.removeCookies( RemovalOptions options, function callback)
清除特定时间段内的浏览器 Cookie 与修改过的服务器绑定证书。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
浏览器 Cookie 与服务器绑定证书清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removeDownloads
chrome.browsingData.removeDownloads( RemovalOptions options, function callback)
清除浏览器中已下载的文件列表(不是已下载的文件本身)。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
浏览器已下载文件列表清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removeFileSystems
chrome.browsingData.removeFileSystems( RemovalOptions options, function callback)
清除网站的文件系统数据。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
网站的文件系统数据清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removeFormData
chrome.browsingData.removeFormData( RemovalOptions options, function callback)
清理浏览器保存的表单数据(自动填充)。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
浏览器保存的表单数据清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removeHistory
chrome.browsingData.removeHistory( RemovalOptions options, function callback)
清除浏览历史记录。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
浏览历史记录清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removeIndexedDB
chrome.browsingData.removeIndexedDB( RemovalOptions options, function callback)
清除网站的 IndexedDB 数据。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
网站的 IndexedDB 数据清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removeLocalStorage
chrome.browsingData.removeLocalStorage( RemovalOptions options, function callback)
清理网站的本地存储数据。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
网站的本地存储数据清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removePluginData
chrome.browsingData.removePluginData( RemovalOptions options, function callback)
清除插件数据。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
插件数据清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removePasswords
chrome.browsingData.removePasswords( RemovalOptions options, function callback)
清除浏览器保存的密码。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
浏览器保存的密码清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
removeWebSQL
chrome.browsingData.removeWebSQL( RemovalOptions options, function callback)
清除网站的 WebSQL 数据。
参数 | ||
---|---|---|
RemovalOptions | options | |
function | (可选) callback |
网站的 WebSQL 数据清除后调用。 如果您指定了 callback 参数,它应该是一个如下形式的函数: function() {...};
|
示例扩展程序
- BrowsingData API: Basics – A trivial usage example.