我有一个作为通用 32 位包构建的自定义 OS X NPAPI 插件。它在 Firefox 的 OS x 10.6 下运行良好。它在以 32 位模式启动的 Safari 中也运行良好。
但是,它在以 64 位模式启动的 Safari 中静默失败。64 位 Safari 在单独的进程 (WebKitPluginHost) 中运行 32 位插件。插件日志显示主机启动插件,调用NP_Initialize,然后调用NP_GetEntryPoints,再调用NPP_New,成功返回创建的实例。通常,下一个调用的插件方法是 NPP_SetWindow,但是主机从不调用它。相反,它在启动后大约 10 秒内静默退出,没有任何消息或其他任何内容。我设法使用 GDB 附加到主机进程,但没有运气,它只是注意到该进程已正常完成。
我非常感谢任何提示我可能在插件中做错了什么,或者开源 NPAPI 插件的 URL,该插件已知在 WebKitPluginHost 下工作,甚至提示什么是调试此问题的最佳方法(构建调试WebKit 版本是最后的手段,我去过那里,现在我需要更快地找到解决方案)