Firefox 57+ 是否还使用 extensions.* 首选项作为各个扩展?

Firefox 57+ 是否还使用 extensions.* 首选项作为各个扩展?

在 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 保存的数据在这些情况下将被正确保留。

(重点是我的)。

来源存储 - Mozilla | MDN


进一步阅读

相关内容