Chrome PPAPI 開發環境

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 目錄。

  1. 想要查看已經安裝或未安裝的 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 爲開發版,更新最快,新功能最多,但是可能非常不穩定,適合開發人員使用

  2. 使用 naclsdk update 命令下載推薦的捆綁包,他將會下載當前的 “stable” 捆綁包。 
    在 Mac/Linux 平臺:

    $ ./naclsdk update

    在 Windows 平臺:

    > naclsdk update
  3. 如果想要安裝指定的捆綁包,可以執行

    $ ./naclsdk update pepper_36
  4. 可以通過 naclsdk update --force 命令升級捆綁包
  5. 可以使用 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 的基礎上新增了 NaCl32NaCl64NaClARMPNaCl 和 PPAPI

更詳細的信息請參看 官方文檔

設置 Chrome

最後需要設置 Chrome 以啓用 Native Client 支持:

  1. 在 Chrome 瀏覽器地址欄中輸入"chrome://flags"
  2. 將 #enable-nacl#enable-nacl-debug、及 #allow-nacl-socket-api 設爲啓用
    chrome_flags_nacl
  3. 在 Chrome 瀏覽器地址欄中輸入"chrome://nacl",檢查 nacl 是否啓用成功 
    chrome_flags_nacl

至此,PPAPI 插件開發環境配置完成!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章