chrome native client小试牛刀

简介:

一、环境准备

1、安装native client sdk

    下载地址: http://commondatastorage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/naclsdk_win.exe

下载后安装在C:\native_client_sdk_0_5_1052

本次试验的两个关键目录project_templates,examples.其中project_templates包含一个模板代码生成,examples中包含示例代码。

2、安装Python

下载地址:http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
下载后安装到C:\Python27,在系统环境变量中的Path最后加上;C:\Python27

3、在chrome中启用native client

在chrome浏览器中地址栏输入about:flags 找到native client点击启动,重启浏览器;然后在浏览器地址栏输入about:plugins找到native client点击启动,无须重启浏览器

二、查看示例

进入C:\native_client_sdk_0_5_1052\examples,双击httpd.py,启动python的web server。

在chrome地址栏输入http://localhost:5103/index.html,可查看自带示例。

三、开发示例

1、创建工程

进入控制台:

>cd C:\native_client_sdk_0_5_1052\project_templates

> init_project.py -n helloworld -d ../examples (-n 名称 -d目录)

这时在examples文件下多了一个helloworld目录。改目录有:

helloworld.cc c++代码

helloworld.html 网页代码

scons.bat 编译C++

2、修改代码

打开helloworld.html,新增

function moduleDidLoad() {
      HelloTutorialModule = document.getElementById('hello_tutorial');
      HelloTutorialModule.addEventListener('message', handleMessage, false);
      updateStatus('SUCCESS');
      //Send a message to the NaCl module.
      HelloTutorialModule.postMessage('hello');
    }

 

 

 

 

 

HelloTutorialModule.postMessage('hello');将hello字符串提交给c++端处理

 

打开helloworld.cc

在#include之后添加

namespace {
// The expected string sent by the browser.
const char* const kHelloString = "hello";
// The string sent back to the browser upon receipt of a message
// containing "hello".
const char* const kReplyString = "hello from NaCl";
} // namespace

 

 

找到

// TODO(sdk_user): 1. Make this function handle the incoming message.

 

 

替换成

 

 if (!var_message.is_string())
    return;
  std::string message = var_message.AsString();
  pp::Var var_reply;
  if (message == kHelloString) {
    var_reply = pp::Var(kReplyString);
    PostMessage(var_reply);
  }

 

 

 


编译C++的native client module ,双击helloworld目录底下的scons.bat文件。

 

 

编译完成后,生成:

 

  • hello_tutorial_x86_32.nexe
  • hello_tutorial_x86_32_dbg.nexe
  • hello_tutorial_x86_64.nexe
  • hello_tutorial_x86_64_dbg.nexe

进入C:\native_client_sdk_0_5_1052\examples

双击httpd.py

在chrome浏览器中输入地址:http://localhost:5103/helloworld/helloworld.html

得到从native client module返回的hello from NaCl

 

目录
相关文章
|
Web App开发 JavaScript Shell
从Secure Shell看Chrome强大的Native Client
Google Chrome App Store中有一个强大的SSH client(可以代替PuTTY), 关键它是集成在网页之中,下面是截图: 它的强大正是Chrome强大的Native Client所造就的。
1336 0
|
2月前
|
Web App开发 数据采集 存储
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
本文探讨了如何利用Chrome DevTools Protocol (CDP) 与 Selenium WebDriver 提升浏览器自动化效率,结合代理IP技术高效采集微博数据。通过CDP,开发者可直接操作浏览器底层功能,如网络拦截、性能分析等,增强控制精度。示例代码展示了如何设置代理IP、cookie及user-agent来模拟真实用户行为,提高数据抓取成功率与稳定性。适用于需要频繁抓取互联网数据的应用场景。
338 3
WebDriver与Chrome DevTools Protocol:如何在浏览器自动化中提升效率
|
22小时前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
15 9
|
18天前
|
Web App开发 开发者
|
20天前
|
Web App开发 JSON 安全
Chrome浏览器的跨域问题
【10月更文挑战第6天】
|
24天前
|
Web App开发 缓存 安全
Chrome浏览器启动参数大全
这是一组用于定制浏览器行为的命令行参数,包括但不限于:不停用过期插件、放行非安全内容、允许应用中心脚本、停用GPU加速视频、禁用桌面通知、禁用拓展及各类API、调整缓存设置、启用打印预览、隐身模式启动、设定语言、使用代理服务器、无头模式运行等。通过这些参数,用户可以根据需求灵活调整浏览器功能与性能。
|
2月前
|
Web App开发 存储 前端开发
Chrome浏览器的跨域问题
Chrome浏览器的跨域问题
|
3月前
|
Web App开发
Chrome——谷歌浏览器chrome如何模拟其他客户端
Chrome——谷歌浏览器chrome如何模拟其他客户端
98 1
Chrome——谷歌浏览器chrome如何模拟其他客户端
|
3月前
|
Web App开发 JSON 安全
【跨域难题终结者】:一键解锁Chrome浏览器神秘设置,彻底告别开发阶段的跨域烦恼!
【8月更文挑战第20天】跨域是前端开发常遇难题,尤其在前后端分离项目中。浏览器因安全考量会阻止不同源间的请求。本文对比CORS、JSONP、代理服务器等解法,并介绍开发阶段通过调整Chrome设置来临时禁用跨域限制的方法,提供启动Chrome及使用`fetch`API示例,适合快速测试。但请注意这不适用于生产环境,存在一定安全风险。
591 1