Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 3.0 License, and code samples are licensed under the BSD License.
©2012 Google
Use the chrome.browsingData
module to remove browsing data from a
user's local profile.
You must declare the "browsingData" permission in the extension manifest to use this API.
{ "name": "My extension", ... "permissions": [ "browsingData", ], ... }
The simplest use-case for this API is a a time-based mechanism for clearing a
user's browsing data. Your code should provide a timestamp which indicates the
historical date after which the user's browsing data should be removed. This
timestamp is formatted as the number of milliseconds since the Unix epoch
(which can be retrieved from a JavaScript Date
object via the
getTime
method).
For example, to clear all of a user's browsing data from the last week, you might write code as follows:
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, "cookies": true, "downloads": true, "fileSystems": true, "formData": true, "history": true, "indexedDB": true, "localStorage": true, "pluginData": true, "passwords": true, "webSQL": true }, callback);
The chrome.browsingData.remove
method allows you to remove
various types of browsing data with a single call, and will be much faster
than calling multiple more specific methods. If, however, you only want to
clear one specific type of browsing data (cookies, for example), the more
granular methods offer a readable alternative to a call filled with 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);
Important: Removing browsing data involves a good deal of heavy lifting in the background, and can take tens of seconds to complete, depending on a user's profile. You should use the callback mechanism to keep your users up to date on the removal's status.
Adding an originType
property to the API's options object allows
you to specify which types of origins ought to be effected. Currently, origins
are divided into three categories:
unprotectedWeb
covers the general case of websites that users
visit without taking any special action. If you don't specify an
originType
, the API defaults to removing data from unprotected
web origins.
protectedWeb
covers those web origins that have been installed
as hosted applications. Installing
Angry Birds, for example, protects the origin
http://chrome.angrybirds.com
, and removes it from the
unprotectedWeb
category. Please do be careful when triggering
deletion of data for these origins: make sure your users know what they're
getting, as this will irrevocably remove their game data. No one wants to
knock tiny pig houses over more often than necessary.
extension
covers origins under the
chrome-extensions:
scheme. Removing extension data is, again,
something you should be very careful about.
We could adjust the previous example to remove only data from protected websites as follows:
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, "originType": { "protectedWeb": true } }, { "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);
Seriously: Be careful with protectedWeb
and
extension
. These are destructive operations that your users
will write angry email about if they're not well-informed about what to
expect when your extension removes data on their behalf.
Samples for the browsingData
API are available
on the samples page.
Clears various types of browsing data stored in a user's profile.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears websites' appcache data.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears the browser's cache.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears the browser's cookies modified within a particular timeframe.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears the browser's list of downloaded files (not the downloaded files themselves).
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears websites' file system data.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears the browser's stored form data (autofill).
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears the browser's history.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears websites' IndexedDB data.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears websites' local storage data.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears plugins' data.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears the browser's stored passwords.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};
Clears websites' WebSQL data.
If you specify the callback parameter, it should specify a function that looks like this:
function() {...};