跨浏览器插件框架的比较

a comparison in cross browser plugin's frameworks

我发现有很多浏览器插件框架。

我的第一个问题: 以下哪一个框架是为插件指定的,哪个框架不是为插件指定的: FireBreath、OpenForge、Kango、BabelExt、Nixysa 项目、JUCE 项目、QtBrowserPlugin 项目。

我的第二个问题: 除了上面提到的那些之外,还有其他流行的插件框架吗?

我的第三个问题: 这些流行的插件框架的主要区别是什么? 确实有这些框架的比较,比较可以是以下各项:

  1. 可用性(作为 NPAPI 插件的页面或作为浏览器的 附加扩展),
  2. 简单(开发中),
  3. 速度(执行时),
  4. 可扩展性(开发的附加组件),
  5. 可用性(在 Windows 86x 和 64x、Unix、Linux、mac 和其他 平台,特别是移动平台 android, ios, ...),
  6. 灵活性(针对新技术),
  7. 可靠性(在安全方面),
  8. 可访问性(开源与否),
  9. 可移植性(在 Fire-fox、chrome、IE、Safari、Opera 等中),
  10. 适用性(绘图、交流、外部调用 服务器、线程、网络访问等),
  11. 稳定性(改变政策,例如弃用 NPAPI)

我也读过 Cross-Browser Extensions API? 我认为它是关于扩展的框架(不是插件的框架)

老实说 -- 这似乎是您应该能够通过一些 google 搜索来回答的问题。不过,我很感激你至少在尝试应用关于如何更好地提问的建议,所以我会回答一些我知道的问题。

FireBreath is a C++ framework for creating browser plugins, not extensions. It works as an NPAPI plugin for browsers supporting NPAPI plugins (previously this was all but IE, but Chrome dropped support for them this year and Firefox plans to at the end of 2016) or as an ActiveX control, giving it equivalent functionality to a browser plugin in Internet Explorer. FireBreath 2 可以正常工作,但到目前为止记录不多,它将 API 从浏览器和插件之间的同步更改为异步,并添加了一个仿真层以让它们与 Google Chrome 使用本机消息传递。据我所知,它是最完整和最新的插件框架。我是它的主要作者,所以请随时得到你自己的确认。

Nixysa 是一种获取定义文件并输出 NPAPI 插件代码的工具。我没有用过它,所以我不能确切地告诉你它的功能是什么。自 2012 年添加 PPAPI 支持以来,它就没有更新过;不过,这不太可能有用,因为从那时起 PPAPI 发生了重大变化,而且因为唯一可以 运行 没有特殊命令行标志到 chrome 的 PPAPI 插件是 chrome 特别祝福的 Chrome团队。

JUCE 是一个具有商业许可证的 GPL 库,它支持创建浏览器插件。现在我不知道它有多强大;当我最后一次看它时,它似乎写得很好,并且采用了比 FireBreath 更简约的方法; FireBreath 为您提供了一个框架并试图让一切正常工作,而 JUCE 似乎(我可能是错的)更像是一种 "provide the building blocks, but don't try to make everything look the same" 类型的东西。

QtBrowserPlugin 是一个废弃的无人维护的项目,它曾经允许使用 QT 创建浏览器插件(可能只是 npapi,但不确定)。迹象表明它可能不再起作用了。

我不知道其他项目是什么。如果我是你,我会尝试做一些研究。 Google 是你的朋友。