Adaptor NPAPI-plugin PPAPI-HOST.
Seperti yang Anda ketahui, Adobe telah menangguhkan pengembangan lebih lanjut plugin Flash Player untuk GNU/Linux. Terbaru tersedia sebagai plugin NPAPI versi 11.2 akan mendapatkan pembaruan keamanan selama lima tahun (sejak dirilis pada 4 Mei 2012), tetapi pengembangan lebih lanjut telah dihentikan. Untungnya atau tidak, versi yang lebih baru masih tersedia untuk Linux sebagai bagian dari browser Chrome, di mana Flash hadir dalam bentuk plugin PPAPI. PPAPI atau Pepper Plugin API adalah antarmuka yang dipromosikan oleh tim Chromium/Chrome untuk plugin browser. Ini adalah API yang terinspirasi oleh NPAPI namun sangat berbeda yang memiliki setiap plugin fungsi yang mungkin diinginkan. Grafik dua dimensi, OpenGL ES, rendering font, akses jaringan, audio, dan sebagainya. Ini sangat besar, ada 111 kelompok fungsi, yang disebut antarmuka yang saat ini ditawarkan Browser Chromium ke plugin. Meskipun spesifikasi belum final, dan versi antarmuka baru muncul, dengan beberapa yang lebih tua dihapus; Laju perubahan telah melambat secara signifikan.
Karena berbagai alasan pengembang Firefox tidak tertarik sekarang menerapkan PPAPI di Firefox. Namun itu tidak berarti itu tidak bisa dilakukan.
Tujuan utama dari proyek ini adalah untuk mendapatkan pemain flash PPAPI (Pepper) yang bekerja di Firefox. Ini bisa dilakukan dengan dua cara. Yang pertama adalah mengimplementasikan antarmuka PPAPI penuh di Firefox itu sendiri. Yang lainnya adalah mengimplementasikan pembungkus, beberapa jenis adaptor yang akan terlihat seperti browser ke plugin PPAPI dan terlihat seperti plugin NPAPI untuk browser.
Pendekatan pertama membutuhkan pengetahuan yang kuat tentang internal Firefox, dan lebih lanjut upaya tambahan untuk mendapatkan kode menjadi arus utama. Mempertahankan satu set tambalan tidak terlihat seperti ide yang bagus. Pendekatan kedua memungkinkan untuk berkonsentrasi pada dua API saja. Ya, salah satunya besar, tetapi masih dapat dipahami. Cara kedua akan digunakan untuk proyek. Ini akan menguntungkan browser lain juga, tidak hanya Firefox.
Kebanyakan bekerja. Sepertinya semua API penting diimplementasikan.
dijelaskan di sini.
Semua dokumentasi API plugin lada yang tersedia biasanya disertai dengan pernyataan keamanan yang ditingkatkan karena penggunaan kotak pasir aktif. Perlu dicatat, bahwa API itu sendiri tidak membuat kotak pasir, itu hanya memungkinkan implementasi kotak pasir. Implementasi khusus ini tidak mengimplementasikan kotak pasir apa pun . Itu berarti jika ada kode berbahaya yang menembus keamanan plugin, tidak ada hambatan tambahan. Ini adalah tingkat keamanan yang sama dengan NPAPI Flash.
Proyek menggunakan CMake (> = 2.8.8) Build System.
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
(Opsional) Untuk mengaktifkan dukungan pulseaudio, instal libpulse-dev .
(opsional) Untuk mengaktifkan dukungan jack, menginstal libjack-jackd2-dev dan libsoxr-dev
Buat subdirektori build di direktori root, dari folder itu, panggil
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
$ make
libfreshwrapper-flashplayer.so ke direktori plugin browser ( ~/.mozilla/plugins ) atau instal sistem-lebar dengan menelepon: # make install
Secara default make install akan menempatkan plugin ke ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/mozilla/plugins . Jalur dapat diubah baik dengan mengubah parameter cmake CMAKE_INSTALL_PREFIX , atau dengan mengatur MOZPLUGIN_INSTALL_DIR .
Ketika dimuat oleh browser itu akan mencari libpepflashplayer.so di direktori di mana itu bisa: dalam direktori chrome (stabil/beta/tidak stabil), dan di /usr/lib/pepperflashplugin-nonfree/ (pepperflashplugin-nonfree meletakkannya di sana). Seharusnya cukup untuk menjalankannya, tetapi jika tidak, tentukan jalur penuh di ~/.config/freshwrapper.conf . Anda dapat menemukan file konfigurasi sampel di /data . Lebih baik memiliki manifest.json bersama dengan libpepflashplayer.so , versi flash yang sebenarnya akan diambil dari manifes itu.
Kode decoding video yang dipercepat perangkat keras memerlukan versi LibavCodec yang relatif baru (Januari 2013, versi 54.39.0). Jika Anda belum memilikinya, kode tidak akan dikompilasi kecuali Anda menonaktifkan HWDEC dengan WITH_HWDEC=0 . Untuk melakukannya, ubah perintah langkah konfigurasi ke:
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_HWDEC=0 ..
Catatan, bahkan jika decoding video yang diperkuat perangkat keras masih dinonaktifkan secara default. Anda perlu secara eksplisit mengaktifkannya dalam file konfigurasi.
Meskipun lebih baik menggunakan implementasi sistem OpenGL | ES 2, masih dimungkinkan untuk memanfaatkan emulasi GLES2 sudut dengan menambahkan WITH_GLES2=0 ke baris perintah cmake pada waktu konfigurasi ( -DWITH_GLES2=0 tepatnya). Catatan, yang membutuhkan kompiler C ++ 11 yang berkemampuan.
Lisensi MIT. Lihat file LICENSE untuk teks lengkap.
Direktori 3rdparty/ berisi kode sumber dari pihak ke -3 yang dapat didistribusikan berdasarkan persyaratan lisensi lainnya. Lihat Kode Sumber untuk detailnya.