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 Date 对象的 getTime 方法访问)。如果没有指定,则默认为 0(删除所有内容)。

object (可选)
originTypes

从 Chrome 21 开始支持。

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

boolean (可选)
unprotectedWeb

普通网站。

boolean (可选)
protectedWeb

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

boolean (可选)
extension

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

DataTypeSet

从 Chrome 27 开始支持。

数据类型的集合,未指定的数据类型认为是 false
属性
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) {...};
object result
RemovalOptions options
DataTypeSet dataToRemove

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

DataTypeSet dataRemovalPermitted

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

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() {...};

示例扩展程序