3

我使用 Web 扩展 API 编写了一个 Firefox 扩展。它已通过初步审查,但审查者说他在安装时无法继续进行完整审查,他收到以下错误 -

“无法解析 JSON 数据以进行扩展存储”

经过一段时间的检查,我发现 Firefox 在配置文件文件夹中为它写入和读取的每个扩展创建了一个名为“storage.js”的文件,该文件包含该特定扩展的所有本地存储数据。如果扩展在创建此文件之前尝试写入此文件,则会引发错误“无法将 JSON 数据写入扩展存储”,并且如果扩展代码在创建此文件之前尝试从该文件中读取,则会出现错误“无法解析用于扩展存储的 JSON 数据”。

现在,我关心的是如何确定文件已创建并且可以写入或读取?

PS:刚安装扩展程序时会发生这种情况。对于后续会话,此错误不会出现,因为该文件不再丢失。

4

1 回答 1

3

这似乎是当前 Firefox 实现中的一个错误,您的评估是:

  • 底层ExtStorage模块将始终调用readbeforeget等,set甚至writeclear.
  • read将无条件地尝试访问底层的、特定于扩展的存储文件,对于首次使用存储 API 的新安装的附加组件,该文件可能尚不存在。
  • Unable to parse JSON data for extension storage因此,无论您使用存储 API 做什么,这都会导致记录一条此类消息。
  • 因此无法避免触发消息。

我建议您执行以下操作:

  • 联系编辑团队,要求他们根据以下内容重新评估您的附加组件:
    • 有问题的消息实际上只是一个警告(在您的插件首次访问存储 API 后出现时)。
    • 即使消息是实际错误(存储已损坏),它仍然不是您的错误,因为 mozilla 的存储 API 实现需要更具弹性,无论如何您无能为力。
    • 首次定期使用存储 API 时发出的消息与 WebExtensions 插件使用该 API 的方式和方式无关,这是一个 mozilla 错误,而不是您造成或可以修复或至少解决的问题。
    • 因此,仅仅因为一个 Mozilla 漏洞错误地记录了一条虚假消息而没有任何其他严重影响而拒绝全面审查是……值得怀疑的。
  • 提交有关此问题的错误,以便 Mozilla 开发人员可以解决此问题。自从比尔·麦克洛斯基 (:billm) 编写了该代码以来,您至少会想要抄送他;)
于 2016-05-31T07:18:08.273 回答