无法运行firefox扩展

时间:2012-09-13 17:49:06

标签: firefox firefox-addon

我是Firefox扩展开发的新手,友好地说它是第一天,我已经按照以下文章开始使用Firefox扩展开发:How to develop a Firefox extension

如果我从上面给出链接的教程下载示例并尝试安装,它安装完美但是,当我更新该示例时(只需将其名称更新为新的扩展名,所有文件中都需要),以及然后安装,我收到以下消息:“无法安装X,因为它与Firefox 15.0.1不兼容。” (其中X是我的扩展名)。

奇怪的行为相同的代码一是安装正常,另一个给出错误。

知道哪里出错了,是什么造成了这个?

1 个答案:

答案 0 :(得分:0)

问题是您忘记调整install.rdf中的兼容性范围,因此em:maxVersion仍在说3.1b2(意味着Firefox 3.1b2 - 相当旧的版本)。如果要支持当前稳定的Firefox版本,则应将其更改为15.*;如果要支持当前的Beta版本,则应将其更改为16.*。您还可以将em:minVersion更改为更有意义的内容:我怀疑您是否会验证您的扩展程序是否仍适用于Firefox 2.0。

如果您不更改扩展ID,为什么扩展安装,这更复杂。首先,有一个兼容范围的软覆盖机制,允许扩展作者在不发布新版本的情况下更改兼容的版本范围。在这种特殊情况下,Firefox将通过请求this address或类似的更新来检查扩展更新。更新服务器告诉它版本1.0仍然是最新的,但将maxVersion调整为Firefox 8.0 - 此值将覆盖install.rdf中指定的任何内容。

但这不是故事的结局。兼容性检查机制是changed significantly in Firefox 10,现在默认假设加载项与较新版本兼容,即使未在任何地方明确指定。要求是扩展名不是opt out of lax compatibility checking,不包含二进制组件,并且至少与Firefox 4兼容。由于软覆盖,原始扩展与Firefox 8兼容,具有不同的扩展ID仅与Firefox 3.1b2兼容(它不在addons.mozilla.org上托管,因此更新服务器不知道它),这意味着松散兼容性检查不适用于它。

供参考:上一段中描述的行为受extensions.strictCompatibilityextensions.minCompatibleAppVersionextensions.minCompatiblePlatformVersion首选项控制。