0

我是 Firefox 扩展开发的新手,友好地说这是第一天,为了开始 Firefox 扩展开发,我遵循了以下文章:如何开发 Firefox 扩展

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

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

知道哪里出了问题,是什么原因造成的?

4

1 回答 1

0

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

至于为什么不更改扩展 ID 会安装扩展,这就更复杂了。首先,兼容性范围有一个软覆盖机制,允许扩展作者更改兼容版本范围而无需发布新版本。在这种特殊情况下,Firefox 将通过请求此地址或类似地址来检查扩展更新。更新服务器告诉它 1.0 版仍然是最新的,但会调整maxVersion到 Firefox 8.0 - 这个值将覆盖install.rdf.

但这不是故事的结局。Firefox 10 中的兼容性检查机制发生了显着变化,现在默认假设是该插件与较新版本兼容,即使在任何地方都没有明确指定。要求是扩展不选择退出宽松的兼容性检查,不包含二进制组件并且至少与 Firefox 4 兼容。由于软覆盖,原始扩展与 Firefox 8 兼容,具有不同的扩展 ID但是它只与 Firefox 3.1b2 兼容(它不托管在addons.mozilla.org上,因此更新服务器不知道它),这意味着宽松的兼容性检查不适用于它。

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

于 2012-09-14T07:07:47.240 回答