2

До Firefox 57 расширения сохраняли prefs в extensions.* prefs.js .

С расширениями WebExtensions когда-нибудь расширения сохраняют свои префы в prefs.js?

(Мое ограниченное тестирование показывает, что нет.)

1 ответ1

4

Хранят ли когда-либо свои префы WebExtensions в prefs.js?

Нет, если они написаны в соответствии с руководящими принципами.

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

WebExtensions должен использовать API хранилища для хранения настроек:

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

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

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

Чтобы использовать этот API, вам нужно включить разрешение "хранилище" в ваш файл manifest.json.

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

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

(акцент мой).

Исходное хранилище - Mozilla | MDN


Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .