2009-12-24 16 views
1

J'ai un plugin OS X NPAPI personnalisé construit en bundle universel 32 bits. Cela fonctionne bien sous OS X 10.6 dans Firefox. Il fonctionne également bien dans Safari lancé en mode 32 bits.WebKitPluginHost quitte silencieusement mon plugin 32 bits sous OS X 10.6

Cependant, il échoue silencieusement dans Safari lancé en mode 64 bits. Le 64 bits Safari exécute des plugins 32 bits dans un processus séparé (WebKitPluginHost). Le journal des plugins montre que l'hôte démarre le plugin, appelle NP_Initialize, puis NP_GetEntryPoints, puis NPP_New, qui renvoie l'instance créée avec succès. En règle générale, la prochaine méthode de plugin appelée sera NPP_SetWindow, mais l'hôte ne l'appelle jamais. Au lieu de cela, il se ferme silencieusement dans environ 10 secondes après le lancement, sans messages ou quoi que ce soit. J'ai réussi à joindre au processus hôte avec GDB, mais sans chance, il note juste que le processus s'est terminé normalement. J'apprécierais tout indice de ce que j'ai pu faire de mal dans le plugin, ou d'une URL de plugin NPAPI open source qui fonctionne sous WebKitPluginHost, ou même un indice de ce qui serait le meilleur moyen de déboguer ce problème (construire la version de débogage de WebKit est un dernier recours, j'ai été là et maintenant je dois trouver une solution un peu plus rapide)

Répondre

2

Il est apparu que WebKitPluginHost nécessite explicitement plugin pour définir NPPVpluginDrawingModel. Comme le plugin était sans fenêtre, je n'ai jamais pris la peine de le faire, et tout s'est bien passé.

moins six heures de ma vie pour creuser que sortir :(

+0

Bienvenue au club -. Au moins vous ne aviez besoin 6 heures ;) –

+0

La raison en est sans doute que Safari ne supporte pas les plug-ins QD OOP. Si vous ne négociez pas un modèle dans un plugin 32 bits, la valeur par défaut est QD. – smorgan

0

Construire une version grasse avec un segment 64 bits dans le binaire semblerait être la chose la plus évidente à faire en premier.

+0

Cela n'a pas été vraiment possible en raison de la bibliothèque propriétaire 3ème partie, désolé de ne pas mentionné que –