Описание
Используйте API chrome.browsingData
для удаления данных о просмотре страниц из локального профиля пользователя.
Разрешения
browsingData
Манифест
Для использования этого API необходимо объявить разрешение «browsingData» в манифесте расширения .
{
"name": "My extension",
...
"permissions": [
"browsingData",
],
...
}
Использование
Простейший вариант использования этого API — механизм очистки данных о просмотренных страницах пользователя на основе времени. Ваш код должен предоставлять временную метку, указывающую дату, после которой данные о просмотренных страницах пользователя должны быть удалены. Эта временная метка форматируется как количество миллисекунд с начала эпохи Unix (которое можно получить из объекта JavaScript Date
с помощью метода getTime
).
Например, чтобы очистить все данные о просмотрах пользователя за последнюю неделю, вы можете написать следующий код:
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,
"cacheStorage": true,
"cookies": true,
"downloads": true,
"fileSystems": true,
"formData": true,
"history": true,
"indexedDB": true,
"localStorage": true,
"passwords": true,
"serviceWorkers": true,
"webSQL": true
}, callback);
Метод chrome.browsingData.remove
позволяет удалить различные типы данных браузера одним вызовом, что гораздо быстрее, чем вызов нескольких более специализированных методов. Однако, если вам нужно удалить только один конкретный тип данных браузера (например, файлы cookie), более детальные методы предлагают удобную альтернативу вызову, заполненному 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);
Если пользователь синхронизирует свои данные, chrome.browsingData.remove
может автоматически пересоздать cookie для учётной записи Sync после её очистки. Это необходимо для обеспечения дальнейшей работы Sync, чтобы данные могли быть удалены с сервера. Однако более специфичный метод chrome.browsingData.removeCookies
можно использовать для очистки cookie для учётной записи Sync, и в этом случае синхронизация будет приостановлена.
Конкретные источники
Чтобы удалить данные из определённого источника или исключить набор источников из удаления, можно использовать параметры RemovalOptions.origins
и RemovalOptions.excludeOrigins
. Они применимы только к файлам cookie, кэшу и хранилищам (CacheStorage, FileSystems, IndexedDB, LocalStorage, ServiceWorkers и WebSQL).
chrome.browsingData.remove({
"origins": ["https://www.example.com"]
}, {
"cacheStorage": true,
"cookies": true,
"fileSystems": true,
"indexedDB": true,
"localStorage": true,
"serviceWorkers": true,
"webSQL": true
}, callback);
Типы происхождения
Добавление свойства originTypes
к объекту параметров API позволяет указать, какие типы источников должны быть задействованы. В настоящее время источники делятся на три категории:
-
unprotectedWeb
охватывает общий случай веб-сайтов, которые пользователи посещают, не выполняя никаких специальных действий. Если не указатьoriginTypes
, API по умолчанию удаляет данные с незащищённых веб-источников. -
protectedWeb
защищает веб-источники, установленные как размещённые приложения. Например, установка Angry Birds защищает источникhttps://chrome.angrybirds.com
и удаляет его из категорииunprotectedWeb
-источников. Будьте осторожны, удаляя данные для этих источников: убедитесь, что ваши пользователи знают, что они получают, так как это безвозвратно удалит их игровые данные. Никто не хочет рушить маленькие свинарники чаще, чем необходимо. -
extension
охватывает источники в рамках схемыchrome-extensions:
Удаление данных расширения, опять же, требует особой осторожности.
Мы могли бы адаптировать предыдущий пример так, чтобы удалять только данные с защищенных веб-сайтов, следующим образом:
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,
"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);
Примеры
Чтобы опробовать этот API, установите пример API browsingData из репозитория chrome-extension-samples .
Типы
DataTypeSet
Набор типов данных. Отсутствующие типы данных интерпретируются как false
.
Характеристики
- кэш приложений
логическое необязательное
Кэши приложений веб-сайтов.
- кэш
логическое необязательное
Кэш браузера.
- кэш-хранилище
логическое необязательное
Хром 72+Кэш-хранилище
- печенье
логическое необязательное
Файлы cookie браузера.
- загрузки
логическое необязательное
Список загрузок браузера.
- файловые системы
логическое необязательное
Файловые системы веб-сайтов.
- formData
логическое необязательное
Данные форм, сохраненные браузером.
- история
логическое необязательное
История браузера.
- indexedDB
логическое необязательное
Данные IndexedDB веб-сайтов.
- локальное хранилище
логическое необязательное
Локальное хранилище данных веб-сайтов.
- пароли
логическое необязательное
Сохраненные пароли.
- pluginData
логическое необязательное
Не рекомендуется с версии Chrome 88Поддержка Flash прекращена. Этот тип данных будет игнорироваться.
Данные плагинов.
- serverBoundCertificates
логическое необязательное
Установился со времен хрома 76Поддержка сертификатов, привязанных к серверу, прекращена. Этот тип данных будет игнорироваться.
Сертификаты, привязанные к серверу.
- serviceWorkers
логическое необязательное
Работники сферы услуг.
- webSQL
логическое необязательное
Данные WebSQL веб-сайтов.
RemovalOptions
Параметры, определяющие, какие именно данные будут удалены.
Характеристики
- исключитьПроисхождение
строка[] необязательная
Хром 74+При наличии данные об источниках из этого списка исключаются из удаления. Не может использоваться вместе с
origins
. Поддерживается только для файлов cookie, хранилища и кэша. Файлы cookie исключаются для всего регистрируемого домена. - originTypes
объект необязательный
Объект, свойства которого определяют, какие типы источников следует очистить. Если этот объект не указан, по умолчанию очищаются только «незащищённые» источники. Перед добавлением «protectedWeb» или «extensions» убедитесь, что вы действительно хотите удалить данные приложения.
- расширение
логическое необязательное
Расширения и пакетные приложения, установленные пользователем (будьте _очень_ осторожны!).
- protectedWeb
логическое необязательное
Веб-сайты, установленные как размещенные приложения (будьте осторожны!).
- незащищенный веб
логическое необязательное
Обычные сайты.
- происхождение
[строка, ...строка[]] необязательно
Хром 74+При наличии удаляются только данные источников из этого списка. Поддерживается только для файлов cookie, хранилища и кэша. Файлы cookie удаляются для всего регистрируемого домена.
- с
номер необязательно
Удалить данные, накопленные на указанную дату или после неё, представленные в миллисекундах с начала эпохи (доступны через метод
getTime
объекта JavaScriptDate
). Если значение отсутствует, по умолчанию используется значение 0 (что удалит все данные о просмотре).
Методы
remove()
chrome.browsingData.remove(
options: RemovalOptions,
dataToRemove: DataTypeSet,
callback?: function,
): Promise<void>
Очищает различные типы данных о просмотренных страницах, хранящиеся в профиле пользователя.
Параметры
- параметры
- данные для удаления
Набор типов данных для удаления.
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeAppcache()
chrome.browsingData.removeAppcache(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает данные кэша приложений веб-сайтов.
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeCache()
chrome.browsingData.removeCache(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает кэш браузера.
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeCacheStorage()
chrome.browsingData.removeCacheStorage(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает данные кэша веб-сайтов.
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeCookies()
chrome.browsingData.removeCookies(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает файлы cookie браузера и привязанные к серверу сертификаты, измененные за определенный период времени.
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeDownloads()
chrome.browsingData.removeDownloads(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает список загруженных файлов браузера ( а не сами загруженные файлы).
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeFileSystems()
chrome.browsingData.removeFileSystems(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает данные файловой системы веб-сайтов.
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeFormData()
chrome.browsingData.removeFormData(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает сохраненные данные форм браузера (автозаполнение).
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeHistory()
chrome.browsingData.removeHistory(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает историю браузера.
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeIndexedDB()
chrome.browsingData.removeIndexedDB(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает данные IndexedDB веб-сайтов.
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeLocalStorage()
chrome.browsingData.removeLocalStorage(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает локальное хранилище данных веб-сайтов.
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removePasswords()
chrome.browsingData.removePasswords(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает сохраненные пароли браузера.
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removePluginData()
chrome.browsingData.removePluginData(
options: RemovalOptions,
callback?: function,
): Promise<void>
Поддержка Flash прекращена. Эта функция не работает.
Очищает данные плагинов.
Параметры
- варианты
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeServiceWorkers()
chrome.browsingData.removeServiceWorkers(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает сервисные работники веб-сайтов.
Параметры
- параметры
- обратный вызов
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
removeWebSQL()
chrome.browsingData.removeWebSQL(
options: RemovalOptions,
callback?: function,
): Promise<void>
Очищает данные WebSQL веб-сайтов.
Параметры
- параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:() => void
Возврат
Обещание<void>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.
settings()
chrome.browsingData.settings(
callback?: function,
): Promise<object>
Сообщает, какие типы данных в данный момент выбраны в настройках интерфейса «Очистить данные браузера». Примечание: некоторые типы данных, включённые в этот API, недоступны в настройках интерфейса, а некоторые настройки интерфейса управляют более чем одним типом данных, перечисленным здесь.
Параметры
- перезвонить
функция необязательна
Параметр
callback
выглядит так:(result: object) => void
- результат
объект
- Удаление данных разрешено
Все типы будут присутствовать в результате со значениями
true
, если их удаление разрешено (например, политикой предприятия), иfalse
в противном случае. - данные для удаления
Все типы будут присутствовать в результате со значениями
true
, если они оба выбраны для удаления и разрешены для удаления, в противном случаеfalse
. - параметры
Возврат
Обещание<объект>
Хром 96+Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.