加载我忙现有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