This page was saved using WebZIP 7.0.3.1030 offline browser on 12/24/13 11:31:36.
Address: https://crxdoc-zh.appspot.com/extensions/browsingData.html
Title: chrome.browsingData - Google Chrome 扩展程序开发文档(非官方中文版)  •  Size: 73673

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 的例子在示例页面中可用。

chrome.browsingData 参考

类型

RemovalOptions

确定删除哪些数据的选项。

RemovalOptions 的属性

since ( optional double )

删除从指定日期开始积累的所有数据,表示为从 1970 年 1 月 1 日午夜开始所经过的毫秒数(可通过 JavaScript Date 对象的 getTime 方法访问)。如果没有指定,则默认为 0(删除所有内容)。

originTypes ( optional object )

一个对象,属性指定哪些来源类型的数据应该被清除。如果没有指定该对象,默认情况下只清除“unprotected”来源。添加 protectedWeb 或 extensions 前请确保您真的需要删除应用数据。

属性

unprotectedWeb ( optional boolean )

普通网站。

protectedWeb ( optional boolean )

安装为托管应用的网站(小心!)。

extension ( optional boolean )

用户安装的扩展程序与 Chrome 应用(格外小心!)。

DataTypeSet

数据类型的集合,未指定的数据类型认为是 false

DataTypeSet 的属性

appcache ( optional boolean )

网站的应用程序缓存。

cache ( optional boolean )

浏览器缓存。注意:删除数据时将清除所有缓存内容,并不仅限于您指定的范围。

cookies ( optional boolean )

浏览器的 Cookie。

downloads ( optional boolean )

浏览器的下载历史记录。

fileSystems ( optional boolean )

网站的文件系统数据。

formData ( optional boolean )

浏览器保存的表单数据。

history ( optional boolean )

浏览器的历史记录。

indexedDB ( optional boolean )

网站的 IndexedDB 数据。

localStorage ( optional boolean )

网站的本地存储数据。

serverBoundCertificates ( optional boolean )

服务器绑定的证书。

pluginData ( optional boolean )

插件数据。

passwords ( optional boolean )

保存的密码。

webSQL ( optional boolean )

网站的 WebSQL 数据。

方法

settings

chrome.browsingData.settings(function callback)

报告“清除浏览数据”用户界面中哪些类型的数据当前以选中。注意:该 API 中包含的某些数据类型不能在设置用户界面中访问,而某些用户界面设置控制这里列出的几种数据类型。

参数

callback ( function )

callback 参数应该指定一个如下形式的函数:

function(object result) {...};

result ( object )

属性

options ( RemovalOptions )

dataToRemove ( DataTypeSet )

所有类型都会在结果中存在,已选中并且允许删除的类型值为 true,否则为 false

dataRemovalPermitted ( DataTypeSet )

所有类型都会在结果中存在,如果允许删除(例如由企业策略控制)则值为 true,不允许则为 false

remove

chrome.browsingData.remove(RemovalOptions options, DataTypeSet dataToRemove, function callback)

清除储存在用户配置文件中的各种浏览数据。

参数

options ( RemovalOptions )

dataToRemove ( DataTypeSet )

要删除的数据类型的集合。

callback ( optional function )

删除完成时调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removeAppcache

chrome.browsingData.removeAppcache(RemovalOptions options, function callback)

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

参数

options ( RemovalOptions )

callback ( optional function )

网站的应用程序缓存数据清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removeCache

chrome.browsingData.removeCache(RemovalOptions options, function callback)

清除浏览器缓存。

参数

options ( RemovalOptions )

callback ( optional function )

浏览器缓存清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removeCookies

chrome.browsingData.removeCookies(RemovalOptions options, function callback)

清除特定时间段内的浏览器 Cookie 与修改过的服务器绑定证书。

参数

options ( RemovalOptions )

callback ( optional function )

浏览器 Cookie 与服务器绑定证书清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removeDownloads

chrome.browsingData.removeDownloads(RemovalOptions options, function callback)

清除浏览器中已下载的文件列表(不是已下载的文件本身)。

参数

options ( RemovalOptions )

callback ( optional function )

浏览器已下载文件列表清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removeFileSystems

chrome.browsingData.removeFileSystems(RemovalOptions options, function callback)

清除网站的文件系统数据。

参数

options ( RemovalOptions )

callback ( optional function )

网站的文件系统数据清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removeFormData

chrome.browsingData.removeFormData(RemovalOptions options, function callback)

清理浏览器保存的表单数据(自动填充)。

参数

options ( RemovalOptions )

callback ( optional function )

浏览器保存的表单数据清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removeHistory

chrome.browsingData.removeHistory(RemovalOptions options, function callback)

清除浏览历史记录。

参数

options ( RemovalOptions )

callback ( optional function )

浏览历史记录清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removeIndexedDB

chrome.browsingData.removeIndexedDB(RemovalOptions options, function callback)

清除网站的 IndexedDB 数据。

参数

options ( RemovalOptions )

callback ( optional function )

网站的 IndexedDB 数据清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removeLocalStorage

chrome.browsingData.removeLocalStorage(RemovalOptions options, function callback)

清理网站的本地存储数据。

参数

options ( RemovalOptions )

callback ( optional function )

网站的本地存储数据清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removePluginData

chrome.browsingData.removePluginData(RemovalOptions options, function callback)

清除插件数据。

参数

options ( RemovalOptions )

callback ( optional function )

插件数据清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removePasswords

chrome.browsingData.removePasswords(RemovalOptions options, function callback)

清除浏览器保存的密码。

参数

options ( RemovalOptions )

callback ( optional function )

浏览器保存的密码清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};

removeWebSQL

chrome.browsingData.removeWebSQL(RemovalOptions options, function callback)

清除网站的 WebSQL 数据。

参数

options ( RemovalOptions )

callback ( optional function )

网站的 WebSQL 数据清除后调用。

如果您指定了 callback 参数,它应该指定一个如下形式的函数:

function() {...};