Описание
Используйте API chrome.browsingData для удаления данных о просмотре страниц из локального профиля пользователя.
Разрешения
browsingData Для использования этого API необходимо указать разрешение "browsingData" в манифесте расширения .
{
"name": "My extension",
...
"permissions": [
"browsingData",
],
...
}
Понятия и применение
Простейший вариант использования этого API — механизм очистки данных просмотра пользователя на основе времени. Ваш код должен предоставлять метку времени, указывающую историческую дату, после которой данные просмотра пользователя должны быть удалены. Эта метка времени форматируется как количество миллисекунд с начала эпохи Unix (которое можно получить из объекта Date JavaScript с помощью метода 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 для учетной записи синхронизации после ее очистки. Это необходимо для обеспечения дальнейшей работы синхронизации, чтобы данные в конечном итоге могли быть удалены с сервера. Однако для очистки cookie для учетной записи синхронизации можно использовать более специфический метод chrome.browsingData.removeCookies() , и в этом случае синхронизация будет приостановлена.
Конкретные истоки
Для удаления данных из определенного источника или исключения набора источников из удаления можно использовать параметры 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, установите пример browsingData API из репозитория chrome-extension-samples .
Типы
DataTypeSet
Набор типов данных. Отсутствующие типы данных интерпретируются как false .
Характеристики
- кэш приложений
логический необязательный
Кэширование веб-сайтов.
- кэш
логический необязательный
Кеш браузера.
- cacheStorage
логический необязательный
Chrome 72+кэш-память
- файлы cookie
логический необязательный
Файлы cookie браузера.
- загрузки
логический необязательный
Список загрузок браузера.
- файловые системы
логический необязательный
Файловые системы веб-сайтов.
- формаДанные
логический необязательный
Сохраненные в браузере данные формы.
- история
логический необязательный
История браузера.
- индексированная база данных
логический необязательный
Данные веб-сайтов в IndexedDB.
- локальное хранилище
логический необязательный
Данные локального хранилища веб-сайтов.
- пароли
логический необязательный
Устарело с версии Chrome 144.Поддержка удаления паролей через расширения удалена. Этот тип данных будет игнорироваться.
Сохраненные пароли.
- pluginData
логический необязательный
Устарело с версии Chrome 88.Поддержка Flash-памяти прекращена. Этот тип данных будет игнорироваться.
Данные плагинов.
- serverBoundCertificates
логический необязательный
Устарело с версии Chrome 76.Поддержка сертификатов, привязанных к серверу, удалена. Этот тип данных будет игнорироваться.
Сертификаты, привязанные к серверу.
- работники сферы услуг
логический необязательный
Работники сферы услуг.
- веб-SQL
логический необязательный
Данные WebSQL веб-сайтов.
RemovalOptions
Параметры, определяющие, какие именно данные будут удалены.
Характеристики
- excludeOrigins
строка[] необязательный
Chrome 74+При наличии данные об источниках из этого списка исключаются из удаления. Не может использоваться совместно с
origins. Поддерживается только для файлов cookie, хранилища и кэша. Файлы cookie исключаются для всего регистрируемого домена. - originTypes
объект необязательный
Объект, свойства которого определяют, какие типы источников следует очистить. Если этот объект не указан, по умолчанию очищаются только «незащищенные» источники. Пожалуйста, убедитесь, что вы действительно хотите удалить данные приложения, прежде чем добавлять 'protectedWeb' или 'extensions'.
- расширение
логический необязательный
Расширения и установленные пользователем пакеты приложений (будьте _очень_ осторожны!).
- protectedWeb
логический необязательный
Веб-сайты, установленные в качестве размещенных приложений (будьте осторожны!).
- незащищенный веб
логический необязательный
Обычные веб-сайты.
- происхождение
[строка, ...строка[]] необязательный
Chrome 74+При наличии удаляются только данные для источников из этого списка. Поддерживается только для файлов cookie, хранилища и кэша. Файлы cookie удаляются для всего регистрируемого домена.
- с
число необязательно
Удаляет данные, накопленные в указанную дату или после нее, представленные в миллисекундах с начала эпохи (доступны через метод
getTimeобъекта JavaScriptDate). Если значение отсутствует, по умолчанию равно 0 (что удалит все данные просмотра).
Методы
remove()
chrome.browsingData.remove(
options: RemovalOptions,
dataToRemove: DataTypeSet,
): Promise<void>
Удаляет различные типы данных о просмотре веб-страниц, хранящиеся в профиле пользователя.
Параметры
- параметры
- dataToRemove
Набор типов данных, подлежащих удалению.
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после завершения удаления.
removeAppcache()
chrome.browsingData.removeAppcache(
options: RemovalOptions,
): Promise<void>
Очищает кэш приложений веб-сайтов.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки кэша приложений веб-сайта.
removeCache()
chrome.browsingData.removeCache(
options: RemovalOptions,
): Promise<void>
Очищает кэш браузера.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки кэша браузера.
removeCacheStorage()
chrome.browsingData.removeCacheStorage(
options: RemovalOptions,
): Promise<void>
Очищает кэш веб-сайта.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки кэша веб-сайта.
removeCookies()
chrome.browsingData.removeCookies(
options: RemovalOptions,
): Promise<void>
Удаляет файлы cookie браузера и сертификаты, привязанные к серверу, измененные в течение определенного периода времени.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки файлов cookie браузера и сертификатов, привязанных к серверу.
removeDownloads()
chrome.browsingData.removeDownloads(
options: RemovalOptions,
): Promise<void>
Очищает список загруженных файлов в браузере ( но не сами загруженные файлы).
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки списка загруженных файлов в браузере.
removeFileSystems()
chrome.browsingData.removeFileSystems(
options: RemovalOptions,
): Promise<void>
Очищает файловые данные веб-сайтов.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки файловых систем веб-сайтов.
removeFormData()
chrome.browsingData.removeFormData(
options: RemovalOptions,
): Promise<void>
Очищает сохраненные в браузере данные формы (автозаполнение).
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки данных формы в браузере.
removeHistory()
chrome.browsingData.removeHistory(
options: RemovalOptions,
): Promise<void>
Очищает историю браузера.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки истории браузера.
removeIndexedDB()
chrome.browsingData.removeIndexedDB(
options: RemovalOptions,
): Promise<void>
Очищает данные IndexedDB веб-сайтов.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки данных IndexedDB на веб-сайтах.
removeLocalStorage()
chrome.browsingData.removeLocalStorage(
options: RemovalOptions,
): Promise<void>
Очищает данные локального хранилища веб-сайтов.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки локального хранилища веб-сайта.
removePasswords()
chrome.browsingData.removePasswords(
options: RemovalOptions,
): Promise<void>
Поддержка удаления паролей через расширения удалена. Эта функция не работает.
Удаляет сохраненные в браузере пароли.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после удаления паролей браузера.
removePluginData()
chrome.browsingData.removePluginData(
options: RemovalOptions,
): Promise<void>
Поддержка Flash удалена. Эта функция не работает.
Очищает данные плагинов.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки данных плагинов.
removeServiceWorkers()
chrome.browsingData.removeServiceWorkers(
options: RemovalOptions,
): Promise<void>
Очищает серверные ресурсы веб-сайтов.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки серверных процессов веб-сайта.
removeWebSQL()
chrome.browsingData.removeWebSQL(
options: RemovalOptions,
): Promise<void>
Очищает данные WebSQL веб-сайтов.
Параметры
- параметры
Возвраты
Обещание<пустота>
Chrome 96+Проблема решается после очистки баз данных WebSQL веб-сайтов.
settings()
chrome.browsingData.settings(): Promise<object>
Сообщает, какие типы данных в данный момент выбраны в пользовательском интерфейсе настроек «Очистить данные просмотра». Примечание: некоторые типы данных, включенные в этот API, недоступны в пользовательском интерфейсе настроек, а некоторые параметры пользовательского интерфейса управляют более чем одним типом данных, перечисленным здесь.
Возвраты
Promise<object>
Chrome 96+