将Dart VM作为Chrome NaCl插件提供有多难?

时间:2014-09-27 03:34:42

标签: google-chrome google-chrome-extension dart

Dart和NaCl都是OS项目。我想知道提供一个可以在任何Chrome浏览器上执行Dart代码的NaCl插件有多难? 与包装的JavaScript API相比,Pepper C / C ++ API看起来要好得多。

1 个答案:

答案 0 :(得分:2)

Nacl有几个安全限制,这使得在其中执行Jitting VM非常困难(但并非不可能)。它也没有很好的DOM访问权限,这会严重限制VM的可用性。您可能希望这种方法仅适用于使用Dart作为其脚本引擎的C ++程序(例如在游戏中)。

似乎有一个项目尝试移植v8:nacl-v8

他们的自述文件描述了一些问题:

  • NaCl不允许代码段中的数据。
  • 必须从标有NaCl的特殊区域提供可执行内存,以便动态加载代码。我猜Nacl想对它做一些检查,这可能会减慢执行速度。
  • 必须通过NaCl服务运行时调用执行所有代码插入/删除/自我修改。
  • VM发出的代码必须符合NaCl安全限制(例如间接跳转的沙盒,指令对齐)。