PPAPI-Host NPAPI-plugin محول.
كما تعلمون ، أوقفت Adobe مزيد من تطوير Play Player Plugin لـ GNU/Linux. الأحدث المتاح كإصدار مكون إضافي NPAPI سيحصل على تحديثات أمان لمدة خمس سنوات (منذ إصداره في 4 مايو 2012) ، ولكن تم إيقاف مزيد من التطوير. لحسن الحظ أم لا ، لا تزال الإصدارات الأحدث متوفرة لـ Linux كجزء من متصفح Chrome ، حيث يأتي Flash في شكل مكون إضافي PPAPI. PPAPI أو Pepper Plugin API هي واجهة تروج لها فريق Chromium/Chrome لمكونات الإضافات المتصفح. إنها واجهة برمجة تطبيقات مستوحاة من NPAPI- لكنها مختلفة بشكل كبير والتي لديها كل مكون إضافي يمكن تصوره. الرسومات ثنائية الأبعاد ، OpenGL ES ، تقديم الخطوط ، الوصول إلى الشبكة ، الصوت ، وما إلى ذلك. إنها ضخمة ، هناك 111 مجموعة من الوظائف ، تسمى واجهات التي يوفرها متصفح Chromium اليوم للإضافات. على الرغم من أن المواصفات ليست نهائية بعد ، وتنشأ إصدارات الواجهة الجديدة ، حيث يتم حذف بعض الأقدم ؛ لقد تباطأ معدل التغيير بشكل كبير.
لأسباب مختلفة ، لا يهتم مطورو Firefox الآن بتنفيذ PPAPI في Firefox. ومع ذلك هذا لا يعني أنه لا يمكن القيام به.
الهدف الرئيسي من هذا المشروع هو الحصول على مشغل فلاش PPAPI (Pepper) يعمل في Firefox. يمكن القيام بذلك بطريقتين. الأول هو تنفيذ واجهة PPAPI كاملة في Firefox نفسها. الآخر هو تنفيذ غلاف ، نوع من المحول الذي سيبدو وكأنه متصفح إلى البرنامج المساعد PPAPI ويبدو مثل NPAPI المكون الإضافي للمتصفح.
يتطلب النهج الأول معرفة قوية بالداخلية في Firefox ، وعلاوة على ذلك بذل جهد إضافي للحصول على الكود في التيار الرئيسي. لا يبدو الحفاظ على مجموعة من البقع فكرة جيدة. النهج الثاني يسمح بالتركيز على اثنين من واجهات برمجة التطبيقات فقط. نعم واحد منهم كبير ، لكنه لا يزال يمكن فهمه. سيتم استخدام الطريقة الثانية للمشروع. سوف يفيد المتصفحات الأخرى أيضًا ، وليس فقط Firefox.
في الغالب يعمل. يبدو أن جميع واجهات برمجة التطبيقات الأساسية يتم تنفيذها.
الموصوفة هنا.
جميع وثائق واجهة برمجة تطبيقات Pepper Plugin المتاحة عادة ما تكون مصحوبة بتأكيدات على الأمن المحسّن بسبب استخدام صندوق الرمل النشط. تجدر الإشارة إلى أن واجهة برمجة التطبيقات نفسها لا تصنع أي صندوق رمل ، فهي تسمح فقط للتطبيقات ذات الرمل. هذا التنفيذ بالذات لا ينفذ أي صندوق رمل . هذا يعني أنه إذا كان أي رمز ضار ينفجر من خلال أمان البرنامج المساعد ، فلا توجد حواجز إضافية. هذا هو نفس مستوى الأمان مثل NPAPI Flash.
يستخدم المشروع Cmake (> = 2.8.8) نظام الإنشاء.
Debian/Ubuntu:
$ sudo apt-get install cmake gcc g++ pkg-config ragel libasound2-dev
libssl-dev libglib2.0-dev libpango1.0-dev libgl1-mesa-dev
libevent-dev libgtk2.0-dev libxrandr-dev libxrender-dev
libxcursor-dev libv4l-dev libgles2-mesa-dev libavcodec-dev
libva-dev libvdpau-dev libdrm-dev libicu-dev
Fedora:
$ sudo dnf install cmake gcc gcc-c++ pkgconfig ragel alsa-lib-devel openssl-devel
glib2-devel pango-devel mesa-libGL-devel libevent-devel gtk2-devel
libXrandr-devel libXrender-devel libXcursor-devel libv4l-devel
mesa-libGLES-devel ffmpeg-devel libva-devel libvdpau-devel libdrm-devel
pulseaudio-libs-devel libicu-devel
(اختياري) لتمكين دعم pulseaudio ، تثبيت libpulse-dev .
(اختياري) لتمكين دعم المقبس ، وتثبيت libjack-jackd2-dev و libsoxr-dev
قم بإنشاء دليل فرعي build في دليل الجذر ، من هذا المجلد ، اتصل
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
$ make
libfreshwrapper-flashplayer.so في دليل الإضافات المتصفح ( ~/.mozilla/plugins ) أو تثبيت على مستوى النظام عن طريق الاتصال: # make install
بشكل افتراضي ، سيقوم make install بوضع المكون الإضافي (s) ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/mozilla/plugins . يمكن تغيير المسار إما عن طريق تغيير معلمة cmake CMAKE_INSTALL_PREFIX ، أو عن طريق تعيين MOZPLUGIN_INSTALL_DIR .
عند تحميله بواسطة المتصفح ، فإنه سوف يبحث عن دليل libpepflashplayer.so في الدلائل التي يمكن أن تكون فيها: في دليل Chrome (مستقر/بيتا/غير مستقر) ، وفي /usr/lib/pepperflashplugin-nonfree/ (pepperflashplugin-nonfree يضعه هناك). يجب أن يكون الأمر كافياً لتشغيله ، ولكن إذا لم يحدث ذلك ، حدد المسار الكامل في ~/.config/freshwrapper.conf . قد تجد ملف تكوين نموذج في /data . من الأفضل أن يكون هناك manifest.json جنبًا إلى جنب مع libpepflashplayer.so ، سيتم أخذ إصدار الفلاش الفعلي من هذا البيان.
يتطلب رمز فك تشفير الفيديو المرسلي للأجهزة إصدارًا جديدًا نسبيًا من LibavCodec (يناير 2013 ، الإصدار 54.39.0). إذا لم يكن لديك ذلك بعد ، فلن يتم تجميع الكود إلا إذا قمت بتعطيل HWDEC بواسطة WITH_HWDEC=0 . للقيام بذلك ، قم بتغيير أمر خطوة التكوين إلى:
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_HWDEC=0 ..
ملاحظة ، حتى لو تم تصميم فك تشفير الفيديو الذي تم تسريعه للأجهزة ، لا يزال معطلًا افتراضيًا. تحتاج إلى تمكينه بشكل صريح في ملف التكوين.
على الرغم من أنه من الأفضل استخدام تنفيذ النظام لـ OpenGL | ES 2 ، إلا أنه لا يزال من الممكن الاستفادة من مضاونة GLES2 الزاوية عن طريق إضافة WITH_GLES2=0 إلى سطر أوامر CMake في وقت التكوين ( -DWITH_GLES2=0 ليكون دقيقًا). ملاحظة ، يتطلب ذلك برنامج التحويل البرمجي C ++ 11 قادرًا.
ترخيص معهد ماساتشوستس للتكنولوجيا. انظر ملف LICENSE للنص الكامل.
الدليل 3rdparty/ يحتوي على رمز المصدر من الأطراف الثالثة التي يمكن توزيعها بموجب شروط الترخيص الأخرى. انظر رمز المصدر للحصول على التفاصيل.