段階的に減らされるFlashのサポート
MozillaがFirefox 52でNPAPI(Netscape Plug-in API)プラグインのサポートを原則として打ち切る中、例外的にAdobe Flashプラグインだけはサポートが続く。プラグインが最新版であれば初期設定で「常に有効化する」扱いになるという優遇ぶりだ。この扱いはいつまで続くのだろうか。また、Flashプラグインのサポートが廃止されるのは、どの程度先のことなのだろうか。
Chrome 55以降でHTML5版コンテンツがデフォルトになるとか、Safari 10はHTML5版コンテンツを優先してプラグイン版コンテンツの有効化にはユーザーのクリックが必要といった話を耳にすると、Mozillaがすぐにでも追随しそうに感じるかもしれない。だが、かなり保守的な計画が立てられているのが実情だ。
Reducing Adobe Flash Usage in Firefox | Future Releases(和訳)で述べられているように、Mozillaは2017年中にFlashコンテンツをすべて「実行時に確認する」扱いにし、再生・実行時にはユーザーのクリックまたはタップを要求する(以下CtP:クリック・トゥ・プレイ)。他のブラウザが同年中にFlashのサポートを全廃する勢いなのに比べると、穏健な態度といえそうだ。ゆっくりと、しかし着実に有効化するFlashの数を減らしていく、というのがMozillaの方針なのである。
完全廃止は数年先
過去を振り返ってみると、MozillaがFlash以外のプラグインのサポートを廃止するまでに、ずいぶんと時間がかかった。2013年9月に原則CtP化の方針を打ち出したときは、急進的な印象を受けたものだが、2014年2月にはホワイトリストに掲載されたものは例外とされることになった。実際にリリース版でこの機能が有効化されたのは、同年6月のFirefox 30からだ。そして、ようやくFirefox 47になってこのホワイトリストが削除された。そこからさらにバージョンを5つ重ねて、上記のサポート廃止に至るわけだ。
しかも、ことFlashに関しては、ユーザーに与える影響の大きさからMozillaは慎重な姿勢を示すのが通例である。つい最近も、Firefox 49.0.2で非同期プラグインレンダリング(Asynchronous Plugin Rendering)の設定を有効化したところ、Flashコンテンツの表示が異様に遅くなる、Flashベースのゲームがプレイできないといった問題があちこちで発生したため、Mozillaはシステムアドオンを投入して、Windows向け32bit版では設定を再度無効化することにした。Flashのサポート廃止がMozillaの目標とはいっても、そこに到達するまでの道のりはたぶん長いものになるだろう。
2016年9月末にアナウンスされたMortarプロジェクトの存在も、Mozillaが近いうちにFlashのサポート廃止を打ち出すことはないだろうとの推測を裏付ける。このプロジェクトは、Googleが開発するPPAPI(Pepper Plug-in API)をFirefoxが内部的にサポートし、PDFiumライブラリとPPAPI版Flashプラグインを移植するというものだ*1。PPAPIはChromeのプロセス分離を前提に実装されているため、Firefoxのマルチプロセス機能(e10s)が完全に有効化されてからでなければ、Mortarプロジェクトの成果をNightlyチャンネルに投入することは難しいとみられる。
たとえば、Firefox Nightly 53にPPAPI版Flashが投入されるとして、バグを潰した後にAuroraチャンネルで有効化されるのは、早くてもFirefox 54だろう。そのままリリース版まで進むという最短コースを辿っても、ユーザーの手元に届くのは2017年6月だ。仮にMozillaが2世代先のESRのベースとなるFirefox 59(2018年3月リリース)でFlashのサポートを廃止するつもりなら、せっかく導入した技術がわずか9か月間しか利用されないことになってしまう。少なくともプラス1年はサポートを延ばすと考えるべきだろう。
想定されるプロセス
MozillaはFlashのサポート廃止に向け、大きく分けて2つの手段を採用する。1つはコンテンツの自動的な置き換えやブロックで、ユーザーが接触するFlashコンテンツを減らす試みだ。もう1つは既に述べた全面CtP化で、1つ目の手段でふるいにかけられたFlashコンテンツがユーザーのアクションなしに動作するのを防ぐ。
1つ目の手段は、一部が既に実装済みである。たとえば、Firefox 47では、Webサイト内に埋め込まれたYouTubeのFlash版動画プレイヤーを、HTML5版プレイヤーへと自動的に置き換えるようになった(Bug 769117)。この機能は、HTML5版コンテンツをプラグイン版コンテンツに優先させるという、より一般的な機能へと拡大される予定だ(Bug 1277346)。
また、Firefox 49では、トラッキングに用いられる不可視のプラグインが初期設定で無効化された(Bug 1268120)。この機能も、サードパーティーのドメインがFlashプラグインを起動させようとする場合、そのドメインがMozillaの管理するブロックリストに掲載されているときは起動を無効化するという、より一般的な機能へと拡大されていく(Bug 1277876)。Windows向け32bit版におけるwindowedモードの廃止(Bug 1296400)*2もこの流れに位置づけられるだろう。
2つ目の手段である全面CtP化は、今のところ手がかりがないので推測に頼るしかないのだが、まずは単純に既存の「実行時に確認する」を初期設定にするのではないか。この場合、ユーザーはアドオンマネージャで「常に有効化する」へと設定を変更することができるし、クリックしてFlashを有効化する際、特定のドメインでは「常に許可する」こともできる。
だが、おそらくMozillaが2017年中に目指しているのは、こうした常時有効化の設定を排除したCtP化だろう。つまり自動的に再生・実行されるFlashコンテンツはなくなり、ユーザーが積極的に有効化のアクションをとったコンテンツに限って、Flashが起動するわけだ。
さらにその先、2018年に入ると、「実行時に確認する」の設定を残しつつ「無効化する」が初期設定になっていくとみられる。タイミングとしてはFirefox 59のリリース時点で、ESRにおいては「実行時に確認する」が初期設定のままという形で分岐する可能性が高い。もっとも、Flash以外のプラグインがそうであったように、CtPから一足飛びに廃止という流れも考えられる。ただ、前述のMortarプロジェクトがESRだけを念頭に置いたものとは思われないので、やはり通常版でも有効化の余地は残すのではないか。
以上の推測が正しいとすると、FirefoxにおけるFlashのサポートが完全に廃止されるのは、通常版で2018年半ばから後半にかけて、ESRで2019年第1四半期以降になると予想される。
*1:ちなみに、JavaScriptアプリによるFlashプラグインの代替を目指したShumwayは、開発が事実上中止され、Firefox 47時点で本体からコードが削除された。
*2:64bit版では廃止済み(Bug 1248821参照)。