Firefox 48の新機能
Firefox 48の新機能であるが、以下の通りである。
- ダウンロード保護機能が改良され、不要な危険ソフトウェアや、望ましくないソフトウェアに対して警告が表示
- プロセス分離(e10s)が実装(この機能は一部のユーザーにのみ提供される)
- Mozillaによって検証・署名されていないアドオンはロードされない
- GNU/Linux:Skiaへの対応によりCanvasの描画性能が向上(最大で3倍程度高速に)
- WebRTCに以下の改良が行われた(Delay-agnostic AECが有効に、GNU/LinuxとMac OS Xでの全二重通信をサポート、ICEのリスタートと更新が利用可能に、MediaStreamとMediaStreamTrackの複製が可能に)
- URLバーで検索した場合、ブックマークされているページや、すでに開いているページはアイコン表示されるように
- Windows:Tab(ボタンの移動)とShift+F10(メニューの表示)を、カスタマイズ画面でTabとShift+F10が利用可能に
- Rustで書き直されたメディアパーサが組み込まれた
セキュリティ面では、マルウェアのダウンロードを防ぐ機能が強化された。[オプション]から[セキュリティ]タブを開くと、以下のようになる。
47では、攻撃・危険サイトのブロックの可否であった。それが[危険な詐欺コンテンツをブロックする]に代わり、さらに詳細項目として、
- 危険なファイルのダウンロードをブロックする
- 不要な危険ソフトウェアを警告する
が追加された。今回、新機能の1つにElectrolysis(略称:e10s、最初と最後の文字とその間に10文字がある意味)がある。その機能を一言でいえば、Firefoxのマルチプロセス化である。一部の環境において、有効化される。Electrolysis自体は、目新しい機能ではない。Firefox 4の頃にも試案として存在した。しかし、実装の困難さなどもあり、開発が停止していた時期もあった。しかし、2016年になり実際のテストも行われるようになった。図5は、筆者が普段使用しているFirefoxであるが、「実験」でマルチプロセスの実験の痕跡があった。
どのようにマルチプロセス化するかというと、UI領域でJavaScriptのプロセスとコンテンツ領域(Webページ)のプロセスの分離である。具体的なイメージでいえば、多数のタブを開き、複数のWebアプリケーションを実行するような状況を想像してほしい。マルチプロセス化することで、、1つのタブのトラブルから、Firefox全体がハングアップしてしまうような事態を防ぐことができる。
従来のFirefoxでは、この2つのプロセスを分離することが非常に難しかったようである。ここにきて、その準備が整いつつあるということだ。しかし、Electrolysisが関与する領域は、非常に多岐にわたる。いきなり、それすべてをマルチプロセス化することは、非現実的である。そこで、今回の実装では「一部のユーザー」となったのである。具体的には、以下の環境では、有効化されない。
- サポート対象外となる予定のMac OS X 10.6/10.7/10.8
- Windows XP
- アドオンをインストールしている場合(有効の状態でアドオンをインストールすると、Firefoxの再起動によりe10sが無効に)
- アクセシビリティツールが動作している場合
- RTL言語ロケール(右から左に記述する言語)の場合
実用的な環境で、アドオンをインストールしていないというのはほとんどありえないだろう。Mozillaによれば、現状でこの機能が有効化されるのは、全体で1%程度とのことである。さらに、Windows上でテキストやその他の項目を拡大する設定にしていることも、「アクセシビリティツールが動作している」と判定される。e10sが機能しているかどうかは、[ヘルプ]→[トラブルシューティング情報]で確認することができる。
アプリケーション基本情報の[マルチプロセスウィンドウ]が「有効」となっていれば、e10sは有効化されている。筆者の環境では残念ながら、有効にすることはできなかった。今後、Firefox 51において、アクセシビリティツールが動作している場合やRTL言語ロケールでも有効化される。また、このバージョン以降、アドオンがインストールた状態でも有効化が進む予定である。初期状態で有効化されるのは、Firefox 53の予定である。そして、コンテンツプロセスの複数化などがその後に予定されている。
Mozillaによって検証・署名されていないアドオンはロードされない点も少し注意が必要だろう。この機能も、かなり以前より実装が検討されてきたが、バージョン48で正式に実装となった。署名のないアドオンをインストールしようとすると、図7のようになる。
さらに古いバージョンでインストールされた署名のないアドオンは、アドオンマネージャで無効化される(図8)。
最近のアドオンであれば署名されており、問題が発生することはないだろう。しかし、旧いアドオンや開発中のアドオンを検証したいといった場合には、unbranded Builds Firefoxという特別のバージョンを使用することで回避できる。
図8の[マニュアル]リンクからたどることができる。
また、アドレスバーでの検索において、検索結果の表示方法が変更された。
ブックマークされているページやすでに開いているページはアイコンが表示されるようになった。修正・変更点は、以下の通りである。
- JabraヘッドセットとLogitech C920 Webカメラで発生する音声に関する不具合を修正。これによりWebRTC利用時などに発生していた音声の歪みが解消
- デバッガでのステップ実行時における、関数の最終行の取り扱いが修正
- Windows:このバージョン以降でSSE2拡張命令セットが必須に
- Mac OS X 10.6、10.7、10.8のサポートを終了。今後は10.9の開発に注力
- Windows Remote Access Service modem Autodialを利用しなくなった
開発者向けやHTML5に関する新機能は、以下の通りである。
- WebExtensionsの実装が安定版に
- positionがabsoluteもしくはfixedに設定されている要素の位置を編集するための機能が追加
- メモリツールにツリーマップ表示機能が追加
- WebExtensionsのバックグラウンドコンテンツで動作するスクリプトや、バックグラウンドページをデバッグ可能に
- WebExtensionsに対してContetn Security Policy(CSP)が強制されるように
- エラーコンソールが廃止。以後はブラウザコンソールで行う
- about:debuggingでアドオンを再読み込み可能に。この機能を利用すると、アドオン開発がより効率的に行える
- 開発ツールにFirebugテーマが追加
- コンソールパネルで通信の詳細を閲覧可能に
- Web Crypt APIをWorkerから利用可能に