firefox附加组件sdk:以前删除并重新安装的附加组件不起作用,但显示为安装在附加组件管理器中

时间:2014-04-14 20:50:00

标签: firefox firefox-addon-sdk

我刚刚用SDK创建了一个简单的插件。我安装了它,图标显示,一切都工作,没有重启firefox。然后我使用firefox的附加组件管理器删除了加载项。 之后我关闭并重新打开firefox并再次安装了附加组件,Manager显示安装成功。没有错误消息。但是图标没有显示,也没有任何效果。

firefox控制台和sdk控制台显示没有错误。 我的附加组件在sdk / simple-storage中存储了一个布尔值。 然后我重置了firefox并再次安装它,一切正常。

你知道吗,是什么导致了这个问题以及如何在不重置firefox的情况下解决它?

2 个答案:

答案 0 :(得分:2)

根据我的经验,重新安装具有相同版本号的加载项被视为downgrade。因此,将version number保存在简单存储中

const self = require('sdk/self');
const {storage} = require('sdk/simple-storage');
if (storage && storage.version===self.version && self.loadReason==='downgrade')
  storage = {};

注意事项:

  1. 这里的假设是,如果您(开发人员)在有人卸载后再重新启动Firefox之前升级了一个加载项,那么重新安装的加载项将在再次自动更新之前再次作为旧版本运行。我认为这是一个安全的假设。
  2. 如果有人卸载,则点击撤消,这不是重新安装/ downgrade,而是enable

答案 1 :(得分:1)

正如我所料,它是sdk / simple-storage中的bug。删除加载项后,不会删除简单存储文件。重新安装相同的加载项时,这会导致问题。当我删除firefox配置文件文件夹中的“jetpack”文件夹时,重新安装工作正常。 所以我的解决方案是:不要使用简单存储。 当您知道另一种解决方法时,请告诉我。