Adaptador PPAPI-Host NPAPI-Plugin.
Como saben, Adobe ha suspendido un mayor desarrollo del complemento Flash Player para GNU/Linux. Lo último disponible como un complemento NPAPI versión 11.2 obtendrá actualizaciones de seguridad durante cinco años (desde su lanzamiento el 4 de mayo de 2012), pero se ha cesado un mayor desarrollo. Afortunadamente o no, las versiones más nuevas todavía están disponibles para Linux como parte del navegador Chrome, donde Flash viene incluido en forma de complemento PPAPI. La API de complemento PPAPI o Pepper es una interfaz promovida por el equipo de Chromium/Chrome para complementos de navegador. Es una API inspirada en NPAPI pero significativamente diferente que tiene cada complemento de función concebible que puede desear. Gráficos bidimensionales, OpenGL es, representación de fuentes, acceso a la red, audio, etc. Es enorme, hay 111 grupos de funciones, llamados interfaces que el navegador de cromo actual ofrece a los complementos. Aunque las especificaciones aún no son finales, y están surgiendo nuevas versiones de interfaz, se eliminan algunas más antiguas; La tasa de cambio se ha ralentizado significativamente.
Por varias razones, los desarrolladores de Firefox no están interesados ahora en la implementación de PPAPI en Firefox. Sin embargo, eso no significa que no se pueda hacer.
El objetivo principal de este proyecto es lograr que el jugador flash PPAPI (Pepper) trabaje en Firefox. Esto se puede hacer de dos maneras. El primero es implementar la interfaz PPAPI completa en Firefox. Otro es implementar un envoltorio, algún tipo de adaptador que se verá como navegador para el complemento PPAPI y se verá como el complemento NPAPI para el navegador.
El primer enfoque requiere un fuerte conocimiento de los internales de Firefox y, además, un esfuerzo adicional para llevar el código a la corriente principal. Mantener un conjunto de parches no parece una buena idea. El segundo enfoque permite concentrarse solo en dos API. Sí, uno de ellos es grande, pero aún se puede entender. Se utilizará el segundo camino para el proyecto. También beneficiará a otros navegadores, no solo Firefox.
Principalmente funciona. Parece que se implementan todas las API esenciales.
descrito aquí.
Toda la documentación de API de complemento de pimienta disponible generalmente acompañada de afirmaciones de seguridad mejorada debido al uso activo de sandboxing. Vale la pena tener en cuenta que la API en sí no hace ningún sandboxing, solo permite implementaciones de sandboxed. Esta implementación en particular no implementa ningún sandbox . Eso significa que si algún código malicioso se rompe a través de la seguridad del complemento, no hay barreras adicionales. Este es el mismo nivel de seguridad que NPAPI Flash.
El proyecto está utilizando el sistema de compilación 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
(Opcional) Para habilitar el soporte de pulseaudio, instalar libpulse-dev .
(opcional) Para habilitar el soporte de Jack, instale libjack-jackd2-dev y libsoxr-dev
Cree un subdirectorio build en el directorio raíz, desde esa carpeta, llame
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
$ make
libfreshwrapper-flashplayer.so generado ~/.mozilla/plugins # make install
De forma predeterminada make install pondrá el complemento a ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/mozilla/plugins . La ruta podría cambiarse ya sea cambiando el parámetro CMake CMAKE_INSTALL_PREFIX , o configurando MOZPLUGIN_INSTALL_DIR .
Cuando el navegador lo cargue /usr/lib/pepperflashplugin-nonfree/ buscará el directorio libpepflashplayer.so . Debería ser suficiente para ejecutarlo, pero si no es así, especifique una ruta completa en ~/.config/freshwrapper.conf . Puede encontrar el archivo de configuración de muestra en /data . Es mejor tener manifest.json junto con libpepflashplayer.so Entonces, la versión flash real se tomará de ese manifiesto.
El código de decodificación de video acelerado de hardware requiere una versión relativamente nueva de LibavCodec (enero de 2013, versión 54.39.0). Si aún no lo tiene, el código no se compilará a menos que deshabilite hwdec por WITH_HWDEC=0 . Para hacerlo, cambiar el comando de paso de configuración a:
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_HWDEC=0 ..
Nota, incluso si se crea, la decodificación de video acelerado de hardware todavía está deshabilitada de forma predeterminada. Debe habilitarlo explícitamente en el archivo de configuración.
Aunque es mejor usar la implementación del sistema de OpenGL | ES 2, todavía es posible aprovechar la emulación de ángulo GLES2 agregando WITH_GLES2=0 a la línea de comandos Cmake en el momento de la configuración ( -DWITH_GLES2=0 para ser exacto). Tenga en cuenta que requiere un compilador con capacidad C ++ 11.
La licencia del MIT. Consulte el archivo LICENSE para el texto completo.
Directorio 3rdparty/ Contiene código fuente de terceros que se pueden distribuir bajo otros términos de licencia. Consulte el código fuente para obtener más detalles.