有关Firefox插件/扩展的向后兼容性的问题

时间:2011-10-05 03:39:57

标签: firefox-addon firefox4 firefox-3 firefox-addon-sdk

背景信息:

过去一周,我一直在搞乱Chrome扩展程序,并且创建扩展程序没有问题。很棒,Chrome让开发过程非常容易学习,而且......很简单!

现在我想到了我想为尽可能多的浏览器创建这个扩展,所以我接下来决定使用Firefox。

真是一团糟!文档没有做任何事情,但让我头疼,浪费我的时间到目前为止,非常复杂,只是一般无组织。

我已经设法找到一个简单扩展的代码示例,我认为我可以将其用作起点并开始搞乱 - 很好......

我已经了解到这个示例扩展不适用于少于Firefox 4的任何东西,因为它使用引导技术使扩展可以在不重启浏览器的情况下安装。 Ughhhhhh ....

现在我们来到我的问题:

  1. 是否可以为Firefox 7开发适用于以前版本的Firefox的扩展程序?我甚至不关心Firefox 4之前的任何事情,如果这是无重启安装的截止点。很高兴知道我所花费的所有时间都会持续工作,并且会提示用户下一次升级超过一周。

  2. 反过来怎么样?我可以通过Firefox 7创建与Firefox 3.5兼容的扩展吗?我意识到它需要重新启动才能安装,但如果它导致无论版本如何都会产生工作扩展,那将是可以接受的。

  3. 任何有这方面经验的人都可以分享一些我自己进入这里的东西吗?看起来这是一个开发平台的噩梦,我将不断修复我的扩展。

  4. 最后一条相关信息:

    我正在开发的扩展程序纯粹是基于javascript的 - 这些东西应该工作(我认为?)因为它只依赖于一个功能“内容脚本”,它实际上不应该在实现之间改变此时的版本......对吧?

    那我到底错过了什么?如何创建易于管理的Firefox扩展,可以在所有版本的浏览器中使用?

    谢谢大家! :)

1 个答案:

答案 0 :(得分:2)

您必须区分“传统”扩展程序和使用Add-on SDK构建的扩展程序。前者更强大,因为它们可以直接访问浏览器使用的所有API - 但这也是为什么它们编写起来更复杂以及为什么文档相当无序的原因(你可以做很多事情,远远超过你的Chrome)。随着浏览器的变化,它们也更容易破裂。另一方面,Add-on SDK为您提供了一个有限的API,就像Chrome一样。附加SDK目前支持从Firefox 4开始的所有内容(是的,因为无重新安装),并承诺浏览器更改只需要使用更新版本的附加SDK重新编译您的附加组件。实际上,为addons.mozilla.org上托管的附加组件重新编译will likely happen automatically in future。关于你的问题:

  

是否可以为Firefox 7开发适用于以前版本Firefox的扩展程序?

当然可以。附加SDK当前标记您的附加组件与Firefox 4 Beta 7和Firefox 8 Alpha 1之间的任何内容兼容。即使是传统的附加组件 - 从Firefox 4开始,特定浏览器版本之间的差异相当小,大多数情况下在所有这些方面工作。您还可以与Firefox 3.x保持兼容,但根据您的操作,可能需要一些努力。重要信息:

  

反过来怎么样?我可以通过Firefox 7创建与Firefox 3.5兼容的扩展程序吗?

你走哪条路并不重要。我建议不要花很多时间在Firefox 3.x支持上。不再支持Firefox 3.5,唯一相关的版本是Firefox 3.6。根据我的附加组件的统计数据,大约18%的Firefox用户继续使用它。在接下来的几个月里,这个百分比将会明显缩小,特别是当Mozilla宣布该分支机构的寿命结束时。因此,对于新的附加组件支持,通常是不合理的。

  

任何有这方面经验的人都可以分享我在这里的一些内容吗?

取决于您的插件有多复杂。鉴于您正在开发与Chrome扩展程序等效的内容,您很可能会使用附加SDK,这意味着不会出现任何兼容性问题。随着传统附加组件的发展,不依赖于某些模糊实现细节的简单附加组件通常也没有任何问题保持兼容(我有两个附加组件,自Firefox 3.5以来不需要一次调整) 。当然,深入到系统中的附加组件更成问题。