WebKitPluginhost إنه يتوقف بصمت عن مكون الإضافي 32 بت على OS X 10.6

StackOverflow https://stackoverflow.com/questions/1958521

سؤال

لدي مكون مخصص OS X NPAPI تم تصميمه كحزمة عالمية 32 بت. إنه يعمل بشكل جيد تحت OS X 10.6 في Firefox. كما أنه يعمل بشكل جيد في Safari الذي تم إطلاقه في وضع 32 بت.

ومع ذلك ، فإنه فشل بصمت في Safari الذي تم إطلاقه في وضع 64 بت. يعمل Safari 64 بت على تشغيل 32 بت من الإضافات في عملية منفصلة (WebKitPluginHost). يوضح سجل البرنامج المساعد أن المضيف يبدأ المكون الإضافي ، ويقوم بالاتصال np_initialize ، ثم np_getentrypoints ، ثم NPP_New ، الذي يعيد بنجاح مثيل تم إنشاؤه. عادةً ما تكون طريقة البرنامج المساعد التالي المسمى NPP_SETWINDOW ، ومع ذلك ، فإن المضيف لا يدعوها أبدًا. بدلاً من ذلك ، استقال بصمت في حوالي 10 ثوانٍ من الإطلاق ، بدون أي رسائل أو أي شيء آخر. تمكنت من إرفاق عملية المضيف باستخدام GDB ، ولكن بدون حظ ، يلاحظ فقط أن العملية قد انتهت بشكل طبيعي.

كنت أقدر كثيرًا أي تلميح ما قد ارتكبته في البرنامج المساعد ، أو عنوان URL من المكون الإضافي المفتوح NPAPI الذي يُعرف أنه يعمل تحت WebKitPluginhost ، أو حتى تلميح ما قد يكون أفضل طريقة لتصحيح هذه المشكلة (بناء تصحيح الأخطاء إصدار WebKit هو الملاذ الأخير ، لقد كنت هناك والآن أحتاج إلى العثور على حل أكثر أسرع)

هل كانت مفيدة؟

المحلول

يبدو أن WebKitPlugInhost يتطلب بشكل صريح المكون الإضافي لتعيين NPPVplugindRawingModel. نظرًا لأن البرنامج المساعد كان بلا نوافذ ، لم أزعجني أبدًا القيام بذلك ، وقد نجح الأمر بشكل جيد.

ناقص ست ساعات من حياتي لحفر ذلك :(

نصائح أخرى

يبدو أن بناء نسخة سمينة مع شريحة 64 بت في الثنائي هو الشيء الأكثر وضوحًا الذي يجب القيام به أولاً.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top