Descripción
Usa la API de chrome.browsingData para quitar los datos de navegación del perfil local de un usuario.
Permisos
browsingDataDebes declarar el permiso "browsingData" en el manifiesto de la extensión para usar esta API.
{
"name": "My extension",
...
"permissions": [
"browsingData",
],
...
}
Conceptos y uso
El caso de uso más sencillo de esta API es un mecanismo basado en el tiempo para borrar los datos de navegación de un usuario.
Tu código debe proporcionar una marca de tiempo que indique la fecha histórica después de la cual se deben quitar los datos de navegación del usuario. Esta marca de tiempo tiene el formato de la cantidad de milisegundos desde el
tiempo Unix (que se puede recuperar de un objeto Date de JavaScript con el método getTime()).
Por ejemplo, para borrar todos los datos de navegación de un usuario de la última semana, puedes escribir el siguiente código:
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;
browser.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);
El método browser.browsingData.remove() te permite quitar varios tipos de datos de navegación con una sola llamada y será mucho más rápido que llamar a varios métodos más específicos. Sin embargo, si
solo quieres borrar un tipo específico de datos de navegación (cookies, por ejemplo), los métodos más detallados
ofrecen una alternativa legible a una llamada llena de 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;
browser.browsingData.removeCookies({
"since": oneWeekAgo
}, callback);
Si el usuario sincroniza sus datos, es posible que browser.browsingData.remove() vuelva a crear automáticamente la cookie
para la cuenta de sincronización después de borrarla. Esto es para garantizar que la Sincronización pueda seguir funcionando, de modo que
los datos se puedan borrar en el servidor. Sin embargo, se puede usar el browser.browsingData.removeCookies() más específico para borrar la cookie de la cuenta de Sincronización, y la Sincronización se pausará en este caso.
Orígenes específicos
Para quitar los datos de un origen específico o excluir un conjunto de orígenes de la eliminación, puedes usar los parámetros RemovalOptions.origins y RemovalOptions.excludeOrigins. Solo se pueden aplicar a
las cookies, la caché y el almacenamiento (CacheStorage, FileSystems, IndexedDB, LocalStorage, ServiceWorkers y
WebSQL).
browser.browsingData.remove({
"origins": ["https://www.example.com"]
}, {
"cacheStorage": true,
"cookies": true,
"fileSystems": true,
"indexedDB": true,
"localStorage": true,
"serviceWorkers": true,
"webSQL": true
}, callback);
Tipos de origen
Agregar una propiedad originTypes al objeto de opciones de las APIs te permite especificar qué tipos de orígenes deben verse afectados. Los orígenes se dividen en tres categorías:
unprotectedWebabarca el caso general de los sitios web que los usuarios visitan sin realizar ninguna acción especial. Si no especificas unoriginTypes, la API quita los datos de los orígenes web no protegidos de forma predeterminada.protectedWebabarca los orígenes web que se instalaron como aplicaciones alojadas. Por ejemplo, si instalas Angry Birds, se protegerá el origenhttps://chrome.angrybirds.comy se quitará de la categoríaunprotectedWeb. Ten cuidado cuando actives la eliminación de datos de estos orígenes: asegúrate de que los usuarios sepan lo que obtendrán, ya que se quitarán sus datos de juego de forma irrevocable. Nadie quiere derribar casas de cerditos más de lo necesario.extensionabarca los orígenes con el esquemachrome-extensions:. Nuevamente, debes tener mucho cuidado cuando quites datos de extensiones.
Podríamos ajustar el ejemplo anterior para quitar solo los datos de los sitios web protegidos de la siguiente manera:
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;
browser.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);
Ejemplos
Para probar esta API, instala el ejemplo de la API de browsingData del repositorio chrome-extension-samples.
Tipos
DataTypeSet
Un conjunto de tipos de datos. Los tipos de datos que faltan se interpretan como false.
Propiedades
-
appcache
booleano opcional
Obsoleta desde Chrome 152Se quitó la compatibilidad con appcache. Se ignorará este tipo de datos.
Cachés de aplicaciones de sitios web
-
Almacenamiento en caché
booleano opcional
La caché del navegador
-
cacheStorage
booleano opcional
Chrome 72 y versiones posteriores Navegador* desde Chrome 148Almacenamiento en caché
-
galletas
booleano opcional
Las cookies del navegador
-
descargas
booleano opcional
La lista de descargas del navegador.
-
fileSystems
booleano opcional
Sistemas de archivos de sitios web
-
formData
booleano opcional
Los datos de formularios almacenados en el navegador.
-
historial
booleano opcional
El historial del navegador
-
indexedDB
booleano opcional
Datos de IndexedDB de los sitios web
-
localStorage
booleano opcional
Los datos de almacenamiento local de los sitios web
-
contraseñas
booleano opcional
Obsoleto desde Chrome 144Se quitó la compatibilidad con la eliminación de contraseñas a través de extensiones. Se ignorará este tipo de datos.
Contraseñas almacenadas
-
pluginData
booleano opcional
Obsoleto desde Chrome 88Se quitó la compatibilidad con Flash. Se ignorará este tipo de datos.
Datos de los complementos.
-
serverBoundCertificates
booleano opcional
Obsoleto desde Chrome 76Se quitó la compatibilidad con los certificados vinculados al servidor. Se ignorará este tipo de datos.
Certificados vinculados al servidor
-
serviceWorkers
booleano opcional
Service workers.
-
webSQL
booleano opcional
Obsoleta desde Chrome 152Se quitó la compatibilidad con WebSQL. Se ignorará este tipo de datos.
Datos de WebSQL de los sitios web
RemovalOptions
Son opciones que determinan exactamente qué datos se quitarán.
Propiedades
-
excludeOrigins
string[] opcional
Chrome 74 y versiones posteriores browser.* desde Chrome 148Cuando están presentes, los datos de los orígenes de esta lista se excluyen de la eliminación. No se puede usar junto con
origins. Solo se admite para cookies, almacenamiento y caché. Las cookies se excluyen para todo el dominio registrable. -
originTypes
objeto opcional
Es un objeto cuyas propiedades especifican qué tipos de origen se deben borrar. Si no se especifica este objeto, se borran de forma predeterminada solo los orígenes "no protegidos". Asegúrate de que realmente quieres quitar los datos de la aplicación antes de agregar "protectedWeb" o "extensions".
-
extensión
booleano opcional
Extensiones y aplicaciones empaquetadas que instaló un usuario (ten _mucho_ cuidado).
-
protectedWeb
booleano opcional
Sitios web que se instalaron como aplicaciones alojadas (ten cuidado).
-
unprotectedWeb
booleano opcional
Sitios web normales
-
-
orígenes
[string, ...string[]] opcional
Chrome 74 y versiones posteriores browser.* desde Chrome 148Cuando está presente, solo se borran los datos de los orígenes de esta lista. Solo se admite para cookies, almacenamiento y caché. Se borran las cookies de todo el dominio registrable.
-
desde
number opcional
Quita los datos acumulados en esta fecha o después de ella, representados en milisegundos desde la época (accesible a través del método
getTimedel objetoDatede JavaScript). Si no se incluye, el valor predeterminado es 0 (lo que quitaría todos los datos de navegación).
Métodos
remove()
browser.browsingData.remove(
options: RemovalOptions,
dataToRemove: DataTypeSet,
): Promise<void>
Borra varios tipos de datos de navegación almacenados en el perfil de un usuario.
Parámetros
-
opciones
-
dataToRemove
Es el conjunto de tipos de datos que se quitarán.
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se completa la eliminación.
removeAppcache()
browser.browsingData.removeAppcache(
options: RemovalOptions,
): Promise<void>
Se quitó la compatibilidad con appcache. Esta función no tiene ningún efecto.
Borra los datos de la caché de apps de los sitios web.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borran los datos de la caché de la app de los sitios web.
removeCache()
browser.browsingData.removeCache(
options: RemovalOptions,
): Promise<void>
Borra la caché del navegador.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borra la caché del navegador.
removeCacheStorage()
browser.browsingData.removeCacheStorage(
options: RemovalOptions,
): Promise<void>
Borra los datos de almacenamiento en caché de los sitios web.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borra el almacenamiento en caché de los sitios web.
removeCookies()
browser.browsingData.removeCookies(
options: RemovalOptions,
): Promise<void>
Borra las cookies del navegador y los certificados vinculados al servidor que se modificaron en un período específico.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borran las cookies y los certificados vinculados al servidor del navegador.
removeDownloads()
browser.browsingData.removeDownloads(
options: RemovalOptions,
): Promise<void>
Borra la lista de archivos descargados del navegador (no los archivos descargados en sí).
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borra la lista de archivos descargados del navegador.
removeFileSystems()
browser.browsingData.removeFileSystems(
options: RemovalOptions,
): Promise<void>
Borra los datos del sistema de archivos de los sitios web.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borran los sistemas de archivos de los sitios web.
removeFormData()
browser.browsingData.removeFormData(
options: RemovalOptions,
): Promise<void>
Borra los datos de formularios almacenados en el navegador (autocompletar).
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borran los datos de formularios del navegador.
removeHistory()
browser.browsingData.removeHistory(
options: RemovalOptions,
): Promise<void>
Borra el historial del navegador.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borra el historial del navegador.
removeIndexedDB()
browser.browsingData.removeIndexedDB(
options: RemovalOptions,
): Promise<void>
Borra los datos de IndexedDB de los sitios web.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borran los datos de IndexedDB de los sitios web.
removeLocalStorage()
browser.browsingData.removeLocalStorage(
options: RemovalOptions,
): Promise<void>
Borra los datos de almacenamiento local de los sitios web.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borra el almacenamiento local de los sitios web.
removePasswords()
browser.browsingData.removePasswords(
options: RemovalOptions,
): Promise<void>
Se quitó la compatibilidad con la eliminación de contraseñas a través de extensiones. Esta función no tiene ningún efecto.
Borra las contraseñas almacenadas del navegador.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borran las contraseñas del navegador.
removePluginData()
browser.browsingData.removePluginData(
options: RemovalOptions,
): Promise<void>
Se quitó la compatibilidad con Flash. Esta función no tiene ningún efecto.
Borra los datos de los complementos.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borran los datos de los complementos.
removeServiceWorkers()
browser.browsingData.removeServiceWorkers(
options: RemovalOptions,
): Promise<void>
Borra los service workers de los sitios web.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borran los service workers de los sitios web.
removeWebSQL()
browser.browsingData.removeWebSQL(
options: RemovalOptions,
): Promise<void>
Se quitó la compatibilidad con WebSQL. Esta función no tiene ningún efecto.
Borra los datos de WebSQL de los sitios web.
Parámetros
-
opciones
Muestra
-
Promise<void>
Chrome 96 y versiones posteriores browser.* desde Chrome 148Se resuelve cuando se borran las bases de datos de WebSQL de los sitios web.
settings()
browser.browsingData.settings(): Promise<object>
Informa qué tipos de datos están seleccionados actualmente en la IU de configuración de "Borrar datos de navegación". Nota: Algunos de los tipos de datos incluidos en esta API no están disponibles en la IU de configuración, y algunos parámetros de configuración de la IU controlan más de un tipo de datos de los que se indican aquí.
Muestra
-
Promise<object>
Chrome 96 y versiones posteriores browser.* desde Chrome 148