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 using the getTime()
method).
For example, to clear all of a user's browsing data from the last week, you might write code as follows:
varcallback=function(){// Do something clever here once data has been removed.};varmillisecondsPerWeek=1000*60*60*24*7;varoneWeekAgo=(newDate()).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);
The chrome.browsingData.remove()
method lets you 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.
varcallback=function(){// Do something clever here once data has been removed.};varmillisecondsPerWeek=1000*60*60*24*7;varoneWeekAgo=(newDate()).getTime()-millisecondsPerWeek;chrome.browsingData.removeCookies({"since":oneWeekAgo},callback);
If the user is syncing their data, chrome.browsingData.remove()
may automatically rebuild the cookie for the Sync account after clearing it. This is to ensure that Sync can continue working, so that the data can be eventually deleted on the server. However the more specific chrome.browsingData.removeCookies()
can be used to clear the cookie for the Sync account, and Sync will be paused in this case.
To remove data for a specific origin or to exclude a set of origins from deletion, you can use the RemovalOptions.origins
and RemovalOptions.excludeOrigins
parameters. They can only be applied to cookies, cache, and storage (CacheStorage, FileSystems, IndexedDB, LocalStorage, ServiceWorkers, and WebSQL).
chrome.browsingData.remove({"origins":["https://www.example.com"]},{"cacheStorage":true,"cookies":true,"fileSystems":true,"indexedDB":true,"localStorage":true,"serviceWorkers":true,"webSQL":true},callback);
Adding an originTypes
property to the APIs options object lets you specify which types of origins ought to be effected. 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 originTypes
, 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 https://chrome.angrybirds.com
, and removes it from the unprotectedWeb
category. 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:
varcallback=function(){// Do something clever here once data has been removed.};varmillisecondsPerWeek=1000*60*60*24*7;varoneWeekAgo=(newDate()).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);
To try this API, install the browsingData API example from the chrome-extension-samples repository.
A set of data types. Missing data types are interpreted as false
.
boolean optional
Websites' appcaches.
boolean optional
The browser's cache.
boolean optional
Cache storage
boolean optional
The browser's cookies.
boolean optional
The browser's download list.
boolean optional
Websites' file systems.
boolean optional
The browser's stored form data.
boolean optional
The browser's history.
boolean optional
Websites' IndexedDB data.
boolean optional
Websites' local storage data.
boolean optional
Stored passwords.
boolean optional
Support for Flash has been removed. This data type will be ignored.
Plugins' data.
boolean optional
Support for server-bound certificates has been removed. This data type will be ignored.
Server-bound certificates.
boolean optional
Service Workers.
boolean optional
Websites' WebSQL data.
Options that determine exactly what data will be removed.
string[] optional
When present, data for origins in this list is excluded from deletion. Can't be used together with origins
. Only supported for cookies, storage and cache. Cookies are excluded for the whole registrable domain.
object optional
An object whose properties specify which origin types ought to be cleared. If this object isn't specified, it defaults to clearing only "unprotected" origins. Please ensure that you really want to remove application data before adding 'protectedWeb' or 'extensions'.
boolean optional
Extensions and packaged applications a user has installed (be _really_ careful!).
boolean optional
Websites that have been installed as hosted applications (be careful!).
boolean optional
Normal websites.
[string, ...string[]] optional
When present, only data for origins in this list is deleted. Only supported for cookies, storage and cache. Cookies are cleared for the whole registrable domain.
number optional
Remove data accumulated on or after this date, represented in milliseconds since the epoch (accessible via the getTime
method of the JavaScript Date
object). If absent, defaults to 0 (which would remove all browsing data).
chrome.browsingData.remove(
options: RemovalOptions,
dataToRemove: DataTypeSet,
callback?: function,
)
Clears various types of browsing data stored in a user's profile.
The set of data types to remove.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeAppcache(
options: RemovalOptions,
callback?: function,
)
Clears websites' appcache data.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeCache(
options: RemovalOptions,
callback?: function,
)
Clears the browser's cache.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeCacheStorage(
options: RemovalOptions,
callback?: function,
)
Clears websites' cache storage data.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeCookies(
options: RemovalOptions,
callback?: function,
)
Clears the browser's cookies and server-bound certificates modified within a particular timeframe.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeDownloads(
options: RemovalOptions,
callback?: function,
)
Clears the browser's list of downloaded files (not the downloaded files themselves).
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeFileSystems(
options: RemovalOptions,
callback?: function,
)
Clears websites' file system data.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeFormData(
options: RemovalOptions,
callback?: function,
)
Clears the browser's stored form data (autofill).
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeHistory(
options: RemovalOptions,
callback?: function,
)
Clears the browser's history.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeIndexedDB(
options: RemovalOptions,
callback?: function,
)
Clears websites' IndexedDB data.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeLocalStorage(
options: RemovalOptions,
callback?: function,
)
Clears websites' local storage data.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removePasswords(
options: RemovalOptions,
callback?: function,
)
Clears the browser's stored passwords.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removePluginData(
options: RemovalOptions,
callback?: function,
)
Support for Flash has been removed. This function has no effect.
Clears plugins' data.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeServiceWorkers(
options: RemovalOptions,
callback?: function,
)
Clears websites' service workers.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.removeWebSQL(
options: RemovalOptions,
callback?: function,
)
Clears websites' WebSQL data.
function optional
The callback
parameter looks like: () => void
Promise<void>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
chrome.browsingData.settings(
callback?: function,
)
Reports which types of data are currently selected in the 'Clear browsing data' settings UI. Note: some of the data types included in this API are not available in the settings UI, and some UI settings control more than one data type listed here.
function optional
The callback
parameter looks like: (result: object) => void
object
All of the types will be present in the result, with values of true
if they are permitted to be removed (e.g., by enterprise policy) and false
if not.
All of the types will be present in the result, with values of true
if they are both selected to be removed and permitted to be removed, otherwise false
.
Promise<object>
Promises are supported in Manifest V3 and later, but callbacks are provided for backward compatibility. You cannot use both on the same function call. The promise resolves with the same type that is passed to the callback.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-10-15 UTC.