使用C ++代码编写Firefox扩展

时间:2015-08-26 05:59:17

标签: firefox firefox-addon npapi firebreath browser-plugin

我目前有一个Firefox扩展/插件组合,运行良好,并使用NPAPI(Firebreath)C ++代码和Javascript的组合编写。扩展程序通过定义浏览器覆盖(overlay.xul / overlay.js)来实现,该覆盖通过脚本src =“overlay.js”标记加载到每个网页上。

我需要针对即将发布的Firefox Webextensions更改和XPCOM / XUL的弃用进行调整。

据我所知,Webextensions主要基于Javascript。我怎样才能继续使用扩展程序的C ++部分?请注意,由于各种原因,将C ++ NPAPI库移植到Javascript是不可能的。

1 个答案:

答案 0 :(得分:0)

您必须使用Native messaging将部分代码保留在C ++中。

请注意,只有后台脚本可以直接与您的本机/ C ++代码通信。但是稍后可以将这些消息发送到您的内容脚本。

C ++代码与后台脚本之间的通信是通过stdin / stdout进行的。

github上的python脚本和web扩展之间有一个很好的例子:https://github.com/mdn/webextensions-examples/tree/master/native-messaging