0

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

但是,我只是在阅读文档,然后发现:

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

有人请告诉我这并不意味着我认为它意味着什么。这是否意味着我将不得不无限期地为每个 Gecko 版本重新编译我的插件——即使在部署之后?Mozilla 的伟大团队似乎不会对我们造成这种影响。

4

1 回答 1

2

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

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和其他一些头文件。该文件并不经常更改,更改主要限于常量。因此,针对较旧的 SDK 版本编译插件没有问题 - 唯一的副作用是您可能无法使用新的 NPAPI 功能。

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

于 2012-08-18T23:09:25.333 回答