WebKitPluginHost在OS X 10.6上静默退出我的32位插件

时间:2009-12-24 14:30:19

标签: macos webkit osx-snow-leopard npapi

我有一个自定义OS X NPAPI插件,内置为通用32位捆绑包。它在Firefox中的OS x 10.6下工作正常。它在Safari以32位模式启动时运行良好。

然而,它在64位模式下启动的Safari中无声地失败。 64位Safari在一个单独的进程(WebKitPluginHost)中运行32位插件。插件日志显示主机启动插件,调用NP_Initialize,然后调用NP_GetEntryPoints,然后调用NPP_New,后者成功返回创建的实例。通常,调用的下一个插件方法是NPP_SetWindow,但是,主机从不调用它。相反,它会在启动后大约10秒内静默退出,没有消息或其他任何消息。我设法通过GDB附加到主机进程,但没有运气,它只是注意到该进程已正常完成。

我非常感谢任何提示我在插件中可能做错了什么,或者知道在WebKitPluginHost下工作的开源NPAPI插件的URL,或者甚至提示调试此问题的最佳方法(构建WebKit的调试版本是最后的手段,我去过那里,现在我需要更快地找到解决方案)

2 个答案:

答案 0 :(得分:2)

似乎WebKitPluginHost明确要求插件设置NPPVpluginDrawingModel。由于插件没有窗口,我从不打扰这样做,而且效果很好。

我将生命中的六个小时挖掘出来:(

答案 1 :(得分:0)

在二进制文件中构建一个64位段的胖版本似乎是最先做的事情。