Adaptador NPAPI-PLUGIN PPAPI-HOST.
Como você sabe, o Adobe suspendeu um desenvolvimento adicional do plug -in Flash Player para GNU/Linux. O mais recente disponível como um plug -in NPAPI versão 11.2 receberá atualizações de segurança por cinco anos (desde o seu lançamento em 4 de maio de 2012), mas o desenvolvimento adicional foi interrompido. Felizmente ou não, as versões mais recentes ainda estão disponíveis para o Linux como parte do navegador Chrome, onde o Flash vem incluído em uma forma de plug -in PPAPI. A API de plug -in de ppapi ou pimenta é uma interface promovida pela equipe de Chromium/Chrome para plugins de navegador. É uma API npapi-inspirada, mas significativamente diferente, que possui todos os plug-in de função concebível. Gráficos bidimensionais, OpenGL ES, renderização de fontes, acesso à rede, áudio e assim por diante. É enorme, existem 111 grupos de funções, chamados interfaces que o navegador de cromo de hoje oferece aos plugins. Embora as especificações ainda não tenham sido finais, e novas versões de interface estejam surgindo, com algumas mais antigas sendo excluídas; A taxa de mudança diminuiu significativamente.
Por vários motivos, os desenvolvedores do Firefox não estão interessados agora em implementar o PPAPI no Firefox. No entanto, isso não significa que não pode ser feito.
O principal objetivo deste projeto é obter flash player PPAPI (Pepper) trabalhando no Firefox. Isso pode ser feito de duas maneiras. O primeiro é implementar a interface PPAPI completa no próprio Firefox. Outro é implementar um invólucro, algum tipo de adaptador que se parecerá com o plug -in PPAPI e o plug -in npapi para o navegador.
A primeira abordagem requer forte conhecimento dos internos do Firefox e, além disso, esforços adicionais para colocar o código no mainstream. Manter um conjunto de patches não parece uma boa ideia. A segunda abordagem permite se concentrar apenas em duas APIs. Sim, um deles é grande, mas ainda é inquieto. A segunda maneira será usada para o projeto. Também beneficiará outros navegadores, não apenas o Firefox.
Principalmente funciona. Parece que todas as APIs essenciais são implementadas.
descrito aqui.
Toda a documentação da API de plug -in de pimenta disponível geralmente acompanhada de afirmações de segurança aprimorada devido ao uso ativo de sandboxing. Vale a pena observar que a própria API não produz nenhuma caixa de areia, só permite implementações de sandbox. Esta implementação em particular não implementa nenhuma caixa de areia . Isso significa que, se algum código malicioso romper com a segurança do plug -in, não há barreiras adicionais. Este é o mesmo nível de segurança que o NPAPI Flash.
O projeto está usando o sistema de construção 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 ativar o suporte do PULSEAUDIO, instale libpulse-dev .
(Opcional) Para ativar o suporte do Jack, instale libjack-jackd2-dev e libsoxr-dev
Crie um subdiretório build no diretório raiz, a partir dessa pasta, ligue
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
$ make
libfreshwrapper-flashplayer.so Gerado no diretório de plugins do navegador ( ~/.mozilla/plugins ) ou instale em todo o sistema ligando: # make install
Por padrão, make install colocará o (s) plugin (s) em ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/mozilla/plugins . O caminho pode ser alterado alterando o parâmetro cmake CMAKE_INSTALL_PREFIX ou configurando MOZPLUGIN_INSTALL_DIR .
Quando carregado pelo navegador, ele procurará libpepflashplayer.so em um diretório onde pode estar: no diretório Chrome (estábulo/beta/instável), e em /usr/lib/pepperflashplugin-nonfree/ (PepperFlashplugin-Nonfree o coloca lá). Deve ser suficiente para executá -lo, mas, se não o fizer, especifique o caminho completo em ~/.config/freshwrapper.conf . Você pode encontrar o arquivo de configuração de amostra em /data . É melhor ter manifest.json ao lado do libpepflashplayer.so , a versão real flash será tirada desse manifesto.
O código de decodificação de vídeo acelerado por hardware requer versão relativamente nova do LibavCodec (janeiro de 2013, versão 54.39.0). Se você ainda não o tiver, o código não será compilado a menos que você desative o HWDEC por WITH_HWDEC=0 . Para fazer isso, altere o comando de etapa de configuração para:
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_HWDEC=0 ..
Observe, mesmo se construído, a decodificação de vídeo acelerada por hardware ainda está desativada por padrão. Você precisa ativá -lo explicitamente no arquivo de configuração.
Embora seja melhor usar a implementação do sistema do OpenGL | es 2, ainda é possível alavancar a emulação do ângulo GLES2 adicionando WITH_GLES2=0 à linha de comando cmake no tempo de configuração ( -DWITH_GLES2=0 para ser exato). Observe que requer compilador C ++ 11 compilador.
A licença do MIT. Consulte o arquivo LICENSE para obter um texto completo.
Diretório 3rdparty/ Contém código -fonte de 3º partes que podem ser distribuídas sob outros termos de licença. Consulte o código -fonte para obter detalhes.