UbuntuのFirefoxで使用しているFlash Playerのバージョンは11.2です。しかしWindowsやMac、それにUbuntu上のChromiumでもFlash Playerのバージョンは14になっています。そこで今回は、なんとかFirefoxでFlash Playerのバージョンを14にする方法を紹介します。
UbuntuにおけるAdobe Flash Player
UbuntuのFirefoxでFlash Playerを利用する一般的な方法は、flashplugin-installerパッケージをインストールすることです。このパッケージをインストールすると、Adobeのサイトから適切なFlash Playerのバイナリをダウンロードしてシステムにインストールします[1] 。
図1 ソフトウェアセンターでFlashを検索した結果
インストール後に、Firefoxを再起動しロケーションバーに「about:plugins」と入力してアクセスすれば、Flash Playerがインストールされていることがわかるでしょう。
図2 FirefoxにインストールされたFlash Player
[1] flashplugin-installerはその名のとおりAdobeのサイトにあるFlash Playerをインストールするスクリプトのパッケージです。このパッケージの中にはFlash Playerそのものは含まれていません。パッケージをインストールすると、/usr/share/package-data-downloads/flashplugin-installerにあるURLを基に、/usr/lib/flashplugin-installer/install_pluginスクリプトがダウンロードを実行します。
Flash Playerのバージョン
「about:plugins」ではFlash Playerのバージョンが11.2と表示されています。しかしながら、WindowsやMacで使われているFlash Playerのバージョンは14です。これはLinux向けのNPAPI版Flash Playerは11.2で開発を終了する ことをAdobeが2012年にアナウンス したためによる違いです。同じアナウンスで、11.2のリリース後5年間はセキュリティアップデートを提供することも伝えています。このため、UbuntuのFirefoxでも古いバージョンのFlash Playerを使いつづけることができるのです。
Flash Player 11.2のリリースが2012年3月ですので、2017年頃まで11.2のサポートが続くことになります。ところがUbuntu 14.04 LTSは2019年まで、12.02であっても2017年の4月まで使いつづけることができます。このため、UbuntuとFirefoxという組み合わせでFlash Playerを使いつづけたい場合は、何らかの代替手段を考える必要があります[2] 。
[2] 後述するようにFirefoxで採用されているプラグイン用のNPAPIは近い将来廃止される予定です。さらにスマートフォンやタブレットではFlash Playerはほとんど使えないに等しい状態ですので、2017年までにはFlash Playerプラグインが必要なケースがほぼなくなっていると良いのですが、どうなることやら……。
Chrome/ChromiumのFlash Player
ところで開発が終了しているのは「NPAPI版のLinux向けFlash Player」です。
このNPAPI(Netscape Plugin API)は多くのWebブラウザーで採用されているプラグイン向けのAPIで、FirefoxでもAdobe Flashや(ゲームプラットフォームのほうの)Unity向けのプラグインで使われています。しかし、古くから大きく変わることなく使いつづけられているAPIであるが故に、今の時代では安定性やセキュリティ、パフォーマンス上の懸念点が出てきています。
そこでFirefoxでは、NPAPIのサポートそのものを段階的に廃止する方向で動いているようです 。たとえば6月にリリースされたFirefox 30 においては、ユーザーが許可しない限り特定のプラグイン 以外の利用を実行時に確認するようになりました[3] 。同様にChrome/ChromiumもまたNPAPIを廃止する予定です。既にLinux版については5月にリリースされたChrome 35 でNPAPIのサポートを終了しています。
Chrome/ChromiumはNPAPIに代るプラグインAPIとしてPPAPI(Pepper Plugin API) を導入しています。Flash PlayerについてもPepperに移行済みで、Chromeに同梱されているFlash PlayerはPepper版です。「 Pepper版のLinux向けFlash Player」については、AdobeとGoogleが協力して開発を続けている、というわけでです。
ちなみにChromiumにはPPAPI版Flash Playerは同梱されていませんので、Flash Playerを使用したい場合はpepperflashplugin-nonfreeパッケージをインストールしてください。ChromeパッケージからPPAPI版Flash Playerを取り出してインストールしてくれます。もしインストールがうまくいかないようであれば、Ubuntu Wikiにある手順 も参照してください。
図3 Chromiumは「chrome://plugins/」にアクセスすることでプラグイン情報を確認できる
[3] Adobe Flashはこのホワイトリストには掲載されていませんが、ユーザーへの影響が大きいために、自動再生の対象になっているようです。設定を変更する場合は「about:addons」のプラグインタブを参照してください。
Firefoxで利用できるFlash Player
より新しいFlash Playerを使いたいだけであれば、これまで説明したようにChrome/Chromiumを使うことが一番確実です。ですがもし、UbuntuのFirefoxでFlash Playerのメジャーバージョンを上げたいとなると、Linux用のNPAPI版Flash Player以外の実装を使う必要があります。ここではその方法をいくつか紹介しましょう。
Pipelight
「Pipelight 」はWindows用のブラウザープラグインをLinux上で動かすためのプラグインです。Pipelightを使えば、SilverlightをはじめとするWindows用にしか提供されていないプラグインをUbuntuでも使用できます。
UbuntuならPPAが提供されているので、インストールはとてもかんたん です[4] 。
$ sudo add-apt-repository ppa:pipelight/stable
$ sudo apt update
$ sudo apt install pipelight-multi
$ sudo pipelight-plugin --update
pipelight-multiパッケージをインストールすると32bit版の各種パッケージに加えて、特別なパッチを適用したWine(wine-compholio)もインストールされます。この特別版のWineは通常のWineとはインストールパスが異なり、設定ファイルも独立しているため、通常のWineと共存できるようになっています。またttf-mscorefonts-installerもインストールされる結果、インストール途中でEULAへの同意が必要になります。
「--update」コマンドはプラグインのデータベース(/usr/share/pipelight/install-dependency)を更新するコマンドです。パッケージインストール直後の状態だと、古いバージョンのプラグインを指定している場合があるので、必ず「--update」を実行してください。
さらに「--enable』コマンドで、flashを有効化します。
$ sudo pipelight-plugin --enable flash
The following modules require a license confirmation before they can be enabled:
[*] Adobe Flash Player
By continuing the installation you agree that you've read and accepted the
ADOBE Personal Computer Software License Agreement:
http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/legal/licenses-terms/pdf/Flash%20Player_11.0.pdf
To find out more click here:
http://get.adobe.com/flashplayer
Do you accept the 1 license(s) above? [Y/N] y
Plugin flash is now enabled
enableされたあと少しすると、Zenityのダイアログが表示されて、インストール作業を開始します。ダイアログが消えていたら、一度Firefoxを再起動してください。なお、sudoをつけて実行した場合は「/usr/lib/mozilla/plugins」に、つけずにユーザー権限で実行した場合は「~/.mozilla/plugins」にPipelightのプラグインがインストールされます。Flash Player本体のインストール先は、「 ~/.wine-pipelight」以下です。
図4 インストール中はこのようなダイアログが表示される
ここでインストールされるのは32bit版のFlash Playerです。「 flash」の代わりに「x64-flash」を指定すれば64bit版もインストール可能ではありますが、0.2.7の段階ではまだ実験的な段階ですので、enable前にunlock作業が必要になります。
図5 「 about:plugins」を見ればバージョンが上がっていることがわかる
図6 YouTubeの日本語字幕も表示できる
Pipelightを無効化したい場合(通常のFlash Player 11.2を使いたい場合)は、次のコマンドを実行してください。
$ sudo pipelight-plugin --disable flash
ちなみにPipelightはNPAPIを使っています。このためNPAPI自体が使えなくなると、Pipelightも使えなくなります。
[4] PPAはリリース版をパッケージングしている「pipelight/stable」とソースコードリポジトリのスナップショットを日々ビルドしている「pipelight/daily」が存在します。本来はstableを使ったほうが良いのですが、もし最新の開発版を使いたい場合はdailyを指定してください。
Fresh Player Plugin
PipelightがWindowsのNPAPI版Flash Playerを動かそうとしているのに対して、LinuxのPPAPI版Flash PlayerをFirefoxで動かそうとしているのが「Fresh Player Plugin 」です[5] 。
インストール方法は自分でビルドするか、WebUpd8が提供している非公式のPPA を使うかの2択です。
PPAを使うほうがお手軽ではあるのですが、WebUpd8のPPAには他にもいろいろなパッケージを提供しているため、そのまま使うと余計なパッケージまでアップグレードされてしまう恐れがあります。そういうときは第331回 で紹介したようにPinを設定して 特定のパッケージだけインストールされるようにするか、LaunchpadのアカウントがあるならPPAのページ から「View package details」を選択し、右上の「Copy packages」をクリックして自分のPPAに必要なパッケージだけコピーしてしまいましょう。
WebUpd8のPPAをPin設定で利用する場合は以下のように設定したうえで、インストールします。
$ sudo add-apt-repository ppa:nilarimogard/webupd8
$ sudo editor /etc/apt/preferences.d/ppa-nilarimogard-webupd8
Package: *
Pin: release o=LP-PPA-nilarimogard-webupd8
Pin-Priority: 100
$ sudo apt update
$ sudo apt install freshplayerplugin
PPAを使わず自前でビルドしたいなら、公式サイトの記述に従ってパッケージをインストールします。と言っても必要なのはビルド用のパッケージであり、ビルドしてlibfreshwrapper-pepperflash.soさえ作ってしまえば、あとは必要ないものばかりです。よって第333回で紹介したように 、LXCやVirtualBoxといった隔離環境を用意して、その中でビルドしても良いでしょう。
ビルドすると「libfreshwrapper-pepperflash.so」ができますので、「 ~/.mozilla/plugins」にコピーしてください。
Fresh Player Pluginはただのラッパーライブラリなので、別途PPAPI版Flash Playerを用意する必要があります。前述の「Chrome/ChromiumのFlash Player」を参考に、pepperflashplugin-nonfreeパッケージをインストールしておきましょう。
図7 Wineを使っていないためメニューもFlashのそれに近い見た目に
ただし日本語入力自体はうまく動きませんでした。
Pipelightと同様にFirefoxとの接続はNPAPIを使っています。このためNPAPI自体が使えなくなると、Freshも使えなくなるという点も同じです。
Shumway
Mozilla自身が、HTML5で実装したFlash Playerが「Shumway 」です。おそらくNPAPIの廃止後にFirefox上でFlashを使う場合は、Shumwayを使うことになるでしょう。
もし試したい場合は、公式サイトで配布しているxpiファイルをインストールしてください[6] 。
図8 xpiファイルへのリンクをクリックするとインストールするか確認される
さらに「about:addons」にアクセスしてプラグインタブの「Showckwave Flash」を「実行時に確認する」に変更してください。あとはShamwayのサイトのトップページを再読み込みすれば、本来Flash Playerが使われているところの右下に「Shumway」という文字列が表示されるはずです。
図9 右下にShumwayと表示
ここにカーソルを合わせて「×」ボタンを押すとShumwayから通常のFlash Playerでの表示に切り替わります。その表示内容の変化で、どの程度Shumwayの実装が進んでいるかなんとなくわかるでしょう。
残念ながら今はまだYouTubeの再生はできないようです。
別の実装を使う
Shumwayと同様にFlash Playerを独自に実装しようとしているプロジェクトはいくつか存在します。ここではそのリストだけ紹介しましょう。
「Lightspark 」はFlash Playerの別実装です。単体でのSWFの再生だけでなく、ブラウザー用のプラグインもあり、lightsparkとbrowser-plugin-lightsparkパッケージをインストールすれば利用できます。
「Gnash 」は古くから開発がつづいているFlash Playerです。こちらも単体再生、ブラウザー用のプラグイン共に対応しており、gnash、mozilla-plugin-gnashパッケージをインストールすれば利用できます。
User Agentの変更
サイトによってはFlash Playerのバージョンだけでなく、User Agentもチェックしている場合があるようです。PipelightやFresh Player Pluginを使っても再生できない場合は、Pipelightのドキュメント を参考に、User Agent Overriderアドオンなどを導入し、User Agentを変更してアクセスしてみると、うまく動作するかもしれません。
おまけ:QWebViewにおけるFlash
QtのWebページを表示するコンポーネントであるQWebViewは、「 QWebSettings::PluginsEnabled」を「true」にするとローカルマシンにインストールされた純正のFlash Playerを利用できます。これにより、QWebView内でもFlashを使ったページをロードできるのです。
この機能はNPAPIを使っているため、Pepperプラグインは利用できません。ただしNPAPIなプラグインならロードできるため、PipelightやFresh Player Pluginをインストールするとそちらが利用されます[7] 。もしFlashのバージョンが低いと動作しないサイトを表示したい場合は試してみると良いでしょう。