【问题标题】:Firefox Extension : Unable to parse JSON data for extension storageFirefox 扩展:无法解析用于扩展存储的 JSON 数据
【发布时间】:2016-05-30 12:13:26
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: firefox firefox-addon firefox-addon-webextensions


    【解决方案1】:

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

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

    我建议您执行以下操作:

    • 联系编辑团队,要求他们根据以下情况重新评估您的插件:
      • 有问题的消息实际上只是一个警告(在您的插件首次访问存储 API 后出现)。
      • 即使消息是实际错误(存储已损坏),也不会是您的错误,因为 mozilla 的存储 API 实现需要更具弹性,无论如何您无能为力。
      • 第一次常规使用存储 API 时发出的消息与 WebExtensions 插件使用该 API 的方式和方式无关,这是一个 mozilla 错误,而不是您造成或可以自行修复或至少解决的问题.
      • 1234563
    • File a bug 关于这个,所以 Mozilla 开发人员可以解决这个问题。自从 Bill McCloskey (:billm) 编写了该代码后,您至少需要抄送他 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多