问题是你忘了调整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
偏好来控制。