Node-webkit浏览器插件

问题描述

由于NPAPI插件将在Chrome(可能过早Firefox)中被弃用,并成为基于NPAPI插件的项目( WebChimera )的一部分。 我一直在想不同的解决scheme,以保持浏览器的NPAPI支持。 (因为将这个插件移植到NaCL目前是不可能的,但是插件可以用在目前支持NPAPI的node-webkit的冻结版本中)

所以我想知道是否有可能让浏览器页面在用户的PC上打开node-webkit应用程序,然后使用带/不带jQuery的JS发送有关Node-Webkit窗口的数据(总是在最上面)应该是应用程序(也许通过websocket)总是在那里定位。

我知道我可以得到一个html元素的大小,在JavaScript中的位置,我也知道我可以跟踪用户和浏览器选项卡更改的滚动,以对窗口大小,位置和可见性做必要的更改。

问题

这个事情真的阻止我试图这样做,我怎么知道什么时候浏览器不是全屏的,我怎么知道浏览器在屏幕上的位置,如果它不是从页面JS的全屏或从节点的webkit直接。 另一件应该关心的事情是浏览器窗口是什么屏幕。

我是唯一一个想过用node-webkit做这样的尝试的人,有没有开源项目试图这样做?

对此的任何想法或意见将不胜感激,因为解决scheme不仅将在不久的将来保存NPAPI插件,而且还将打开一个世界,其中Node-Webkit也可以用作构build浏览器插件的可行解决scheme。 🙂

这将涉及很多痛苦的骇客。 您必须独立解决所有平台上的大部分问题,并依赖大量的实现细节。

作为一种可能的select,请查看FireBreath 2.0的计划,该计划将支持可通过NPAPI,ActiveX和本地消息通过名为FireWyrm的新协议加载的插件。 目前在使用FireWyrm接口时没有graphics支持,只支持本地消息传递。 此外,它还没有完成,但我越来越接近=]

现在可以使用libvlc直接在NW.js / Electron页面上播放video: https ://www.npmjs.com/package/webchimera.js

这个项目是什么:它是低级(用C ++编写的)插件,它使用libvlc并允许解码video帧到JS ArrayBuffer对象。 反过来,这个ArrayBuffer对象可以直接在HTML5canvas上绘制,也可以使用WebGL绘制。 该项目直接使用Node.js / V8 API,完全不使用NPAPI,所以即使在NPAPI弃用之后也会生存。 另一件好事 – 这个性能(特别是如果使用WebGL)与原始的VLC播放器性能相媲美。

简单的用法示例可在: https : //github.com/jaruba/wcjs-player