Firefox 58の新機能

まずは、Firefox 58の新機能である。リリースノートによれば、以下のようになる。

  • Windows版:Off-Main-Thread Painting(OMTP)を使用し、グラフィックをレンダリング
  • Firefoxキャッシュとretrieves JavaScriptにより、ページの読み込みを高速化
  • スクリーンショットのコピー、貼り付けをクリップボードから直接実行可能に
  • スクリーンショットがプライベートブラウジングモードでも使用可能に
  • ネパール語(ne-NP)ロケールの追加
  • Firefox57で追加されたプライバシーとパフォーマンスの機能を無効にしても、[こちら](https://support.mozilla.org/ja/kb/tracking-protection#w_how-to-turn-tracking-protection-on)の方法で再度有効可能に
  • Linux版:標準でないディレクトリにインストールしたフォントは空白ではなくなる
  • いくつかのセキュリティ問題の修正
  • Firefox 58(および今後のリリース)で作成されたユーザープロファイルは、以前のバージョンのFirefoxでは非サポートに。以前のバージョンにダウングレードしたユーザーは、そのバージョン用の新規プロファイルを作成する必要があり

また、開発者向けには、

  • PerformanceNavigationTimingAPIの改善
  • service worker startup timeが計測できるようPerformanceResourceTiming.workerStartを導入

といった機能が追加されている。いくつか具体的に紹介しよう。まず、Windows版におけるOff-Main-Thread Painting(OMTP)の実装である。一言でいえば新しいレンダリングシステムである。従来のレンダリングシステムでは、GPUに処理済みのデータを送り、イメージの合成を行うコンポジットのみが、別スレッドで実行可能であった。新レンダリングシステムでは、コンポジット以外にもレイヤーのレンダリングを行うラスタライズも別スレッド化(ペイントスレッド)した。

  • 図5 Off-Main-Thread Painting(OMTP)によるラスタライズ(Mozillaのブログより引用)

効果であるが、フレーム落ちなどを減少させ、応答性を高めることが達成された。Mozillaによるベンチマーク結果は、図6の通り、2割から3割の向上が見てとれる。

  • 図6 Direct2DとSkiaのベンチマーク結果(Mozillaのブログより引用)

Firefoxでは、JavaScriptスクリプトを受け取ると、字句解析・構文木の生成・バイトコードへの変換などの処理を行う。Firefox 58では、JavaScript Startup Bytecode Cache(JSBC)を実装し、変換済みのバイトコードをキャッシュする。この機能により、読み込み時間の短縮が実現できる。特に、よく利用するポータルサイトなどで、その効果が期待できるとのことである。

ルック&フィールでは、スクリーンショットの改良である。キャプチャーしたイメージをクリップボードへコピーするボタンが追加された。

  • 図7 スクリーンショットにコピーボタンが追加

また、プライベートブラウジングでも、スクリーンショットの使用が可能となった。

注意すべき変更点としては、プロファイルの仕様変更であろう。従来のプロファイルから変更され、Firefoxを57以前のバージョンに戻しても、現状のプロファイルが使用することができない(再度、作成する)。一般的にダウングレードすることは少ないと思われるが、Webページの確認などで旧バージョンのテストを行うといったこともあるだろう。その際には、注意してほしい。

セキュリティアップデートであるが、32件の修正が行われた。内訳は、最高が3件、高が13件、中が13件、低が3件である。速やかにアップデートを行いたい。

また、アドオンであるが、徐々にWebExtensionsへの移行が進んでいるというところだ。残念ながら、すでに開発を停止してしまったアドオンには期待ができないが、これまで定番といわれていたアドオンも対応しつつあるようだ。今後に期待したいところである。

  • 図8 Firefox Add-ons - Mozilla

今回のバージョンアップは、比較的地味なものが多かった。冒頭でもふれたように、Quantumプロジェクトは、今後も継続される。さらに新機能の追加も予定されている。こちらも今後に期待したい。