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