PPAPI-HOST NPAPI-PLUGIN ADAPTER.
Как вы знаете, Adobe приостановила дальнейшую разработку плагина Flash Player для GNU/Linux. Последнее, что доступно в виде плагина NPAPI версия 11.2 получит обновления безопасности в течение пяти лет (с момента его выпуска 4 мая 2012 года), но дальнейшее развитие было прекращено. К счастью или нет, более новые версии по -прежнему доступны для Linux как часть браузера Chrome, где Flash поставляется в форме плагина PPAPI. PPAPI или Pepper Plugin API - это интерфейс, продвигаемый командой Chromium/Chrome для плагинов браузера. Это вдохновленный NPAPIS, но в то же время существенно различный API, который может захотеть захотеть захотить каждый плагин с возможностью функции. Двумерная графика, OpenGL ES, рендеринг шрифтов, доступ к сети, аудио и т. Д. Он огромный, существует 111 группы функций, называемые интерфейсами, которые сегодня предлагает браузер Chromium. Хотя спецификации еще не являются окончательными, и возникают новые версии интерфейса, причем некоторые старшие удаляются; Скорость изменений значительно замедлилась.
По разным причинам разработчики Firefox теперь не заинтересованы в реализации PPAPI в Firefox. Однако это не означает, что это не может быть сделано.
Основная цель этого проекта - заставить флэш -игрока PPAPI (Pepper) в Firefox. Это можно сделать двумя способами. Первым является внедрение полного интерфейса PPAPI в самой Firefox. Другой - реализовать обертку, какой -то адаптер, который будет выглядеть как браузер и плагин PPAPI и выглядеть как плагин NPAPI для браузера.
Первый подход требует четкого знания в области внутренних средств Firefox и, кроме того, дополнительных усилий по превращению кода в основной поток. Поддержание набора патчей не выглядит хорошей идеей. Второй подход позволяет сосредоточиться только на двух API. Да, один из них большой, но все еще хватает. Второй путь будет использоваться для проекта. Это принесет пользу другим браузерам, а не только Firefox.
В основном работает. Похоже, что все важные API реализованы.
описано здесь.
Вся доступная документация по API Pepper API обычно сопровождается утверждениями о повышенной безопасности из -за активного использования песочницы. Стоит отметить, что сам API не производит песочницу, он только позволяет реализовать песочницу. Эта конкретная реализация не реализует песочницу . Это означает, что если какой -либо злонамеренный код прорывается через безопасность плагинов, нет дополнительных барьеров. Это тот же уровень безопасности, что и 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 будет размещать плагин (ы) в ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/mozilla/plugins . Путь может быть изменен либо путем изменения параметра cmake CMAKE_INSTALL_PREFIX , либо путем установки MOZPLUGIN_INSTALL_DIR .
При загрузке браузером он будет искать libpepflashplayer.so в каталогах, где это может быть: в хромированном (стабильном/бета-нестабильном) каталоге, а в /usr/lib/pepperflashplugin-nonfree/ (pepperflashplugplugin-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 компилятор Capable.
Лицензия MIT. См. Файл LICENSE для полного текста.
Directory 3rdparty/ содержит исходный код от 3 -й стороны, которые могут быть распределены в соответствии с другими условиями лицензии. Смотрите исходный код для деталей.