2012-08-17 72 views
0

我即将开始为我公司的主要产品线开发Mozilla插件。我的印象是,我可以使用Gecko SDK构建,前面说过两个主要修订版本,这将覆盖任何人合理使用的浏览器。我还假设这也将涵盖Chrome和Opera(实际上检查某人?)。Mozilla插件,我每次更新Gecko SDK时都需要重新编译吗?

不过,我只是读的文件,我发现这一点:

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

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

+2

您是否在Firefox扩展中询问NPAPI插件或XPCOM组件?关于后者的文档会谈,你似乎是担心原... – 2012-08-18 00:42:05

+0

@WladimirPalant NPAPI,我认为壁虎SDK是为NPAPI插件的SDK。 – 2012-08-18 19:16:26

+1

不,该SDK主要用于编译XPCOM组件Firefox扩展之类的,文件似乎使它用于这个目标完全的假设。然而,NPAPI插件肯定可以使用旧的SDK版本进行编译,并且可以继续工作(否则Flash将停止每次Firefox更新)。 – 2012-08-18 20:13:53

回答

2

Gecko SDK至少有两个不同的目的。引述documentation

壁虎SDK,也被称为的XULRunner SDK,是一组XPIDL文件,头文件和工具,开发XPCOM组件,然后可以用反过来例如可以使用JavaScript从XUL访问。

...

壁虎SDK包含了所有必要的工具和标题制作脚本化的NPAPI插件包括XPIDL编译器/连接器和最新的npapi.h。

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

的文档并没有真正说清楚,但是这一切并不适用于NPAPI其中仅通过固定接口与浏览器插件沟通。我不确定还需要多少Gecko SDK才能编译NPAPI插件,看起来它只有npapi.h和一些其他头文件。这个文件并不完全是change often,这些改变大多局限于常量。因此,在针对旧SDK版本编译插件时没有问题 - 只有副作用是您可能无法使用新的NPAPI功能。

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

+0

再次感谢。这是一个很好的答案。 – 2012-08-19 01:24:30

+0

此外,如果你没有,你应该看一看FireBreath(firebreath.org)你挖得太远NPAPI前;它抽象了很多你必须在插件中处理的问题,以及使IE和NPAPI兼容的插件工作。即使你决定不使用FireBreath,FireBreath社区也许是计算NPAPI的最佳资源 – taxilian 2012-08-19 23:02:34

相关问题