小编dan*_*anf的帖子

在Chrome扩展程序中添加NaCl

我的问题很简单,我试图创建一个称为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-chrome-extension google-nativeclient

17
推荐指数
1
解决办法
2565
查看次数

无法从封装的应用程序中获取NaCl C++模块来加载文件

我有一个镀铬打包的应用程序,其中还包括一个PNaCl/NaCl C++模块,以及一些NaCl模块需要读入的数据文件.但是,我无法读取文件.

我根据我能找到的所有文档和官方示例进行设置,以及答案:如何在chrome应用程序中包含数据文件以供本机客户端模块读取

SDK附带的nacl_io演示能够执行此操作,但它使用的是C语言,而不是C++.

我想出了一个简单的例子,我将在下面发布.当您按下页面上的按钮时,NaCl模块应加载test.txt的第一个字符并显示它.截至目前,它始终只响应"-100"(我输入的错误值),这意味着它无法打开文件,而不是文件的第一个字符.

任何人都可以建议一些允许它正常工作并加载文件的更改吗?

为了运行它,在Mac至少,我用这个命令,随着./file-test目录中的所有文件上:/应用/谷歌\ Chrome.app/Contents/MacOS/Google \铬--load-和推出应用内=./文件测试

请注意,如果您尝试使用它,则很可能需要更改makefile中的NACL_SDK_ROOT路径.

file_test.cc

#include "ppapi/cpp/instance.h"
#include "ppapi/cpp/module.h"
#include "ppapi/cpp/var.h"

#include "nacl_io/nacl_io.h"
#include "sys/mount.h"

class FileTestInstance : public pp::Instance {
 public:
  explicit FileTestInstance(PP_Instance instance) : pp::Instance(instance)
  {
    // initialize nacl file system
    nacl_io_init_ppapi(instance, pp::Module::Get()->get_browser_interface());

    // mount the http root at /http
    mount("", "/http", "httpfs", 0, "");
  }
  virtual ~FileTestInstance() {}

  // Receive message from javascript
  virtual void HandleMessage(const pp::Var& var_message) {
    // Open and load from the file  
    int c;
    FILE *file; …
Run Code Online (Sandbox Code Playgroud)

google-nativeclient google-chrome-app

5
推荐指数
1
解决办法
2210
查看次数