https://www.cnblogs.com/snowyying/p/5458765.html
https://blog.csdn.net/y601500359/article/details/72821974
https://www.pressc.cn/1049.html(比较详细)
Pepper Plugin API (PPAPI) plugins 是 Google 在原有网景 NPAPI(Netscape Plugin API) 基础上开发全新浏览器插件,它将外挂插件全部放到沙盒里运行,具有更高的安全性。 PPAPI 目前支持 Chrome 浏览器及基于 Chromium 内核的浏览器。
PPAPI 基于 Google Native Client 技术实现,所以,这篇文章将讲述如何下载、安装和配置 Google Native Client SDK。
当前系统版本为 Windows 10 64 位,开发环境为 Visual Studio 2017,由于众所周知的原因,下载和配置 Native Client SDK 需要借助网络工具 。
值得一提的是,2016年10月12日,一篇关于 Chromium 问题追踪的评论指出,谷歌的 Pepper 和 Native Client 团队已经被解散了。在2017年5月30日,谷歌宣布停止支持 PNaCl ,拥抱 WebAssembly。
首先下载 Native Client SDK,下载完成后解压 nacl_sdk.zip,以管理员身份打开命令提示符,进入 nacl_sdk 目录。
想要查看已经安装或未安装的 SDK 捆绑包,可以通过 list
命令。
在 Mac/Linux 平台:
$ cd nacl_sdk
$ ./naclsdk list
在 Windows 平台:
> cd nacl_sdk
> naclsdk list
你应该会看到类似的输出:
Bundles:
I: installed
*: update available
I sdk_tools (stable)
I vs_addin (dev)
pepper_47 (post_stable)
I pepper_49 (stable)
pepper_50 (beta)
pepper_55 (beta)
pepper_56 (dev)
pepper_canary (canary)
其中 I
表示已经安装的捆绑包,*
表示可以更新的捆绑包。
post_stable 为前一个稳定版本
stable 为稳定版,推荐追求稳定的普通用户使用,更新最慢。
beta 为测试版,有一定新功能,但是可能会存在不稳定情况,适合喜欢尝鲜的朋友使用,更新速度一般。
dev 为开发版,更新最快,新功能最多,但是可能非常不稳定,适合开发人员使用
使用 naclsdk update
命令下载推荐的捆绑包,他将会下载当前的 “stable” 捆绑包。
在 Mac/Linux 平台:
$ ./naclsdk update
在 Windows 平台:
> naclsdk update
如果想要安装指定的捆绑包,可以执行
$ ./naclsdk update pepper_36
naclsdk update --force
命令升级捆绑包naclsdk help
命令查看软件帮助。可能是由于使用了网络工具,执行 naclsdk update
命令时遇到了下面的错误:
third_party.fancy_urllib.InvalidCertificateException: Host storage.googleapis.com returned an invalid certificate ([SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)):
To learn more, see http://code.google.com/appengine/kb/general.html#rpcssl
这是由于 HTTPS 证书引起的问题,我用的解决办法是将 HTTPS 替换为 HTTP。
打开 nacl_sdk\sdk_tools
目录下的 download.py
文件,修改 UrlOpen
方法为:
def UrlOpen(url):
request = fancy_urllib.FancyRequest(url.replace("https://", "http://"))
ca_certs = os.path.join(SCRIPT_DIR, 'cacerts.txt')
request.set_ssl_info(ca_certs=ca_certs)
#url_opener = urllib2.build_opener(
# fancy_urllib.FancyProxyHandler(),
# fancy_urllib.FancyRedirectHandler(),
# fancy_urllib.FancyHTTPSHandler())
url_opener = urllib2.build_opener()
url_opener.addheaders = [('User-agent', 'Mozilla/5.0')]
return url_opener.open(request)
刚更新下来的 nacl_sdk 没有 vs_addin,需要用命令 naclsdk update sdk_addin
进行安装(Win10 下需要管理员权限)。默认安装的 vs_addin 只支持 VS 2010 和 VS 2012,如果想要支持 VS 2017 则需要更改 install.py
和create_ppapi_platform.py
文件,增加两个文件夹,修改 PPAPI_Patch
文件夹里面的相关文件。
可以下载修改好的 vs_addin 文件,也可以根据需要自行修改。
然后需要设置环境变量 “NACL_SDK_ROOT” 指向 nacl_sdk (本文为 papper_49) 的路径,NACL_SDK_ROOT = D:\Thirdparty\nacl_sdk\pepper_49
;环境变量 “CHROME_PATH” 指向 "Chrome.exe" 的路径,CHROME_PATH = C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
。
最后进入 sdk_addin
目录,执行 install
命令安装,安装完成后可以看到 Visual Studio 的解决方案平台在 x64
和 x86
的基础上新增了 NaCl32
、NaCl64
、NaClARM
、PNaCl
和 PPAPI
。
更详细的信息请参看 官方文档。
最后需要设置 Chrome 以启用 Native Client 支持:
#enable-nacl
、#enable-nacl-debug
、及 #allow-nacl-socket-api
设为启用至此,PPAPI 插件开发环境配置完成!!!