Mozilla插件,每次Gecko SDK更新时我都要重新编译吗?

时间:2012-08-17 14:46:07

标签: cross-browser cross-platform mozilla npapi gecko

我即将开始为我公司的主要产品线开发Mozilla插件。我的印象是我可以使用Gecko SDK进行构建,比如前两个主要版本,这将覆盖一个人合理使用的任何浏览器。我也假设这也将涵盖Chrome和Opera(事实上检查某人?)。

然而,我只是阅读文档,我发现了这个:

  

对于2.0之前的Gecko版本,您应该为您希望定位的最早版本的Mozilla选择Gecko SDK版本。对于Gecko 2.0及更高版本,您必须为每个版本重新编译组件,因为不再支持跨版本兼容性。

有人请告诉我这并不意味着我认为这意味着什么。这是否意味着我将不得不无限期地为每个版本的Gecko重新编译我的插件 - 即使在部署之后?这似乎不是Mozilla的伟大团队会给我们带来的东西。

1 个答案:

答案 0 :(得分:2)

Gecko SDK至少有两个非常不同的用途。引用documentation

  

Gecko SDK,也称为XULRunner SDK,是一组用于开发XPCOM组件的XPIDL文件,标题和工具,然后可以依次使用它们。可以使用JavaScript从XUL访问。

     

...

     

Gecko SDK包含用于制作可编写脚本的NPAPI插件的所有必要工具和标头,包括xpidl编译器/链接器和最新的npapi.h。

您从本页引用的句子适用于SDK的主要用途:构建可由Firefox扩展使用的本机XPCOM组件。这些XPCOM组件可以访问浏览器的内部接口,这带来了界面稳定性的问题。从Gecko 2.0(Firefox 4)开始,这个问题的解决方式是XPCOM组件只能使用一个Firefox版本。要使用其他Firefox版本,需要使用较新版本的Gecko SDK重新编译。

文档并没有真正说清楚,但所有这些并不适用于仅通过固定接口与浏览器通信的NPAPI插件。我不确定编译NPAPI插件还需要多少Gecko SDK,它似乎只有npapi.h和其他一些头文件。此文件并非完全change often,更改主要限于常量。因此,针对较旧的SDK版本编译插件没有问题 - 唯一的副作用是您可能无法使用新的NPAPI功能。

也就是说,您应该能够使用NPAPI SDK而不是Gecko SDK。这是一个小得多的下载,专门用于创建NPAPI插件。 Gecko SDK中的文件基本上都是从NPAPI SDK复制的(请注意"同步到npapi-sdk rNN"文件历史记录中的更改)。