Описание
 Используйте 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 и более поздних версий, на других платформах необходимо использовать обратные вызовы.