首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NPAPI插件在Google Chrome中不起作用

NPAPI插件在Google Chrome中不起作用
EN

Stack Overflow用户
提问于 2009-12-26 10:21:23
回答 2查看 4.4K关注 0票数 5

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

我可以在about: plugin中看到这个插件,当我打开我的测试页面时,我看到Chrome启动了一个运行插件的新进程,插件进程在大约10秒内结束,没有任何错误对话框。在这10秒内,访问可脚本化插件对象的进程不起作用(在使用Firefox或Safari时可以很好地工作)。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-26 14:26:53

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

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

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

祝好运!

票数 15
EN

Stack Overflow用户

发布于 2009-12-26 21:23:58

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1962474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档