2012-09-13 169 views
0

我是Firefox扩展开发的新手,友好的说,这是第一天,我按照以下文章开始使用Firefox扩展开发:How to develop a Firefox extension无法运行Firefox扩展

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

奇怪的行为相同的代码之一是安装罚款和其他错误。

任何想法,哪里出问题了,是什么原因造成的?

回答

0

问题是你忘了调整install.rdf的兼容性范围,所以em:maxVersion仍然在说3.1b2(意思是Firefox 3.1b2 - 一个相当老的版本)。如果您想要支持当前稳定的Firefox版本,请将其更改为15.*,如果您想要支持当前的测试版本,则应将其更改为15.*16.*。您还可以将em:minVersion更改为更有意义的内容:我怀疑您是否会验证您的扩展程序是否仍然适用于Firefox 2.0。

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

但这不是故事的结尾。兼容性检查机制为changed significantly in Firefox 10,默认情况下,现在即使没有在任何地方明确指定,附加组件也与较新版本兼容。要求是该扩展不包含二进制组件,并且至少与Firefox 4兼容。原始扩展与Firefox 8兼容,这归功于软覆盖,并具有不同的扩展ID,它仅与然而,Firefox 3.1b2(它不在addons.mozilla.org上托管,因此更新服务器不知道它),这意味着宽松兼容性检查不适用于它。

为了参考:在前面的段落中描述的行为由extensions.strictCompatibility,​​和extensions.minCompatiblePlatformVersion偏好来控制。