2016-05-30 104 views
3

我已经使用Web扩展API编写了Firefox扩展。它已经通过了初步审查,但是评论者说,他不能当他安装它的全面审查的原因出发,他得到了下面的错误 -Firefox扩展:无法解析扩展存储的JSON数据

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

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

现在,我关心的是我怎么知道肯定该文件已被创建,它可以写入或读取?

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

回答

3

这似乎是在当前的Firefox实现中的错误,你的评价是现货上:

  • 底层ExtStorage模块总是会getset等甚至writeclear之前调用read
  • read将无条件尝试访问底层,延长特定的存储文件时,可能无法使用首次存储API新安装的加载项还不存在。
  • 因此,无论您使用存储API做什么,这都会导致记录一条这样的消息(Unable to parse JSON data for extension storage)。
  • 因此触发消息是不可避免的。

我建议你做到以下几点:

  • 联系的编辑团队,要求他们重新评估基础上的附加:
    • 有问题的消息是真的只是一个警告(当您的插件第一次访问存储API后出现)。
    • 即使消息将是一个实际的错误(存储已损坏),它仍然不会是你的错误,如由Mozilla存储API的实现需要更加有弹性,然后有什么可以做呢。
    • 消息正在对第一个常规使用的存储API的,无关什么WebExtensions附加发行使用该API以及以何种方式,是Mozilla的错误,而不是你造成的东西,或可以围绕自己解决或至少工作。
    • 因此,仅仅因为mozilla错误错误地记录虚假消息而没有任何其他严重效果而拒绝全面审查是......值得怀疑的。
  • File a bug关于这个,所以mozilla开发人员可以解决这个问题。自从他编写该代码以来,您至少希望抄送CC至少Bill McCloskey(:billm);)