【问题标题】:Unable to run firefox extension无法运行 Firefox 扩展
【发布时间】:2012-09-13 17:49:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: firefox firefox-addon


    【解决方案1】:

    问题是您忘记在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 首选项控制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      相关资源
      最近更新 更多