有没有人在CEF3(Chromium Embedded Framework)中成功实现NaCl/PNaCl支持?
我发现Chrome(34)可以很好地在这个页面上运行PNaCl样本,但是在cefbuilds.com(Windows,1916分支)上分发的cefclient却没有.
Chrome将ppGoogleNaClPluginChrome.dll列为chrome:// plugins上的PPAPI(进程内)插件,而cefclient应用程序未列出此插件(Test/Plugins菜单选项)
我已经删除了源代码,并没有看到libcef目标的任何NaCl依赖性,并且还看到针对CEF项目提交的这个问题,这让我怀疑这目前仅适用于Chromium/Chrome.
---更新---最近在这个问题上有相当多的活动,我怀疑部分归功于赏金,还因为Chrome/Chromium现在正在积极地弃用NPAPI.
如果您想鼓励CEF团队优先考虑添加NaCl/PNaCl支持的工作,请在此处投票支持该问题:http: //bitbucket.org/chromiumembedded/cef/issue/705#
是否可以在Python或Go中编写本机客户端应用程序,然后可以在浏览器中运行?
python google-chrome go google-chrome-extension google-nativeclient
我的问题很简单,我试图创建一个称为NaCl模块的chrome扩展.我的按钮和不同的文件似乎没问题,我在C++中非常简单的代码返回一个PostMessage hello World.但是,当我尝试它时,它不起作用.在Chrome扩展程序中包含NaCl模块,我还没有做过具体的事情吗?我必须说我有点失去希望.
这是我的"background.html":
<body>
<script src="background.js"></script>
<div id="listener">
<embed name="nacl_module"
id="nacl_correction"
src="nacl_correction.nmf"
type="application/x-nacl" />
</div>
<script >
document.getElementById('listener').addEventListener('load', moduleDidLoad, true);
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
这是我的"background.js":
var NaclCorrectionModule = null; // Global application object.
function moduleDidLoad() {
NaclCorrectionModule = document.getElementById('nacl_correction');
//alert( NaclCorrectionModule);
if (NaclCorrectionModule == null) {
alert('Out');
}
else {
alert (NaclCorrectionModule);
}
NaclCorrectionModule.addEventListener('message', handleMessage, false);
}
function handleMessage(message_event) {
alert(message_event.data);
}
chrome.browserAction.onClicked.addListener(moduleDidLoad);
Run Code Online (Sandbox Code Playgroud)
最后,我的"Manifest.json":
{
"name": "Correction de Cordial sous Chrome",
"version": "1.0",
"background_page" :"background.html",
"description": "Intégration d'une extension Cordial pour …Run Code Online (Sandbox Code Playgroud) 是否可以在浏览器之外运行Google NaCl作为进程沙箱?
如何使用Google Native Client(PNaCl)直接运行编译文件?它试图检查他们的文档.它说 -
Native Client是一个沙箱,用于高效安全地在浏览器中运行已编译的C和C++代码,与用户的操作系统无关.
但在他们的文档中,他们只处理应用程序的来源.有没有办法直接运行编译代码?我想运行使用文件.exe和.deb扩展
我不限制Native Client的答案.任何可以做这种工作的机制都适合我.
我不熟悉Qt或Google Native Client.是否可以将TRIVIAL Qt控制台应用程序移植到Google Native Client?我知道会涉及一些工作.但问题是,如果可能的话多少钱?
现在nacl默认在chrome中打开我想尝试编写一个opengl游戏.这似乎是可能的,因为有一个工作的地震端口,但我找不到任何关于此的文档.有没有人有一个最小的例子?
奖金问题:我可以从nacl做任何类型的网络吗?例如网络套接字?
我用google的nacl编译器编译了一些Qt代码,但是ncval验证器并没有理解它.许多人中的一个例子:
src/corelib/animation/qabstractanimation.cpp:165
Run Code Online (Sandbox Code Playgroud)
这是相关的代码:
#define Q_GLOBAL_STATIC(TYPE, NAME) \
static TYPE *NAME() \
{ \
static TYPE thisVariable; \
static QGlobalStatic<TYPE > thisGlobalStatic(&thisVariable); \
return thisGlobalStatic.pointer; \
}
#ifndef QT_NO_THREAD
Q_GLOBAL_STATIC(QThreadStorage<QUnifiedTimer *>, unifiedTimer)
#endif
Run Code Online (Sandbox Code Playgroud)
编译为:
00000480 <_ZL12unifiedTimerv>:
480: 55 push %ebp
481: 89 e5 mov %esp,%ebp
483: 57 push %edi
484: 56 push %esi
485: 53 push %ebx
486: 83 ec 2c sub $0x2c,%esp
489: c7 04 24 28 00 2e 10 movl $0x102e0028,(%esp)
490: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
494: …Run Code Online (Sandbox Code Playgroud) 我正在考虑设计一个框架,允许一个C++代码库成为大多数主要平台(Mac OS,Windows,Linux,可能还有Android)的桌面应用程序和Web应用程序.我已经确定Qt最适合桌面版本,但是我在Google Native Client和Wt之间对于Web App部分存在冲突.
Wt代码可能更容易与Qt代码兼容,但是我听说Wt实际上是AJAX输出,所以我不知道这会对性能有多大影响(我计划开发一个这样的游戏引擎,所以我需要性能).
另一方面,NaCl更多,很好......原生.但它似乎是一团糟,尤其是JS集成,我只想用C++编写并完成它.另外,我不知道它与Qt的兼容性如何.
我已经研究了几个星期,我也不太了解.所以它真的归结为:
A:我可以直接(或几乎)用Q代替所有Wt对象名称前面的所有W并且它是Qt兼容代码吗?
B:Wt是原生的,它在运行时的执行速度有多快(我似乎无法找到答案)?
有人决定做一个快速测试,看看本机客户端在速度方面与javascript的比较.他们通过运行10 000 000 sqrt计算并测量所花费的时间来做到这一点.结果用javascript:0.096秒,用NaCl:4.241秒......怎么会这样?速度不是首先使用NaCl的原因之一吗?或者我错过了一些编译器标志或什么?
下面是运行的代码:
clock_t t = clock();
float result = 0;
for(int i = 0; i < 10000000; ++i) {
result += sqrt(i);
}
t = clock() - t;
float tt = ((float)t)/CLOCKS_PER_SEC;
pp::Var var_reply = pp::Var(tt);
PostMessage(var_reply);
Run Code Online (Sandbox Code Playgroud)
PS:这个问题是出现在本机客户端邮件列表中的某些内容的编辑版本