У меня есть собственный плагин OS X NPAPI, созданный как универсальный 32-битный пакет. Он отлично работает под OS x 10.6 в Firefox. Он также отлично работает в Safari, запущенном в 32-битном режиме.
Однако в Safari, запущенном в 64-битном режиме, он не работает. 64-битный Safari запускает 32-битные плагины в отдельном процессе (WebKitPluginHost). Журнал плагина показывает, что хост запускает плагин, вызывает NP_Initialize, затем NP_GetEntryPoints, затем NPP_New, который успешно возвращает созданный экземпляр. Как правило, следующим вызываемым методом плагина будет NPP_SetWindow, однако хост никогда не вызывает его. Вместо этого он молча завершается через 10 секунд после запуска, без сообщений или чего-либо еще. Мне удалось подключиться к хост-процессу с помощью GDB, но безуспешно, он просто отмечает, что процесс завершился нормально.
Я был бы очень признателен за любую подсказку о том, что я мог сделать неправильно в плагине, или URL-адрес плагина с открытым исходным кодом NPAPI, который, как известно, работает под WebKitPluginHost, или даже подсказку, что было бы лучшим способом отладить эту проблему (создание отладочной версии WebKit - последнее средство, я был там, и теперь мне нужно найти решение немного быстрее)