WebKitPluginHost молча завершает мой 32-битный плагин на OS X 10.6 - PullRequest
1 голос
/ 24 декабря 2009

У меня есть собственный плагин 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 - последнее средство, я был там, и теперь мне нужно найти решение немного быстрее)

Ответы [ 2 ]

2 голосов
/ 24 декабря 2009

Оказалось, что WebKitPluginHost явно требует, чтобы плагин устанавливал NPPVpluginDrawingModel. Так как плагин был без окон, я никогда не удосужился сделать это, и он работал нормально.

Минус шесть часов моей жизни за это: (

0 голосов
/ 24 декабря 2009

Построение полной версии с 64-битным сегментом в двоичном файле, казалось бы, наиболее очевидная вещь, которую нужно сделать в первую очередь.

...