chrome.browsingData

Описание

Используйте 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

    логическое необязательное

    Не рекомендуется с Chrome 76

    Поддержка сертификатов, привязанных к серверу, прекращена. Этот тип данных будет игнорироваться.

    Сертификаты, привязанные к серверу.

  • serviceWorkers

    логическое необязательное

    Работники сферы услуг.

  • webSQL

    логическое необязательное

    Данные WebSQL веб-сайтов.

RemovalOptions

Параметры, определяющие, какие именно данные будут удалены.

Характеристики

  • исключитьПроисхождение

    строка[] необязательная

    Хром 74+

    При наличии данные об источниках из этого списка исключаются из удаления. Не может использоваться вместе с origins . Поддерживается только для файлов cookie, хранилища и кэша. Файлы cookie исключаются для всего регистрируемого домена.

  • originTypes

    объект необязательный

    Объект, свойства которого определяют, какие типы источников следует очистить. Если этот объект не указан, по умолчанию очищаются только «незащищённые» источники. Перед добавлением «protectedWeb» или «extensions» убедитесь, что вы действительно хотите удалить данные приложения.

    • расширение

      логическое необязательное

      Расширения и пакетные приложения, установленные пользователем (будьте _очень_ осторожны!).

    • protectedWeb

      логическое необязательное

      Веб-сайты, установленные как размещенные приложения (будьте осторожны!).

    • незащищенный веб

      логическое необязательное

      Обычные сайты.

  • происхождение

    [строка, ...строка[]] необязательно

    Хром 74+

    При наличии удаляются только данные источников из этого списка. Поддерживается только для файлов cookie, хранилища и кэша. Файлы cookie удаляются для всего регистрируемого домена.

  • с

    номер необязательный

    Удалить данные, накопленные на указанную дату или после неё, представленные в миллисекундах с начала эпохи (доступны через метод getTime объекта JavaScript Date ). Если значение отсутствует, по умолчанию используется значение 0 (что удалит все данные о просмотре).

Методы

remove()

chrome.browsingData.remove(
  options: RemovalOptions,
  dataToRemove: DataTypeSet,
)
: Promise<void>

Очищает различные типы данных о просмотренных страницах, хранящиеся в профиле пользователя.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeAppcache()

chrome.browsingData.removeAppcache(
  options: RemovalOptions,
)
: Promise<void>

Очищает данные кэша приложений веб-сайтов.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeCache()

chrome.browsingData.removeCache(
  options: RemovalOptions,
)
: Promise<void>

Очищает кэш браузера.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeCacheStorage()

Хром 72+
chrome.browsingData.removeCacheStorage(
  options: RemovalOptions,
)
: Promise<void>

Очищает данные кэша веб-сайтов.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeCookies()

chrome.browsingData.removeCookies(
  options: RemovalOptions,
)
: Promise<void>

Очищает файлы cookie браузера и привязанные к серверу сертификаты, измененные за определенный период времени.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeDownloads()

chrome.browsingData.removeDownloads(
  options: RemovalOptions,
)
: Promise<void>

Очищает список загруженных файлов браузера ( а не сами загруженные файлы).

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeFileSystems()

chrome.browsingData.removeFileSystems(
  options: RemovalOptions,
)
: Promise<void>

Очищает данные файловой системы веб-сайтов.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeFormData()

chrome.browsingData.removeFormData(
  options: RemovalOptions,
)
: Promise<void>

Очищает сохраненные данные форм браузера (автозаполнение).

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeHistory()

chrome.browsingData.removeHistory(
  options: RemovalOptions,
)
: Promise<void>

Очищает историю браузера.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeIndexedDB()

chrome.browsingData.removeIndexedDB(
  options: RemovalOptions,
)
: Promise<void>

Очищает данные IndexedDB веб-сайтов.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeLocalStorage()

chrome.browsingData.removeLocalStorage(
  options: RemovalOptions,
)
: Promise<void>

Очищает локальное хранилище данных веб-сайтов.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removePasswords()

chrome.browsingData.removePasswords(
  options: RemovalOptions,
)
: Promise<void>

Очищает сохраненные пароли браузера.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removePluginData()

Не рекомендуется с версии Chrome 88
chrome.browsingData.removePluginData(
  options: RemovalOptions,
)
: Promise<void>

Поддержка Flash прекращена. Эта функция не работает.

Очищает данные плагинов.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeServiceWorkers()

Хром 72+
chrome.browsingData.removeServiceWorkers(
  options: RemovalOptions,
)
: Promise<void>

Очищает сервисные работники веб-сайтов.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

removeWebSQL()

chrome.browsingData.removeWebSQL(
  options: RemovalOptions,
)
: Promise<void>

Очищает данные WebSQL веб-сайтов.

Параметры

Возврат

  • Обещание<void>

    Хром 96+

settings()

chrome.browsingData.settings(): Promise<object>

Сообщает, какие типы данных в данный момент выбраны в настройках интерфейса «Очистить данные браузера». Примечание: некоторые типы данных, включённые в этот API, недоступны в настройках интерфейса, а некоторые настройки интерфейса управляют более чем одним типом данных, перечисленным здесь.

Возврат

  • Обещание<объект>

    Хром 96+