Google chrome NPAPI插件没有';我不能在谷歌浏览器上工作

Google chrome NPAPI插件没有';我不能在谷歌浏览器上工作,google-chrome,npapi,Google Chrome,Npapi,我使用一个旧的Mozilla NPRuntime示例作为基础编写了一个小的NPAPI插件。我的问题是,它在Firefox和Safari(Windows)上运行良好,但在Google Chrome上无法运行 我可以看到插件在大约:插件刚刚好,我看到Chrome启动了一个新的进程运行插件当我打开我的测试页面,插件进程死亡约10秒没有任何错误对话框。在10秒内,进程处于活动状态,访问可编写脚本的插件对象不起作用(在使用Firefox或Safari时效果很好) 你知道什么会导致Chrome在10秒后终止

我使用一个旧的Mozilla NPRuntime示例作为基础编写了一个小的NPAPI插件。我的问题是,它在Firefox和Safari(Windows)上运行良好,但在Google Chrome上无法运行

我可以看到插件在大约:插件刚刚好,我看到Chrome启动了一个新的进程运行插件当我打开我的测试页面,插件进程死亡约10秒没有任何错误对话框。在10秒内,进程处于活动状态,访问可编写脚本的插件对象不起作用(在使用Firefox或Safari时效果很好)


你知道什么会导致Chrome在10秒后终止插件进程吗?必须与初始化相关,因为即使我没有以任何方式访问插件,它也会杀死它。

很难说清楚,但您可以使用--plugin startup dialog命令行参数,让Chrome在加载插件时在同一过程中弹出警报。然后,您可以将调试器附加到该进程,并有望捕获错误

您可以查看以进行比较,看看是否可以发现初始化代码中的任何主要差异,因为它在Chrome中运行良好。不过,我建议附加一个调试器,并单步执行代码直到崩溃。在NPP_New、NPP_Destroy和NPP_SetWindow的每个入口点设置断点,然后查看发生了什么

另一种选择是尝试从源代码构建Chromium(虽然不是很难,但很耗时),然后您可以得到一个完整的堆栈跟踪,直到它停止工作的地方


祝你好运

多亏了Taxilian的提示,我能够调试初始化序列,并发现示例插件在Chrome调用插件的NP_Initialize()时返回了一个错误。示例插件进行了检查,以确保插件兼容中使用的NPNetscapeFuncs结构定义的大小至少与浏览器提供的大小相同。Chrome使用的结构版本19自然比最新Mozilla XUL Runner SDK的版本22小,我从中获得了npapi.h和npruntime.h.

此外,如果它没有输入插件代码,并且您在windows上,使用depends.exe评测chrome可以提供有价值的提示。使用-plugin启动对话框可以调试初始化序列并找到问题。非常感谢。如果是特定于chrome的,您能告诉我们更多问题是什么吗?