Firefox扩展:无法解析扩展存储的JSON数据

时间:2016-05-30 12:13:26

标签: firefox firefox-addon firefox-webextensions

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

“无法解析扩展存储的JSON数据”

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

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

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

1 个答案:

答案 0 :(得分:3)

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

  • 基础ExtStorage模块将始终在readget等之前调用set,甚至writeclear
  • read将无条件地尝试访问基础的,特定于扩展的存储文件,这些文件可能尚未首次使用存储API为新安装的加载项存在。
  • 因此,无论您使用存储API执行什么操作,都会导致记录一条此类Unable to parse JSON data for extension storage消息。
  • 因此无法避免触发消息。

我建议你做以下事情:

  • 联系编辑团队,要求他们根据以下内容重新评估您的插件:
    • 有问题的邮件实际上只是一个警告(在您的插件首次访问存储API后出现)。
    • 即使消息是实际错误(存储已损坏),它仍然不是您的错误,因为Mozilla的存储API实现需要更具弹性,而且无论如何都无法做到。< / LI>
    • 首次定期使用存储API时发出的消息,与WebExtensions附加组件无关,使用该API以及以何种方式使用该mozilla错误,而不是您自己造成或可以自行修复或至少解决的问题
    • 因此,仅仅因为一个mozilla错误错误地记录一次虚假消息而没有任何其他严重影响而拒绝进行全面审查是有问题的。
  • File a bug关于此问题,因此Mozilla开发人员可以解决此问题。自从他编写代码之后,你至少想要CC McCloskey(:billm);)