Adaptateur PPAPI-HOST NPAPI-PLUGIN.
Comme vous le savez, Adobe a suspendu le développement du plugin Flash Player pour GNU / Linux. Les derniers disponibles en tant que plugin NPAPI version 11.2 recevront des mises à jour de sécurité pendant cinq ans (depuis sa sortie le 4 mai 2012), mais un développement supplémentaire a été cessé. Heureusement ou non, des versions plus récentes sont toujours disponibles pour Linux dans le cadre du navigateur Chrome, où Flash est livré sous forme de plugin PPAPI. L'API PPAPI ou PEPPER PLUGIN est une interface promue par l'équipe Chromium / Chrome pour les plugins de navigateur. C'est une API inspirée mais significativement différente qui a tous les plugin de fonction imaginables. Graphiques bidimensionnels, OpenGL ES, rendu de police, accès au réseau, audio, etc. C'est énorme, il y a 111 groupes de fonctions, appelées interfaces que le navigateur Chromium aujourd'hui propose aux plugins. Bien que les spécifications ne soient pas encore finales et que de nouvelles versions d'interface se produisent, certaines plus anciennes sont supprimées; Le taux de changement a considérablement ralenti.
Pour diverses raisons, les développeurs de Firefox ne sont pas intéressés à la mise en œuvre de PPAPI dans Firefox. Cependant, cela ne signifie pas que cela ne peut pas être fait.
L'objectif principal de ce projet est d'obtenir un joueur flash PPAPI (Pepper) travaillant dans Firefox. Cela peut être fait de deux manières. Le premier consiste à implémenter l'interface PPAPI complète dans Firefox lui-même. L'autre consiste à implémenter un wrapper, une sorte d'adaptateur qui ressemblera à un navigateur au plugin PPAPI et ressemblera au plugin NPAPI pour le navigateur.
La première approche nécessite une solide connaissance des internes de Firefox, et en outre des efforts supplémentaires pour mettre le code dans le courant dominant. Le maintien d'un ensemble de correctifs ne ressemble pas à une bonne idée. La deuxième approche permet de se concentrer uniquement sur deux API. Oui, l'un d'eux est grand, mais toujours saisissable. La deuxième façon sera utilisée pour le projet. Il profitera également à d'autres navigateurs, pas seulement Firefox.
Fonctionne surtout. On dirait que toutes les API essentielles sont implémentées.
décrit ici.
Toutes les documents API du plugin de poivre disponible accompagnés généralement d'affirmes de sécurité améliorée en raison de l'utilisation active de bacs de sable. Il vaut la peine de noter que l'API lui-même ne fait aucun sable, il ne permet que des implémentations en sable. Cette implémentation particulière n'implémente aucun bac à sable . Cela signifie que si un code malveillant se rompt grâce à la sécurité des plugins, il n'y a pas de barrières supplémentaires. C'est le même niveau de sécurité que NPAPI Flash.
Le projet utilise le système de construction 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
(Facultatif) Pour activer la prise en charge de PulseAudio, installez libpulse-dev .
(Facultatif) Pour activer la prise en charge de Jack, installer libjack-jackd2-dev et libsoxr-dev
Créez un sous-répertoire build dans le répertoire racine, à partir de ce dossier, appelez
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
$ make
libfreshwrapper-flashplayer.so dans le répertoire des plugins de navigateur ( ~/.mozilla/plugins ) ou installez à l'échelle du système: appelant: # make install
Par défaut, make install mettra les plugin (s) sur ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/mozilla/plugins . Le chemin pourrait être modifié soit en modifiant le paramètre CMake CMAKE_INSTALL_PREFIX , soit en définissant MOZPLUGIN_INSTALL_DIR .
Lorsqu'il est chargé de navigateur, il recherchera libpepflashplayer.so dans un répertoire où il peut être: dans le répertoire chrome (stable / bêta / instable), et in /usr/lib/pepperflashplugin-nonfree/ (pepperflashplugin-non-nonree le met là-bas). Cela devrait être suffisant pour le faire fonctionner, mais si ce n'est pas le cas, spécifiez le chemin complet dans ~/.config/freshwrapper.conf . Vous pouvez trouver un exemple de fichier de configuration dans /data . Il est préférable d'avoir manifest.json aux côtés de libpepflashplayer.so Donc, la version flash réelle sera tirée de ce manifeste.
Le code de décodage vidéo accéléré par le matériel nécessite une version relativement nouvelle de LibavCodec (janvier 2013, version 54.39.0). Si vous ne l'avez pas encore, le code ne se compile pas à moins que vous ne désactivez Hwdec par WITH_HWDEC=0 . Pour ce faire, modifiez la commande d'étape de configuration en:
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_HWDEC=0 ..
Remarque, même s'il est construit, le décodage vidéo accéléré par le matériel est toujours désactivé par défaut. Vous devez l'activer explicitement dans le fichier de configuration.
Bien qu'il soit préférable d'utiliser l'implémentation du système d'OpenGL | ES 2, il est toujours possible de tirer parti de l'émulation d'angle GLES2 en ajoutant WITH_GLES2=0 à la ligne de commande cmake au moment de la configuration ( -DWITH_GLES2=0 pour être exact). Remarque, cela nécessite un compilateur C ++ 11 capable.
La licence MIT. Voir le fichier LICENSE pour le texte intégral.
Le répertoire 3rdparty/ contient le code source des 3e parties qui peuvent être distribuées selon les autres termes de licence. Voir le code source pour plus de détails.