Firefox 4 Beta 1 リリース – Web 開発者注目の新機能を紹介
原文: Firefox 4 beta 1 is here – what’s in it for web developers? (2010/07/01 公開)
Mozilla は本日 [2010/07/07]、Firefox 4 の初めてのベータ版を公開 し、Firefox 4 の最終版に向けて大きな一歩を踏み出しました。今回のベータ版は、これまでの他のリリースとは異なる扱いをすることにしました。従来のベータ版はマイルストーン的なリリースでしたが、今回は、ベータプログラム期間中、より頻繁にアップデートを提供する予定です。このため、ベータ版をダウンロードして使い始めたテスターには、数か月といった長い間隔ではなく、2 週間から 3 週間ごとにアップデートが届きます。これにより、皆さんからのフィードバックにすばやく応えるとともに、修正点や変更箇所をより早期にテストしてもらえると Mozilla では考えています。そしてその結果、非常に品質の高い製品をリリースすることができるはずです。
初めに、フィードバックについて説明したいと思います。今回のベータ版には 2 通りのフィードバック提供方法があります。
Feedback ボタン – 上のスクリーンショットに見えているのは、ベータ版に含まれている「Feedback」と呼ばれるアドオンです。これは、ブラウザウィンドウの右上に大きな Feedback ボタンを追加し、テスターが気に入った、もしくは気に入らない機能について、すばやく簡単にフィードバックできるようにするものです。私たちはベータ期間中にここから送信されたフィードバックに目を通しますので、ぜひコメントを残してください。このアドオンには、よく使用されるメニュー項目、パスワードの使用状況 など、テスターがどのように Firefox を活用しているかを調査する Test Pilot も統合されています。開発チームでは、このベータ期間を通じて、優れたブラウザを作り上げるために必要な、プラットフォームパフォーマンスなどの興味深いデータを測定するためにも Test Pilot を使用する予定です。通常の Test Pilot と同様に、テスターが知らないうちにデータが収集されるようなことはありません。収集されたデータがお使いのコンピュータから Mozilla へ送信される際には、必ず確認が行われます。そしてそれらのデータは非常に厳格な プライバシーポリシー に従って扱われます。
もしあなたが Web 開発者なら、このベータ期間は特に役立つことでしょう。Firefox 4 Beta 1 には、以下で解説するような、Firefox 3.6 にはなかった数多くの新機能が含まれています。このベータ期間を通じて機能の追加や修正を行っていくため、あなたのフィードバックは大変重要です。ぜひ時間を取ってベータ版をダウンロードして試してみてください。可能であれば常用して、継続的な使用によって何か変わることがあるかを確認してください。
パフォーマンス
Firefox 4 には、Firefox 3.6 以降に行われた数多くのパフォーマンスの向上の成果が含まれています。あなたは Web 開発者として、全体的なパフォーマンスの大幅な向上に気付くのではないでしょうか。
DOM とスタイリングのパフォーマンス向上 – DOM とスタイル解決のエンジンに大規模な改良が行われ、複雑な CSS ルールやセレクタマッチングを使用しているページが、一般的により高速かつ適切に表示されるようになりました。(Zimbra パフォーマンステストスイートの一部テストでは、2 倍程度の堅実なパフォーマンス向上が確認できています)
ページ読み込み処理中の I/O 削減 – Firefox 3.6 以降目覚ましい改良が行われている大きな分野のひとつが、メインの UI スレッドから多くの I/O を削減すること です。これは例えば、ブラウザの履歴に基づいたリンクの色付けを行う際、履歴の参照を別スレッドで行うようにして、メインスレッド上で HTTP キャッシュへの同期的なデータの書き込みを行わないようにするといったことが挙げられます。たったこれだけでも、他のどのような対策よりも、ブラウザの全体的な体感速度を向上させることができたのです。
JavaScript – Beta 1 には新しい JägerMonkey の開発成果は含まれていませんが、JavaScript エンジンにもまた大幅な高速化が行われました。JägerMonkey の開発はかなり進んでおり、ベータ期間中に反映されていきますが、既に 良い結果が出ています。
レイヤーを通じたハードウェアアクセラレーション – 今回のベータ版では、ハードウェアアクセラレーションへの優秀な対応が行われました。例えば、HTML5 ビデオを見ているときに全画面表示に切り換えると、Mac と Linux では OpenGL を、Windows では DirectX 9 を使用することで、ビデオの描画が加速します。(Gecko レイヤー の開発作業を拡大しながら、このアクセラレーションを必要に応じてページ内コンテンツにも適用していく予定です。)
D2D を通じたハードウェアアクセラレーション – Windows 7 もしくはサービスパックが導入された Windows Vista では、D2D が有効になったレンダリングに完全対応 しています。これはあらゆる種類のレンダリングに相当のパフォーマンス向上をもたらす可能性を秘めており、IE の開発チームも IE9 に向けて取り組んでいるようです。これは今回のベータ版では初期設定で有効になっていませんが、簡単に 有効にして 試してみることができます。D2D 対応に関して私たちがこれまでに見てきた最高のデモは、実のところ IE Flying Images と IE Flickr Explorer です。Firefox は実際、ほとんどの場合 IE9 のプレビュー版よりも、これらのデモをうまく実行することができます。
プラグインのプロセス分離を Mac 版にも実装 – プラグインのプロセス分離は、数週間前に 3.6 の Windows 版と Linux 版には実装されましたが、今回 Mac 版にも実装されました。プラグインのプロセスを Firefox 本体と分離することで、安定性や応答性を向上させるとともに、メモリ使用量を削減できます。Mac OS X では、10.6 Snow Leopard で動作する Flash Player 10.1 のプロセスを分離させる対応が行われています。(10.6 のみ対応しており、Firefox と個別プラグインの両方についてイベントモデルに対する変更が必要となります。)
HTML5 対応
Firefox は 早くから HTML5 への優れた対応 を行っており、今回のベータ版はそれをさらに拡大していきます。
HTML5 フォーム – 多くの HTML5 フォーム機能 への対応が製品へ反映され始めました。かなり高い 実装基準 が掲げられていますが、ベータ期間に合わせて、さらに多くのフォーム機能が追加される予定です。
HTML5 セクション – <article>
<section> <nav> <aside> <hgroup> <header> <footer> といった HTML5 セクションに対応しました。
WebSockets – 今回のリリースには、仕様のバージョン -76 に基づく WebSockets への対応が含まれています。
HTML5 履歴 – pushState
や replaceState
といった、新しい HTML5 の履歴項目にも対応しました。これらは Web アプリケーションの構築を容易にする非常に重要な機能であり、サイト間を移動する際のプライバシーを向上させられるという点でも非常に重要です。
HTML5 パーサ – Firefox 4 は、HTML5 仕様の最重要部分を占める HTML5 パースアルゴリズムに完全に対応した初めてのブラウザです。このパーサのおかげで、例えば SVG や MathML を HTML コンテンツへ直接埋め込む ことが可能となりますが、それと同時に、マークアップが間違っていたとしても、別々のブラウザが同じ挙動が示すことを Web 開発者に保証するものとなります。これは HTML5 仕様の中で最大の相互運用性に関する部分に含まれ、開発者に多大な恩恵をもたらすことから、他のブラウザもこの取り組みに追従してくれることを Mozilla では期待しています。
そしてもちろん、Firefox 4 は、Canvas (D2D ハードウェアアクセラレーションを含む)、ビデオ、その他多くの HTML5 技術に対応しています。
HTML5 ビデオ
WebM 対応 – この分野におけるこれまでで最大の変更点は、WebM 形式 への対応です。HTML5 対応 YouTube のベータ版 に登録すると、WebM 形式の動画が美しくスムーズに再生されるはずです。
その他の今後実装予定のインタフェース – ベータ期間を通じて、JavaScript による動画の全画面表示 API や buffered
属性への対応の追加、autobuffer
属性の preload
への改称といった作業が行われます。
ストレージと ファイル API
IndexedDB – Firefox 4 Beta 1 には、新しい IndexedDB ストレージ標準 に関する非常に初期の開発成果も含まれています。仕様がまだ確定しておらず流動的であることから、オブジェクトはプライベート名前空間を付けた window.moz_indexedDB
となっています。これは非常に複雑な仕様なので、追って詳しいブログ記事を投稿します。
ファイル API の URI 対応 – ファイル API 内部における URI 対応の初期実装が行われています。これは、ファイル全体をメモリに読み込むことなく、画像や動画など大量のデータをファイル API で処理できるようになったということです。また、<image>
と <video>
要素で、プライベートなファイル API URL を参照して、プレビューや操作を行うこともできます。
FormData – ファイル API やその他のソースから複雑なデータを非常に簡単にサーバへ送信できるようにする FormData メソッドにも対応しました。
アニメーションとグラフィックス
SMIL – SVG アニメーション (SMIL) に対応しました。ベータ版をお使いの方は、David Dailey が作成したこのページにある美しいサンプルの数々 をぜひ見てみてください。
あらゆるところで SVG を – ベータ期間の後半で、通常の画像や CSS 背景画像として SVG を使用できるようにする予定です。開発作業の大半は完了していますが、まだ反映はされていません。
CSS トランジション – 今回のベータ版には CSS トランジション のほぼ完全な実装が含まれており、-moz
接頭辞の付いたプライベート名前空間で使用できます。大きな作業でまだ残っているのは、変形やグラデーションのアニメーションだけです。(グラデーションについてはワーキンググループからのフィードバックを待っている段階で、トランジション関連のソースコードそのものはレビューが進められています。)
WebGL – 今回のベータ版では、初期設定でまだ有効になっていませんが、WebGL 対応の強化が行われています。(Vlad の以前のブログ記事 に有効にする方法が書かれています。) WebGL の仕様はバージョン 1.0 の公開に向けて策定中であり、Chrome、Safari そして Firefox で実装が進められています。Mozilla では Firefox 4 にこの機能を含めたいと考えていますが、最終決定は仕様の安定性やグラフィックスドライバの対応状況に左右されるでしょう。WebGL は Mac では非常に快適に動作するはずです。ATI や NVIDIA 製のドライバが搭載された Windows パソコンでも快適に動作します。しかし、Intel 製ドライバ搭載のパソコンでは、Intel によるドライバ対応が良くないために問題が見られるでしょう。(この記事の筆者もそうです) また Linux では、ドライバごとの対応に大きな差があるため、より複雑な状況です。NVIDIA 製ドライバ搭載のパソコンでは動作しますが、他のドライバではうまく動かない場合があります。それでも、Linux での多くの問題を修正するための取り組みは続けられています。
CSS
リサイズ可能な textarea
要素 – テキストエリアが初期設定でリサイズ可能になりました。-moz-resize
プロパティを使えば初期設定を変更することができます。
新しい -moz-any
セレクタ – -moz-any
は、巨大で複雑なセレクタを非常に小さなものに置き換えられるようにする強力なセレクタです。サンプルは こちらの記事 をご覧ください。
新しい CSS3 calc()
– 今回のベータ版には、新しい CSS3 calc() 値の対応が含まれています。これは、割合と絶対値の組み合わせを含むサイズ指定を可能にするもので、開発者から高い評価を受けています。サンプルは CSS3 calc() に関する記事 をご覧ください。
背景画像の部分選択 – 新しい -moz-image-rect
セレクタを使用して、背景画像の一部だけを選択して表示させることが可能になりました。
-moz-background-size
対応の削除 – -moz-background-size
プロパティは、最終的な background-size
という名前に改称されました。今後 -moz-background-size
は使用できません。
DOM とイベント
入力イベントにおけるタッチ操作の検出 – 入力イベントがマウス操作によるものかタッチ操作によるものかを event.mozInputSource
で調べられるようになりました。
範囲の境界長方形の取得 – Range オブジェクトに getClientRects()
と getBoundingClientRect()
メソッドが追加されました。
任意の要素上のマウスイベントの捕捉 – Internet Explorer 由来の setCapture()
と releaseCapture()
API への対応が追加されました。
document.onreadystatechange
への対応 – document.onreadystatechange
に対応しました。
セキュリティ
コンテンツセキュリティポリシー – 今回のベータ版には コンテンツセキュリティポリシー (CSP) への対応が含まれています。CSP を使えば、ブラウザがコンテンツを読み込む際に許容されることを、サイト管理者が制御できます。CSP は、クロスサイトスクリプティング (XSS) やクロスサイトリクエストフォージェリ (XSRF) 攻撃のリスクを緩和するために作成された仕様です。自動報告機能もあり、他のブラウザに影響を及ぼすおそれのある問題の報告をサイト管理者が受け取ることができます。
最後に
以上が Firefox 4 Beta 1 の概要です。ベータ期間中、さらにいくつかの機能が追加される予定ですが、実際に実装されたらこのブログ [Mozilla Hacks] でお知らせします。それらの機能の一部については、より掘り下げた詳しい情報を提供します。当然のことながら、ベータ期間を通じてパフォーマンス向上作業も継続します。ぜひあなたもベータ版をテストして、コメントがあればここ [原文記事] に投稿するか、組み込みのフィードバック機能で報告してください。
それでは、新機能満載のベータ版をお楽しみください!