米Mozillaは、11月17日(現地時間)にFirefoxの新バージョンとなる「Firefox 83」をリリースした。Firefox 82から4週間でのバージョンアップである。途中、10月27日にマイナーバージョンアップの82.0.1、10月28日には82.0.2、11月10日には82.0.3がリリースされている。82.0.1では、以下の修正が行われた。

  • Windowsでフルインストーラを使用すると、再起動するという不要なプロンプトの表示を回避
  • マージンがゼロのドキュメントを印刷できない問題を修正(たとえばPDFなど)
  • テキストフレームワークマリオネットで、WebDriver:ClickElementコマンドの処理の修正
  • 安定性の修正

セキュリティアップデートは行われなかった。82.0.2では、以下の修正のみが行われた。 - 特定の環境下でWebSocketメッセージが重複する問題を修正

81.0.2では、セキュリティアップデートが行われた。深刻度は「Critical」で、メモリ解放後使用が懸念される。これは、中国で行われたハッキングコンテスト「天府杯 2020(Tianfu Cup 2020)」で見つかったものである。

以上である。したがって、今回のバージョンアップは、82.0.3からとなる。

Firefox 83のインストール

すでに自動アップデートが可能な状況になっているが、ここでは手動でアップデートする方法を説明したい。Firefoxメニューの[ヘルプ]→[Firefoxについて]を開くと更新が自動的に開始される。[再起動してFirefoxを更新]をクリックする(図1)。

  • Firefox 83へのアップデート

    図1 Firefox 83へのアップデート

アップデート後のFirefox 83は、図2のようになる。

  • 図2 バージョン83にアップデート直後のFirefox

新規に、Firefox 83をインストールする場合、FirefoxのWebページからインストーラをダウンロードする(図3)。

  • 図3 Firefoxのダウンロードページ

[今すぐダウンロード]をクリックし、保存したファイルをダブルクリックして、インストールを開始する(図4)。

  • 図4 Firefox 83のインストール

画面の指示に従い、インストールを進めてほしい。以下では、新機能や変更点のいくつかを具体的に見ていこう。

Firefox 83の新機能

続いて、新機能であるが、今回のリリースでは、以下の新機能の追加、変更が行われた。

  • JavaScriptエンジンであるSpiderMonkeyの大幅な更新の結果、Firefoxの高速化が実現された。具体的には、ページの読み込みパフォーマンスが最大15%向上し、ページの応答性が最大12%向上し、メモリ使用量が最大8%削減された。JavaScriptエンジンの一部を置き換えることにより、同時にエンジンのセキュリティと保守性を向上させた
  • HTTPS-Onlyモードが導入された。HTTPS-Onlyモードを有効にすると、FirefoxがWebサイトに接続するすべての接続が安全になり、安全な接続が利用できない場合に警告が表示される。この設定は、オプションで変更可能
  • ピンチズームが、Windowsではタッチスクリーンに対応したデバイス、同様にMacデバイスでもタッチパッドで2本指で拡大・縮小が可能に
  • Picture-in-Pictureでは、動画の早送りと巻き戻しのためのキーボードショートカットをサポート。矢印キーとコントロールキーで、音量コントロール、15秒前後の移動などが可能に
  • Firefoxのビデオ会議で画面を表示している際に、共有されているデバイスまたはディスプレイをわかりやすくするためのインターフェイスが改善された
  • 検索機能の機能とデザインを改善。具体的には、以下の通り。
    • 検索パネルの下部で検索エンジンを選択すると、そのエンジンの検索モードになり、検索用語の候補(利用可能な場合)を表示できるようになった。従来の動作(検索をすぐに実行する)をするには、[Shift]キーを押しながらクリックすればよい
    • Firefoxが検索エンジンでの1つのURLをオートコンプリートすると、アドレスバーの結果でショートカットを選択することにより、アドレスバーでそのエンジンを使用して直接検索可能に
    • 検索パネルの下部にボタンを追加して、ブックマーク、開いているタブ、履歴内で検索可能に
  • AcroFormをサポート。これにより、サポートされているPDFフォームに入力、印刷、および保存が可能に。また、PDFビューアのルック&フィールも一新
  • インドのユーザー向け(英語版)では、新しいタブにPocketの推奨項目が表示され、Web上で推奨されるストーリーが紹介される
  • Appleの新CPUであるM1のAppleデバイスの場合、Firefox 83以降のリリースでは変更せずに使用可能。今回のリリース(83)では、macOS BigSurに同梱されているAppleのRosetta2でのエミュレーションをサポート。将来のリリースでは、M1用にネイティブにコンパイルされるように取り組む予定
  • レンダリングエンジンのWebRenderが、Windows 7と8、およびmacOS 10.12から10.15でサポート対象となった

以下、具体的に見ていこう。

まず、今回のアップデートで注目すべきは、JavaScriptエンジンのSpiderMonkeyの改良であろう。実行時コンパイラ(JIT)の大幅な改良である。JITとは、頻繁に実行するコードをあらかじめコンパイルしておくことで、コードの実行速度を向上させる仕組みである。Firefox 82のJITであるIonBuilderは、複雑でセキュリティ上の懸念があり、不必要な処理が含まれていた。そこで、新たなJITコンパイラWarpBuilderでは、内部の型情報を削減やキャッシュの最適化を行い、構造をシンプルにすることで、パフォーマンスが5%~10%改善された。それが、ページ読み込みや応答性の高速化につながったといえる。

実際にベンチマークを取ってみた。まずは、Firefox 83である。

  • 図5 Firefox 83でのSpeedometer2.0の実行結果

同じ環境で、Firefox 82で試したものが、図7である。

  • 図6 Firefox 82でのSpeedometer2.0の実行結果

一般的に、JavaScriptのベンチマークは、すべてのWebサイトでの高速性を反映するものではない。しかし、この結果にあるように、10%以上の高速化が実現されているといってもいいだろう。

次いで、HTTPS-Onlyモードである。最近では、多くのWebサイトで、通信が暗号化されるようになった。SSL(Secure Sockets Layer)と呼ばれるもので、FirefoxなどのWebブラウザとWebサイトの間の通信を暗号化する仕組みである。送受する通信を保護し、改ざんや盗聴を防ぐ。その後、SSL3.0をベースにTLS(Transport Layer Security)1.0が策定された。多少の仕様の違いはあるが、基本的には同じ仕組みといってもよい。そこで、「TLSのことも含めてSSLと呼ぶ」または「SSL/TLS」、「TLS/SSL」といった表記が使われる。HTTPS-Onlyモードは、デフォルトでは無効となっている。[オプション]→[プライバシーとセキュリティ]のHTTPS-Onlyモード項目で設定をする。

  • 図7 HTTPS-Onlyモードの設定

2通りの設定が可能で、[すべてのウィンドウでHTTPS-Onlyモードを有効にする]と[プライベートウィンドウのみHTTPS-Onlyモードを有効にする]を選べる。HTTPS-Onlyモードを有効にした状態で、SSL/TLSが設定されていないWebサイトを閲覧しようとすると、図8のようになる。

  • 図8 HTTPS-Onlyモードで暗号化されていないWebサイトをブロック

現状、SSL/TLSが設定されていないWebサイトはかなり少なくなった(特に企業などの公式サイト)。暗号化のみが完全なセキュリティを担保するものでもない。しかし、少しでも安全性を考慮したいのであれば、設定すべき項目といえるだろう。

次いで、Picture-in-Pictureのキーボードショートカットであるが、サポートされているキーボードショートカットは、図9の通りである。

  • 図9 Picture-in-Pictureでサポートされるキーボードショートカット

音量の調整、ちょっとした早送りや巻き戻しが簡単に行えるようになった。

検索では、検索語を入力すると検索パネルが表示され、デフォルト以外の検索エンジンを選択することができた。それが変更され、検索エンジンをクリックしても即座には検索されず、検索モードが切り替わるだけになった。また、Bingなどの検索エンジンだけでなく、ブックマークや開いているタブ、閲覧履歴も選択可能になった。

  • 図10 新しい検索モード

AcroFormは、Firefox 81からサポートされるようになったが、対応がより拡充した。さらにPDFビューワーもそのルック&フィールが一新された。

  • 図11 一新されたPDFビューワー

セキュリティアップデート

同時に行われたセキュリティアップデートであるが、修正された脆弱性はCVE番号ベース で21件である。深刻度の内訳は、4段階で上から2番目の「High」が4件、上から3番目の「Moderate」が11件、もっとも低い「Low」が6件となっている。

「High」では、

  • 不一致の解析において、Chrome特権コードのセキュリティサニタイザーが誤動作してバイパスされる危険性
  • JITedのメモリ不足処理、インライン関数ではメモリ破損につながる危険性
  • Firefox 83とFirefox ESR 78.5で修正されたメモリ安全性の問題
  • Firefox 83で修正されたメモリ安全性の問題

となっている。最高レベルの「Critical」はないが、数が多い。早めのアップデートをすべきであろう。