Ubuntu Weekly Recipe

第340回Firefoxで最新バージョンのFlashを使用するには

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を検索した結果
図1 ソフトウェアセンターでFlashを検索した結果

インストール後に、Firefoxを再起動しロケーションバーに「about:plugins」と入力してアクセスすれば、Flash Playerがインストールされていることがわかるでしょう。

図2 FirefoxにインストールされたFlash Player
図2 FirefoxにインストールされたFlash Player

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]⁠。

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 Chromiumは「chrome://plugins/」にアクセスすることでプラグイン情報を確認できる

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 インストール中はこのようなダイアログが表示される
図4 インストール中はこのようなダイアログが表示される

ここでインストールされるのは32bit版のFlash Playerです。⁠flash」の代わりに「x64-flash」を指定すれば64bit版もインストール可能ではありますが、0.2.7の段階ではまだ実験的な段階ですので、enable前にunlock作業が必要になります。

図5 ⁠about:plugins」を見ればバージョンが上がっていることがわかる
図5 「about:plugins」を見ればバージョンが上がっていることがわかる
図6 YouTubeの日本語字幕も表示できる
図6 YouTubeの日本語字幕も表示できる

Pipelightを無効化したい場合(通常のFlash Player 11.2を使いたい場合)は、次のコマンドを実行してください。

$ sudo pipelight-plugin --disable flash

ちなみにPipelightはNPAPIを使っています。このためNPAPI自体が使えなくなると、Pipelightも使えなくなります。

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のそれに近い見た目に
図7 Wineを使っていないためメニューもFlashのそれに近い見た目に

ただし日本語入力自体はうまく動きませんでした。

Pipelightと同様にFirefoxとの接続はNPAPIを使っています。このためNPAPI自体が使えなくなると、Freshも使えなくなるという点も同じです。

Shumway

Mozilla自身が、HTML5で実装したFlash PlayerがShumwayです。おそらくNPAPIの廃止後にFirefox上でFlashを使う場合は、Shumwayを使うことになるでしょう。

もし試したい場合は、公式サイトで配布しているxpiファイルをインストールしてください[6]⁠。

図8 xpiファイルへのリンクをクリックするとインストールするか確認される
図8 xpiファイルへのリンクをクリックするとインストールするか確認される

さらに「about:addons」にアクセスしてプラグインタブの「Showckwave Flash」「実行時に確認する」に変更してください。あとはShamwayのサイトのトップページを再読み込みすれば、本来Flash Playerが使われているところの右下に「Shumway」という文字列が表示されるはずです。

図9 右下に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のバージョンが低いと動作しないサイトを表示したい場合は試してみると良いでしょう。

おすすめ記事

記事・ニュース一覧