Mozilla Flux

Mozilla関係の情報に特化したブログです。

Firefox Quantum雑感

"Firefox Quantum"という名称

Mozillaの公式ブログその他を読むとFirefox QuantumはFirefox 57「だけ」の別名に見えるが、実際には数バージョンにわたって使用される名称だ。Photon UIのブラッシュアップはFirefox 59の開発サイクルが終わるまで続くという話があるので、Firefox 60からは元通り数字で呼ばれるんじゃないだろうか。

Firefox 57は、Mozilla Corp.の社運を賭けたといっても過言ではないくらい大きな節目のバージョンになるので、盛り上げるために呼び名を工夫したいのはわかる。が、Quantumプロジェクトの達成度からいうと中途半端な印象だ。今できる高速化を詰め込んだQuantum Flowが成功したので、格好はついたものの、Firefox 57の時点で有効化されたのはQuantum CompositorとQuantum CSSまで。それにQuantum CSSが真価を発揮するのはこれからだ。仮にFirefox 60までQuantumの名前を引っ張るにせよ、Quantum DOMは追加できてもQuantum Renderは間に合うかどうか。

高速化と応答性

いちおうここでもFirefox 57のことをFirefox Quantumと呼ぶことにするが、Firefox Quantumはたしかに速い。Developer EditionやBeta版を試用したユーザーからの評判もいいようだ。ただ、速さは体感的なものでもある。応答性の向上なども感覚に影響を及ぼしているのは間違いない。

Quantum Flowでは速度低下の原因を詳しく分析して、丹念に取り除いた。Firefox 55から効果が出始め、Firefox QuantumではSpeedometer v2ベンチマークにおけるChromeとの差が20%以内にまで縮まった。実環境を反映する度合いが高いとGoogleがお墨付きを与えたベンチマークで、ついにChromeの背中を捉えたのだ。Quantum CSSはGeckoのスタイルシステムからパフォーマンスが落ちないようにしながら、うまくはまった場合は高い効果を発揮する。そのほか、Windows版ではAdvanced Layersと呼ばれるDirect3D 11ベースのcompositorが有効化されている。できるだけ多くのレンダリング処理を1回の描画で済ませることにより、CPU/GPUリソースの無駄遣いをなくすという。

こうした高速化に加えて、Mozillaが従来から取り組んできた成果がFirefox Quantumで全面的に発揮されることになる。たとえばe10sだ。旧式アドオンを排除したことで、e10sが無効になる要素がなくなった。今のe10sはcontentプロセスが4つに増えたe10s-multiである。そして、Quantum Compositorが独立したプロセスで動く中、Async Pan/Zoom(APZ)がキーボードによるスクロールを含めて効いてくる。e10s無効の環境から移行すれば、応答性の違いは顕著だ。1年前にMozillaが、e10sでふつうのWebサイトは400%、複雑なWebサイトは700%応答性が向上すると言い出したときは、さすがに盛りすぎだろうと思ったが、今の状況なら400%アップもありえそうだ。

あと、最近Developer Edition/Beta版をインストールしたユーザーは、ほとんどがスタブインストーラを使っているはずだ。大多数を占めるWindows環境では、これで知らず知らずのうちに64bit化している。Mozillaは64bit版に関し、安定性は高まるが速度は変わらないというスタンスだが、システム要件ぎりぎりまでを念頭に置くからそうなるのであって、多くの環境では若干処理が高速になっていると思う。

新しいUI

Photonの新デザインはUIの隅々にまで及んでいるが、ぱっと目につくのはタブが四角くなったのと、タブバーの背景色の変更、それにメニューパネルが文字中心になったことだろうか。ロケーションバー改めアドレスバーで「…」をクリックすると、ページアクションメニューが表示されるようになっているのだが、ちょっと気付きづらいか。それよりも、ツアー画面のオーバーレイ表示がうるさいかもしれない。これでもスキップがかなりしやすくなったほうだ。開発者たちがNightlyで試行錯誤し始めたころなんか、恒久的にオフにする方法が見つけにくくて、嫌がらせかと思うほどだった。

Mozillaはメニューパネルを一切いじらせない方針だ。項目の追加、削除、並び替えはできない。拡張機能を使っても駄目だ。その代わり、ツールバーのカスタマイズは柔軟にできるようにした。ツールバーに常時置いておくのはあれだが、無効化もしたくない拡張機能のアイコンは、まとめてオーバーフローパネルに放り込んでおけるので便利だ。一方、ダウンロードを始めるとボタンがツールバーに突然出てくる仕様に変わった点は、異論もありそうである。

WebExtensions限定化

旧式アドオンを全部捨てるのは相当な賭けに思えたが、案外Mozillaは勝てるかもしれない。理由は簡単で、Firefox Quantumが速くて軽いからだ。他にあんまりメリットがなくて拡張機能が使えなくなりますでは、ふざけるなという反応になるだろうが、今までのバージョンより圧倒的に速く、軽くなるなら話は別だ。しかも、何でもありだったXULベースの旧式拡張機能に比べると、WebExtensionsベースの拡張機能は重くなりにくいし、今のところWindows版のみだが、まとめて1つの独立したプロセスを割り当てられるので、本体を巻き込んでクラッシュする可能性も大幅に低下している。

Chromeの拡張機能APIを取り込んだことで制約が大きくなった反面、移植は簡単になり、開発者にとっての敷居も下がった。Mozilla Add-ons(AMO)には日々新しい拡張機能が追加されていて、WebExtensionsの割合も増えてきた。現時点でこれだから、Firefox Quantumのリリース前後にはもっと賑わうだろう。しばらくはダイナミックにランキングが入れ替わりそうだ。Chromeの拡張機能を移植したことで、Firefoxユーザーの間で火がつき、Chromeユーザーにも人気が出るといったサクセスストーリーが生まれることを期待したい。

最後に

Chrome一人勝ちの状況の中、勝負はこれからだとばかりにFirefox Quantumが出てきた。Mozillaが自画自賛するように、出来は素晴らしい。その上Quantumプロジェクトはまだ先がある。本命はQuantum Renderで、これにWebAssemblyの最適化を合わせると、ゲームプラットフォームとしてのステージが一段上がるはず。旧式の拡張機能とともに捨てられる技術的負債もあるので、Firefoxの高速化は続く。これでシェアも回復してくれるといいんだが。

f:id:Rockridge:20171001221145j:plain:w400
素晴らしきFirefox