Использует ли Firefox 57+ расширения. * Предпочтения больше для отдельных расширений?

293
RockPaperLizard

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

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

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

2

1 ответ на вопрос

3
DavidPostill

Хранят ли когда-либо свои префы 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


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

Спасибо Дэвид. Технически, они * могут *, но не должны. Правильно? RockPaperLizard 6 лет назад 0
@RockPaperLizard выглядит так ... DavidPostill 6 лет назад 0
Учитывая, что WebExtensions не имеют общего доступа к настройкам about: config, у них нет возможности что-либо там хранить. evilpie 6 лет назад 0