Spec-Zone.ru › Web Extensions

хранилище

Позволяет расширениям сохранять и извлекать данные, а также прослушивать изменения сохранённых элементов.

Система хранения основана на API веб-хранилища, с некоторыми отличиями. Среди прочих отличий:

  • Она асинхронна.
  • Значения ограничены расширением, а не конкретным доменным именем (то есть один и тот же набор пар «ключ-значение» доступен всем скриптам в контексте фоновых процессов и скриптах содержимого).
  • Сохраняемые значения могут быть любым JSON-совместимым значением, а не только String. В том числе: Array и Object, но только если их содержимое можно представить в формате JSON, что не включает узлы DOM. Вам не нужно преобразовывать свои значения в JSON Strings перед их сохранением, но они представлены в формате JSON во внутреннем представлении, поэтому требуется, чтобы они были JSON-совместимыми.
  • Несколько пар «ключ-значение» могут быть установлены или извлечены в одном вызове API.

Для использования этого API вам необходимо включить "storage" разрешение в вашем файле manifest.json.

Каждое расширение имеет свою область хранения, которую можно разделить на разные типы хранения.

Хотя этот API похож на Window.localStorage, рекомендуется не использовать Window.localStorage в коде расширения для хранения данных, связанных с расширением. Firefox очистит данные, сохранённые расширениями с помощью API localStorage в различных сценариях, когда пользователи очищают историю просмотров и данные для обеспечения конфиденциальности, в то время как данные, сохранённые с помощью API storage.local, будут правильно сохранены в этих сценариях.

Вы можете просмотреть сохранённые данные в элементе «Хранилище расширения» в вкладке «Инспектор хранилища» Инспектора хранилища в инструментах разработчика, доступных из about:debugging.

Примечание: Область хранения не зашифрована и не должна использоваться для хранения конфиденциальной информации пользователя.

Типы

storage.StorageArea

Объект, представляющий область хранения.

storage.StorageChange

Объект, представляющий изменение в области хранения.

Свойства

storage имеет четыре свойства, представляющие различные типы доступных областей хранения.

storage.local

Представляет локальную область хранения. Элементы в local хранилище локальны для компьютера, на котором было установлено расширение.

storage.managed

Представляет область хранения managed. Элементы в managed хранилище устанавливаются администратором домена и являются только для чтения для расширения. Попытка изменить этот пространство имён приводит к ошибке.

storage.session

Представляет сессионную область хранения. Элементы в session хранилище хранятся в памяти и не сохраняются на диск.

storage.sync

Представляет область синхронизации sync. Элементы в sync хранилище синхронизируются браузером и доступны во всех экземплярах этого браузера, в которые вошел пользователь, на разных устройствах.

События

storage.onChanged

Срабатывает, когда один или несколько элементов меняются в любой из областей хранения.

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet
StorageArea Да 14 45 ? Да 14 ? ? 48 ? 15 ?
StorageChange Да 14 45 ? Да 14 ? ? 48 ? 15 ?
local Да 14
45API хранилища поддерживается в скриптах содержимого начиная с версии 48.
? Да 14 ? ? 48 ? 15 ?
managed Да 79
45["Не поддерживаются платформенно-специфические бэкэнды хранилища, такие как ключи реестра Windows.", "Не поддерживается принудительное выполнение схем хранилища, предоставляемых расширением.", "Событие onChanged не поддерживается."]
? Нет Нет ? ? Нет ? Нет ?
onChanged Да 14 45 ? Да 14 ? ? 48 ? 15 ?
session
102До версии 112 лимит квоты хранилища составлял 1 МБ.
102До версии 112 лимит квоты хранилища составлял 1 МБ.
Нет ?
88До версии 98 лимит квоты хранилища составлял 1 МБ.
16.4 ? ? Нет ? 16.4 ?
sync Да 15
53До версии 79 лимит квоты хранилища не применялся.
? Нет
14["Safari не синхронизирует элементы, сохранённые в sync хранилище, т. е. он ведет себя так же, как local хранилище.", "Safari 15 и 15.1 ошибочно сохраняют элементы синхронизации в local хранилище. Если элементы синхронизации не найдены, проверьте их в local хранилище и выполните одноразовую миграцию в sync хранилище."]
? ? Нет ?
15["Safari не синхронизирует элементы, сохранённые в sync хранилище, т. е. он ведет себя так же, как local хранилище.", "Safari 15 и 15.1 ошибочно сохраняют элементы синхронизации в local хранилище. Если элементы синхронизации не найдены, проверьте их в local хранилище и выполните одноразовую миграцию в sync хранилище."]
?

Примеры расширений

  • annotate-page
  • favourite-colour
  • forget-it
  • navigation-stats
  • proxy-blocker
  • quicknote
  • stored-credentials

Примечание: Этот API основан на API хранилища Chromium. Данная документация взята из storage.json кода Chromium.

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API