Firefox 9 の主な新機能を紹介します

昨夜 Firefox 8リリースされましたが、数日中には Firefox 9 も最初のベータ版を公開予定です。ベータ期間中には基本的に安定性や互換性の修正が行われるのみで、 新機能は追加されません。Firefox 9 のリリースは 12/13 または 12/20 を予定していますが、機能がほぼ確定するベータ版リリース前のいま、一足先に主な新機能と改良点をご紹介します。

11/29 追記: Firefox 9 のリリース日は 12/20 とするが、自動更新は年明けまで有効化しないことになりました。

Firefox 9 の特徴

Firefox 9 では JavaScript エンジンに型推論 (Type Inference) と呼ばれる技術を導入し、Firefox 8 に比べて最大で 45%、Firefox 3.6 に比べれば最大 10 倍高速化します。その他、ダウンロードした画像を実際表示するまでデコードしないことでページ読み込みの高速化とメモリ使用量削減を行うなど、パフォーマンス面で大きな改善が行われます。

Web 開発者向けには、開発者ツールに Eclipse Orion というエディタが統合され、JavaScript のコードを読み書きしやすくなります。JavaScript API 面では XMLHttpRequest で chunked data に対応することで大きなデータにアクセスする場合でも応答性の高いアプリケーション開発が可能になったり、Media Fragment URI によって動画や音声の一部分を抜き出して指定することができるようになります。また、ユーザ追跡拒否設定を JavaScript から確認しそれに応じた適切なプライバシー処理を行うことも可能になります。

Android 版ではタブレットに対応し、スマートフォンとタブレットそれぞれに最適なユーザインターフェイスで Firefox を使えるようになります。また Web アプリケーションでもカメラにアクセスして写真撮影するアプリケーション開発が可能になります。

ユーザ向けの新機能・改良点

型推論 JavaScript エンジンによる高速化

JavaScript は変数の型が動的であるため、C や Java など静的型の言語に比べて実行速度が遅くなります。そこで Firefox 9 では型推論 (Type Inference) と呼ばれる、コードを解析して一部変数の型を推測し、型固有のコードを生成することで高速化する技術を導入しました。これにより JavaScript の実行速度が Firefox 8 に比べて最大で 45% 高速に、Firefox 3.6 と比べれば最大で 10 倍高速になります(Win7 32bit, MacBookAir 2010 で計測)。

なお Firefox 3.6 以降にはコードの解析ではなく実行時に変数の型を監視することで型固有のコードを生成する TraceMonkey という JIT エンジンが搭載されていますが、型推論の導入に伴いその役割を終えました。Firefox 9 ではブラウザのユーザインターフェイスや拡張機能の JavaScript 実行時には使われますが、Firefox 10 では TraceMonkey は削除されます。

HTML5 ビデオファイル再生 UI の改善

Firefox にウィンドウサイズよりも小さいビデオファイルを読み込んだ場合、これまでは白背景のウィンドウ左上でビデオが再生されていました。Firefox 9 からはウィンドウサイズよりも小さいビデオファイルを読み込んだ場合、灰色背景のウィンドウ中央で再生するようになりました。

Web 開発者向けの新機能・改良点

chuncked XMLHttpRequest

HTTP 1.1 ではチャンク(chunck)形式の転送エンコーディングが定義されていますが、これまで XMLHttpRequest の onprogress イベントは各チャンクの受信タイミングでは発行されず、少しずつ転送されるデータを受信して処理することができませんでした。

Firefox 9 ではチャンク形式でデーだを受信する場合、各チャンクの受信時に onprogress イベントが発行されるようになります。大きなデータに Ajax アクセスする場合でもその全てが受信完了するまで待つことなく、データの受信状況を詳細にモニタリングしたり、受信した部分から順次ストリーミング処理するなど、応答性の高いアプリケーションを開発したりできるようになります。

Media Fragment URI

これまで HTML5 の <video> や <audio> では動画や音声のファイルを読み込むことはできましたが、ファイルの一部分だけを指定することはできませんでした。Firefox 9 では Media Fragment URITemporal Dimension に対応することで、10 秒目から 20 秒目などファイルの一部分を参照することが可能になります。

Do Not Track の JavaScript インターフェイス

Firefox 4 からはプライバシー保護のためユーザ追跡拒否を表す Do Not Track ヘッダの送信に対応しています。これにより Web サーバは DNT HTTP ヘッダを確認して処理を変更できますが、Web ページ上の JavaScript ではユーザの設定を確認して処理を変更することができませんでした。Firefox 9 からは navigator.doNotTrack プロパティの値が “yes” かどうか確認することで処理を変更できるようになります。

Do Not Track ついて詳しくは Do Not Track フィールドガイドをご参照ください。このガイドは現在英語のみですが、近日中に日本語訳も公開予定です。

Eclipse Orion の統合

Eclipse プロジェクトで開発されている JavaScript ベースのエディタ Orion が、Firefox の開発者ツール「スクラッチパッド」に統合されました。強調表示などにも対応したエディタ環境で JavaScript のテストや開発が行えるようになります。

追記: Eclipse Orion の統合は Firefox 10 に延期されました。Fierfox 9 で Orion を利用したい場合は about:config で devtools.editor.component 設定の値を “textarea” から “orion” へと変更してください。

Android 版の新機能・改良点

Android タブレットへの対応

Firefox 8 まではタブレット端末でもスマートフォン版と同じユーザインターフェイスでしたが、Firefox 9 ではタブレット専用に最適化したユーザインターフェイスが用意されます。

タブレット版では右にツールバーは表示されず、スターボタンやメニューボタンは右上に表示されます。縦画面表示時にはタブバーは表示されず、左上にタブ切り替えボタンが表示されます。横画面表示時には左にタブバーが表示されますが、タブバーとの境界をスワイプすることで非表示に切り替えられます。

カメラによる画像キャプチャに対応

これまで Web アプリケーションでは端末のカメラにアクセスして写真を撮ることはできませんでしたが、Firefox 9 では <input type=file accept=image/png> などのタグを用いて写真を撮影できるようになります。

JavaScript の大幅な高速化により画像処理も十分可能となってきており、写真を撮り、加工し、アップロードする Web アプリケーションなども簡単に開発できるようになります。

Firefox 8 以前のバージョンについて

Firefox 7 以前のバージョンについて紹介した記事も必要に応じてご参照ください: