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,在 https://developer.chrome.com/native-client/sdk/download 下載
- Python 2.7,確保 Python 可執行文件在 PATH 變量中,Python 3.x 還不支持。
- Make, Windows 平臺上,GNU Make 包含在 Native Client SDK 中。其他平臺需要自行安裝。
安裝 SDK
首先下載 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)
安裝 vs_addin
剛更新下來的 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
最後需要設置 Chrome 以啓用 Native Client 支持:
- 在 Chrome 瀏覽器地址欄中輸入"chrome://flags"
- 將
#enable-nacl
、#enable-nacl-debug
、及#allow-nacl-socket-api
設爲啓用 - 在 Chrome 瀏覽器地址欄中輸入"chrome://nacl",檢查 nacl 是否啓用成功
至此,PPAPI 插件開發環境配置完成!!!