加載我忙現有firebreath插件here改爲使用使得通過OS和GPG二進制通話GPGME轉換。Firebreath插件無法在Chrome
我設法得到的代碼在X32系統上使用VS 2010的窗戶,但加載插件在Chrome我不能在所有訪問NPAPI代碼後進行編譯。即使簡單的版本調用失敗。
當加載插件我沒有得到任何明顯的錯誤,但使用sawbuck日誌查看器用於鑲邊時,我得到下面的erorr消息。
.\renderer\webplugin_delegate_proxy.cc 347 PluginMsg_Init returned false
..\plugins\npapi\webplugin_impl.cc 271 Couldn't initialize plug-in
我試圖用我的代碼firebreath 1.4和1.6都沒有工作。經過一些簡單的調試,似乎使用gpgme提供的任何代碼(不管它是否被調用)都會導致插件中斷。
我通過執行以下得出這一結論。
- 創造了firebreath(1.4版和1.6)
- 添加gpgme.h頭來gmailGPGAPI.cpp和改變沒有別的除了添加必需的參考路徑項目中的新項目。
- 生成該項目以創建DLL(這生成的dll罰款)。
- 與DLL替換現有DDL在我的項目在步驟2中,並與下面的代碼段
插件=使用document.createElement(「對象」)進行測試; plugin.id ='插件';
plugin.type ='application/x-gmailtest';
document.body.appendChild(plugin);
console.log(「my plugin returned:」+ plugin.valid);
console.log(「my plugin returned:」+ plugin.version);
- 這將返回valid = true,並且該版本會返回我設置爲的值。
- 然後我修改了gmailGPGAPI.cpp,現在通過在版本方法中調用gpgme_check_version(NULL)來返回gpg版本。我使用該方法是因爲它可能是我可以測試的最簡單的返回函數。
- 構建插件和複製的dll到瀏覽器擴展程序與步驟3-4。按照預期,插件再次生成。
- 加載插件並嘗試執行第4步中的代碼,此時它只是返回未定義的任何屬性或方法,我嘗試訪問該插件。除了記錄到sawbuck的錯誤外,沒有任何錯誤輸出到控制檯或chrome中的任何其他位置。
我不知道在哪裏看或嘗試,因爲我似乎無法得到一個可操作的錯誤工作。我還通過測試代碼減少了一個新項目的一行更改,以便更容易地找到問題。
我應該注意回購代碼在linux/OSX中正常生成並正確加載到chrome中,所以我知道在某些級別我的代碼確實有效。
永遠不會*永遠不會*在對象標籤上設置mimetype,直到將其注入DOM之後。 – taxilian
RC1140,我不確定你是否知道這個,但我的插件webpg-npapi(https://github.com/kylehuff/webpg-npapi/)被設計成一個到GnuPG的嵌入式瀏覽器界面 - 你的一些代碼是基於我的其他插件 - gpgauth-npapi - 但是對於特定任務來說,它的範圍更窄。我建議在你的擴展中使用webpg-npapi爲GnuPG提供一個統一的接口。該插件是GPL,可在Windows,Linux和OSX上運行。 github.com上的我自己的擴展webpg-chrome的源代碼可以用作訪問webpg-npapi提供的方法的參考。 – kylehuff
嗨凱爾我會再看一遍,但不能讓你的插件輕鬆地在Windows上構建。現在我已經想通了,我會看看如果我可以使用您的插件作爲替代方案的下降。我過去曾經用過你的代碼作爲參考,但問題是atm正在使用chrome加載插件,而不是插件中的代碼。 – RC1140