【发布时间】:2010-05-17 02:07:20
【问题描述】:
到目前为止,我一直在尝试让 Mac OS X 上的 Google Chrome(6.0.401.1 dev)加载 NPAPI 插件,但没有成功。我一直在研究 npsimple 示例:http://git.webvm.net/?p=npsimple。
在 Mac 上使用 gcc 和在 Windows 上使用 VC++ 2008 我设法让它在 Mac OS X 上的 Safari 和 Firefox 以及 Windows 上的 Firefox 和 Google Chrome 上运行,但在 Mac OS X 上的 Google Chrome 上却没有。
当尝试在 Mac OS X 上调试 Google Chrome 时,Google Chrome 似乎在启动时短暂地加载(并立即 dyld-卸载)插件,但实际上并未在插件中查找任何符号或调用任何职能。不过,它似乎对每个插件都这样做。
此外,当加载带有插件嵌入标签的页面时,谷歌浏览器似乎甚至没有对插件进行 dyld 加载,也没有调用任何函数(甚至没有调用 NP_GetEntryPoints)。谷歌浏览器也不会输出任何错误信息,它只是不加载插件。我不确定我是否使用 gdb 捕获了所有内容,因为 Google Chrome 使用了不同的进程,但我也尝试了所有开关,如 --no-sandbox、--single-process 和 --plugin-startup-dialog(顺便说一下,这在 Mac OS 上似乎根本不起作用X)。我还确保了二进制匹配的架构(即 Google Chrome 的 32 位)。
以前有没有人遇到过类似的问题?我在这里有什么遗漏吗,比如编译时的 gcc 开关之类的?
任何帮助将不胜感激。
【问题讨论】:
-
--单进程对于 Mac 上的插件调试不是一个好主意; NPAPI 插件在 Mac Chrome 的单进程模式下并不能真正工作。 --plugin-startup-dialog 不显示对话框,但会将 PID 记录到控制台并暂停插件。
标签: macos google-chrome plugins npapi