อะแดปเตอร์ PPAPI-HOST NPAPI-PLUGIN
อย่างที่คุณทราบ Adobe ได้ระงับการพัฒนาปลั๊กอิน Flash Player เพิ่มเติมสำหรับ GNU/Linux ล่าสุดมีให้เป็นปลั๊กอิน NPAPI เวอร์ชัน 11.2 จะได้รับการอัปเดตความปลอดภัยเป็นเวลาห้าปี (นับตั้งแต่เปิดตัวในวันที่ 4 พฤษภาคม 2012) แต่การพัฒนาเพิ่มเติมได้หยุดลง โชคดีหรือไม่รุ่นใหม่ยังคงมีให้สำหรับ Linux ซึ่งเป็นส่วนหนึ่งของเบราว์เซอร์ Chrome ที่แฟลชมารวมกันในรูปแบบของปลั๊กอิน PPAPI PPAPI หรือ Pepper Plugin API เป็นอินเทอร์เฟซที่ได้รับการส่งเสริมโดยทีมโครเมียม/โครเมี่ยมสำหรับปลั๊กอินเบราว์เซอร์ มันเป็น API ที่ได้รับแรงบันดาลใจจาก NPAPI แต่แตกต่างกันอย่างมีนัยสำคัญซึ่งมีปลั๊กอินฟังก์ชั่นที่เป็นไปได้ทุกอย่างอาจต้องการ กราฟิกสองมิติ, OpenGL ES, การเรนเดอร์แบบอักษร, การเข้าถึงเครือข่าย, เสียงและอื่น ๆ มันมีขนาดใหญ่มีฟังก์ชั่น 111 กลุ่มที่เรียกว่าอินเทอร์เฟซซึ่งเบราว์เซอร์โครเมียมในปัจจุบันเสนอให้ปลั๊กอิน แม้ว่าสเป็คยังไม่สิ้นสุดและเวอร์ชันอินเทอร์เฟซใหม่เกิดขึ้น แต่บางรุ่นที่เก่ากว่าจะถูกลบ อัตราการเปลี่ยนแปลงได้ชะลอตัวลงอย่างมีนัยสำคัญ
ด้วยเหตุผลหลายประการนักพัฒนา Firefox ไม่สนใจที่จะใช้ PPAPI ใน Firefox อย่างไรก็ตามนั่นไม่ได้หมายความว่าไม่สามารถทำได้
เป้าหมายหลักของโครงการนี้คือการรับ PPAPI (Pepper) Flash Player ที่ทำงานใน Firefox สามารถทำได้สองวิธี สิ่งแรกคือการใช้อินเทอร์เฟซ PPAPI เต็มรูปแบบใน Firefox เอง อีกอันหนึ่งคือการใช้งานห่อหุ้มอะแดปเตอร์บางชนิดซึ่งดูเหมือนเบราว์เซอร์ไปยังปลั๊กอิน PPAPI และดูเหมือนปลั๊กอิน NPAPI สำหรับเบราว์เซอร์
วิธีแรกต้องใช้ความรู้ที่แข็งแกร่งของ Firefox Internals และยิ่งไปกว่านั้นความพยายามเพิ่มเติมเพื่อให้รหัสเป็นกระแสหลัก การบำรุงรักษาชุดแพทช์นั้นดูเหมือนจะเป็นความคิดที่ดี วิธีที่สองช่วยให้มีสมาธิกับ API สองตัวเท่านั้น ใช่หนึ่งในนั้นใหญ่ แต่ก็ยังเข้าใจได้ วิธีที่สองจะถูกใช้สำหรับโครงการ มันจะเป็นประโยชน์ต่อเบราว์เซอร์อื่น ๆ เช่นกันไม่เพียง แต่ Firefox
ส่วนใหญ่ทำงาน ดูเหมือนว่า API ที่จำเป็นทั้งหมดจะถูกนำไปใช้
อธิบายไว้ที่นี่
เอกสารประกอบปลั๊กอินพริกไทยทั้งหมดที่มีอยู่มักจะมาพร้อมกับการยืนยันความปลอดภัยที่เพิ่มขึ้นเนื่องจากการใช้งาน Sandboxing ที่ใช้งานอยู่ มันคุ้มค่าที่จะทราบว่า API นั้นไม่ได้สร้าง Sandboxing ใด ๆ แต่จะอนุญาตให้ใช้งาน Sandboxed เท่านั้น การใช้งานโดยเฉพาะนี้ ไม่ได้ใช้แซนด์บ็อกซ์ใด ๆ นั่นหมายความว่าหากรหัสที่เป็นอันตรายใด ๆ แบ่งผ่านความปลอดภัยของปลั๊กอินไม่มีอุปสรรคเพิ่มเติม นี่คือระดับความปลอดภัยในระดับเดียวกับ 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
ใบอนุญาต MIT ดูไฟล์ LICENSE สำหรับข้อความเต็ม
ไดเรกทอรี 3rdparty/ มีซอร์สโค้ดจากบุคคลที่ 3 ซึ่งสามารถแจกจ่ายภายใต้เงื่อนไขใบอนุญาตอื่น ๆ ดูซอร์สโค้ดสำหรับรายละเอียด