在 Firefox 57 之前,扩展将首选项存储在extensions.*
中prefs.js
。
使用 WebExtensions 时,扩展是否会将其首选项存储在其中prefs.js
?
(我的有限测试表明他们没有。)
答案1
WebExtensions 是否曾将其首选项存储在 prefs.js 中?
如果它们是按照指南编写的则不会。
每个扩展都有自己的存储区域,可以分成不同类型的存储。
WebExtensions 应该使用存储 API保存设置:
启用扩展来存储和检索数据,并监听存储项目的更改。
该存储系统基于 Web Storage API,但有一些差异。其他差异包括:
- 它是异步的。
- 值的范围是扩展,而不是特定域(即,同一组键/值对可用于后台上下文和内容脚本中的所有脚本)。
- 存储的值可以是任何 JSON 可转换的值,而不仅仅是字符串。其中包括:数组和对象,但前提是它们的内容可以表示为 JSON,不包括 DOM 节点。您不需要在存储值之前将它们转换为 JSON 字符串,但它们在内部表示为 JSON,因此要求它们必须是 JSON 可转换的。
- 可以在同一个 API 调用中设置或检索多个键/值对。
要使用此 API,您需要在 manifest.json 文件中包含“存储”权限。
每个扩展都有自己的存储区域,可以分成不同类型的存储。
虽然此 API 与 Window.localStorage 类似,但建议您不要在扩展代码中使用 Window.localStorage 来存储与扩展相关的数据。在用户出于隐私原因清除浏览历史记录和数据的各种情况下,Firefox 会清除使用 localStorage API 的扩展存储的数据,而使用 storage.local API 保存的数据在这些情况下将被正确保留。
(重点是我的)。