Plugins FF 3.5和x2B上的XPCOM插件支持;

Plugins FF 3.5和x2B上的XPCOM插件支持;,plugins,firefox-addon,xpcom,npapi,npruntime,Plugins,Firefox Addon,Xpcom,Npapi,Npruntime,我有一个插件,它基本上是一个IE等价的ActiveX控件,支持脚本。我在我的插件中使用了IDL文件和XPCOM胶水-这在FF 3.5中运行良好。 显然,当我从几个地方读到XPCOM对插件的支持已经消失,但我仍然能够在FF3.6中加载并嵌入插件——问题是我无法从JS访问这些方法 我现在不知道是完全重新编写我的插件(去掉XPCOM胶水)还是将NPObject添加到相同的插件代码中以使其工作。任何转换的示例代码都会有所帮助,我们将非常感谢您的指导。您只需添加NPRuntime/NPObject支持即可

我有一个插件,它基本上是一个IE等价的ActiveX控件,支持脚本。我在我的插件中使用了IDL文件和XPCOM胶水-这在FF 3.5中运行良好。 显然,当我从几个地方读到XPCOM对插件的支持已经消失,但我仍然能够在FF3.6中加载并嵌入插件——问题是我无法从JS访问这些方法


我现在不知道是完全重新编写我的插件(去掉XPCOM胶水)还是将NPObject添加到相同的插件代码中以使其工作。任何转换的示例代码都会有所帮助,我们将非常感谢您的指导。

您只需添加NPRuntime/NPObject支持即可使其正常工作

您也可以借此机会重写它,以便在IE和FireFox上使用相同的代码,但这取决于您=]

关于这个主题,我写了一些有用的博客文章:


希望它有帮助

您只需要添加NPRuntime/NPObject支持就可以了

您也可以借此机会重写它,以便在IE和FireFox上使用相同的代码,但这取决于您=]

关于这个主题,我写了一些有用的博客文章:


希望能有所帮助

嗨,Taxilian,谢谢你的建议。您能否提供任何示例代码来说明如何将NPObject添加到现有的基于XPCOM的代码中。err,这并不是一个简单的“示例”。所有XPCOM脚本编写的东西都需要完全删除,并在原处添加npruntime。换句话说,mozilla代码库和FireBreath中提供的示例都有您需要的。你不能半途而废;如果它是一个直的NPAPI插件,你根本不应该有任何XPCOM。@ TraciLi我刚刚构建了一个简单的C++ XPCcom扩展。这是否意味着我将无法在最新的Firefox(v.34)中运行它?如果他们减少了对Gecko SDK的支持,为什么还要不断更新它?NPAPI也有未来吗?Google Chrome似乎开始删除NPAPI支持。仅供参考:
Binary XPCOM和NPAPI在Firefox中仍然有效,但它们都即将退出。访问二进制代码的推荐方法是使用JS ctypes:https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes.
你好,Taxilian,谢谢你的建议。您能否提供任何示例代码来说明如何将NPObject添加到现有的基于XPCOM的代码中。err,这并不是一个简单的“示例”。所有XPCOM脚本编写的东西都需要完全删除,并在原处添加npruntime。换句话说,mozilla代码库和FireBreath中提供的示例都有您需要的。你不能半途而废;如果它是一个直的NPAPI插件,你根本不应该有任何XPCOM。@ TraciLi我刚刚构建了一个简单的C++ XPCcom扩展。这是否意味着我将无法在最新的Firefox(v.34)中运行它?如果他们减少了对Gecko SDK的支持,为什么还要不断更新它?NPAPI也有未来吗?Google Chrome似乎开始删除NPAPI支持。仅供参考:
Binary XPCOM和NPAPI在Firefox中仍然有效,但它们都即将退出。访问二进制代码的推荐方法是使用JS ctypes:https://developer.mozilla.org/en-US/docs/Mozilla/js-ctypes.