سؤال

من خلال ما جمعته، يمكن لـ Google Chrome تشغيل المكونات الإضافية للمتصفح المكتوبة باستخدام NPAPI.

لقد كتبت واحدة تؤدي وظيفتها بشكل جيد في Firefox، ولكنها تجعل Chrome يتعطل ويحترق بمجرد تضمينه في الصفحة.لا أحتاج حتى إلى استدعاء أي من أساليبي، فالتضمين يكفي للتسبب في حدوث عطل.

كيف يمكنني تصحيح هذا؟لقد حاولت إرفاق مصحح الأخطاء بالكروم ولكن آثار المكدس التي أحصل عليها موجودة في أعماق Chrome نفسه وكما قلت، لم يتم تشغيل أي من التعليمات البرمجية الفعلية "الخاصة بي"، ولكن من المفترض فقط تشغيل كود NPAPI init.

سأقدر بعض المؤشرات.

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

المحلول 3

وكما اتضح، وهي جزء من رمز التهيئة من NPAPI المساعد سبيل المثال القديم كنت تستخدم تسبب في تحطم الطائرة. أنا آسف أن أقول حل هذه فترة طويلة ذهابا ولا يمكن أن يبدو لتحديد تعديلات محددة أدليت به لاصلاحها في تاريخ التحكم في الإصدار. على أي حال، هو ثابت مشكلتي وكان سببها لي يجري غبي والثقة عمياء رمز المثال.

نصائح أخرى

تصف مستندات تطوير Chromium بعض الحيل لربط Visual Studio بعمليات Chrome: وثائق مطور Chromium > تصحيح أخطاء Chromium.

بعض المشكلات التي قد تواجهها مع مكون NPAPI الإضافي في Chrome:

  • سيتم تشغيل المكون الإضافي الخاص بك في عملية منفصلة عن واجهة مستخدم Chrome.(ربما تعرف هذا بالفعل :)
  • إذا تم تحميل مثيلات متعددة من المكون الإضافي الخاص بك (في نفس صفحة HTML أو في علامات تبويب Chrome مختلفة)، فستكون مثيلات المكون الإضافي لديك سوف يتم تشغيله في نفس العملية معًا.إذا كان لديك متغيرات عامة، فقد تكون مثيلات المكونات الإضافية الخاصة بك تدوس على بعضها البعض.
  • يستخدم Chrome DEP (حماية تنفيذ البيانات)، لكن Firefox لا يستخدمه.إذا كنت تستخدم ATL أو غيرها من حيل التعليمات البرمجية JITted، فقد يؤدي DEP إلى تعطل المكون الإضافي الخاص بك.

وكروم هو مفتوح المصدر ... هل حاولت تحميل المصدر وبناء عليه؟ بهذه الطريقة، يمكنك على الأقل يمكن أن نشير IDE لشجرة شفرة المصدر ويكون ذلك السيارات إرفاق حين يعطل، التي يمكن أن تعطيك أكثر قليلا من المعلومات حول ما حدث.

وهذا لن يحل الشوائب، وبطبيعة الحال، ولكن قد تساعدك على تقرير واحد لفريق الكروم. وكما تعلمون جيدا جدا، وAPI البرنامج المساعد الجديد إلى حد ما إلى الكروم، وأنه من الممكن أن الخطأ هو ملكهم وليس لك.

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