Chrome瀏覽器擴充套件開發系列之十一:NPAPI外掛的使用

Chrome擴充套件開發極客發表於2015-09-25

在Chrome瀏覽器擴充套件中使用HTML和JavaScript非常容易,但是如何重用已有的非JavaScript遺留系統程式碼呢?答案是將NPAPI外掛繫結到Chrome瀏覽器擴充套件,從而實現在Chrome瀏覽器擴充套件中通過JavaScript呼叫遺留系統程式碼。

注意,出於安全性的考慮,NPAPI已經於2015年開始被Chrome瀏覽器全面禁用。請使用PPAPI(Pepper Plugin API)開發新外掛,詳情請關注本文的後續內容。

下面介紹的內容僅供參考。

由於NPAPI外掛中的程式碼擁有各種許可權,Chrome瀏覽器無法設定任何限制,所以對於來自NPAPI外掛的輸入引數必選格外小心。由於NPAPI的安全風險,在將包含NPAPI外掛的Chrome瀏覽器擴充套件釋出到Chrome Web Store時,需要人工檢查。

要在Chrome瀏覽器擴充套件中使用NPAPI外掛,首先要在manifest.json檔案中宣告NPAPI外掛的位置等資訊如下:

{

...

"plugins": [

{ "path": "extension_plugin.dll" }//相對於manifest.json檔案的相對路徑

{ "public": true }//Web頁面或content scripts是否可訪問該NPAPI外掛,

//預設false,表示只有Chrome瀏覽器擴充套件才能夠訪問

],

...

}

其次,需要在Chrome瀏覽器擴充套件中(public=false)或任何Web頁面或content scripts中(public=true)的HTML檔案中通過MIME型別載入NPAPI外掛,示例如下:

<embed type="application/x-my-extension" id="pluginId">

<script>

var plugin = document.getElementById("pluginId");

var result = plugin.myPluginMethod(); //呼叫NPAPI外掛中的方法

console.log("my plugin returned: " + result);

</script>

注意,替換上述頁面中的x-my-extension為合適的MIME型別。

相關文章