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

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

    Установился со времен хрома 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,
  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 72+
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 88
chrome.browsingData.removePluginData(
  options: RemovalOptions,
  callback?: function,
)
: Promise<void>

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

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

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    () => void

Возврат

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

    Хром 96+

    Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.

removeServiceWorkers()

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