PPAPI-HOST NPAPI-PLUGINアダプター。
ご存知のように、AdobeはGNU/LinuxのFlash Playerプラグインのさらなる開発を一時停止しました。 NPAPIプラグインバージョン11.2として利用可能な最新のものは、5年間(2012年5月4日にリリースされてから)セキュリティの更新を取得しますが、さらなる開発は停止しています。幸いなことであろうとなかろうと、FlashがPPAPIプラグインの形でバンドルされているChromeブラウザーの一部として、Linuxで新しいバージョンが引き続き利用できます。 PPAPIまたはPepperプラグインAPIは、ブラウザプラグイン用のChromium/Chrome Teamによって宣伝されるインターフェイスです。 NPAPIにインスパイアされているが、考えられるすべての関数プラグインが望む可能性のあるAPIが著しく異なることです。 2次元グラフィックス、OpenGL ES、フォントレンダリング、ネットワークアクセス、オーディオなど。それは巨大で、111の関数グループがあります。これは、クロムブラウザがプラグインに提供するインターフェイスと呼ばれます。スペックはまだ最終的ではなく、新しいインターフェイスバージョンが発生しており、一部の古いインターフェイスが削除されています。変化率は大幅に減速しています。
さまざまな理由で、Firefox開発者は現在、FirefoxでPPAPIの実装に興味がありません。しかし、それはそれができないという意味ではありません。
このプロジェクトの主な目標は、FirefoxでPPAPI(Pepper)Flashプレーヤーを動作させることです。これは2つの方法で実行できます。最初の1つは、Firefox自体に完全なPPAPIインターフェイスを実装することです。他のものは、ラッパーを実装することです。これは、PPAPIプラグインへのブラウザのように見えるアダプターの種類を実装し、ブラウザ用のNPAPIプラグインのように見えることです。
最初のアプローチには、Firefoxの内部に関する強力な知識が必要であり、さらにコードを主流にするための追加の努力が必要です。パッチのセットを維持することは、良い考えのようには見えません。 2番目のアプローチでは、2つのAPIのみに集中できます。はい、それらの1つは大きいですが、それでも把握できます。プロジェクトには2番目の方法が使用されます。 Firefoxだけでなく、他のブラウザも利益をもたらします。
主に機能します。すべての必須APIが実装されているように見えます。
ここで説明します。
利用可能なすべてのPepperプラグインAPIドキュメントは、通常、アクティブなサンドボクシングの使用によるセキュリティの強化の主張を伴います。 API自体はサンドボクシングを行うことはなく、サンドボックスの実装のみを許可していることに注意する価値があります。この特定の実装は、サンドボックスを実装していません。つまり、悪意のあるコードがプラグインのセキュリティを通じて壊れた場合、追加の障壁はありません。これは、NPAPIフラッシュと同じレベルのセキュリティです。
プロジェクトは、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をインストールします。
(オプション)Jackサポートを有効にするには、 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を設定することで変更できます。
ブラウザでロードされると/usr/lib/pepperflashplugin-nonfree/ libpepflashplayer.soを検索します。実行するのに十分なはずですが、そうでない場合は、 ~/.config/freshwrapper.confでフルパスを指定してください。サンプル構成ファイルに/dataが見つかる場合があります。 libpepflashplayer.soと一緒にmanifest.json使用する方が良いです。実際のフラッシュバージョンは、そのマニフェストから取得されます。
ハードウェアアクセラル化されたビデオデコードコードには、Libavcodec(2013年1月、バージョン54.39.0)の比較的新しいバージョンが必要です。まだ持っていない場合、 WITH_HWDEC=0でHWDECを無効にしない限り、コードはコンパイルされません。これを行うには、構成ステップコマンドを次のように変更します。
$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_HWDEC=0 ..
注意しても、ハードウェアアクセラル化されたビデオデコードは、デフォルトでまだ無効になっています。構成ファイルで明示的に有効にする必要があります。
OpenGL | ES 2のシステム実装を使用する方が良いですが、構成時間( -DWITH_GLES2=0 )にWITH_GLES2=0にcmakeコマンドラインを追加することにより、角度gles2エミュレーションを活用することができます。注意してください。これには、C ++ 11対応コンパイラが必要です。
MITライセンス。全文のLICENSEファイルを参照してください。
ディレクトリ3rdparty/他のライセンス条件の下で配布できるサードパーティのソースコードが含まれています。詳細については、ソースコードを参照してください。