【連載】
完全理解Firefox - いま知るべきWebブラウザの過去・現在・未来
5 Firefox 3.0 RC1で知る「次のWebブラウザ」 - コアコンポーネント編
2008/05/20
![]() |
先日RC1が公開された「Firefox 3.0」。当初予定されていた2007年内からは遅れたものの、仕上がりは上々、大きな不具合がないかぎり現状のまま正式版として公開される予定だ。今回は、そのFirefox 3.0 (RC1) の新機能、特にコアコンポーネントに絞り解説を行ってみよう。
今度のエンジンは「Gecko 1.9」
Firefox 3.0のコアコンポーネントにおける最大の見どころは、レンダリングエンジン「Gecko 1.9」だろう。2005年夏に開発がスタート、以来数百万行 (Firefox 3.0 β1の時点で200万超) にもおよぶコードの加除修正を経て、メジャーバージョンアップに相応しい機能強化を果たしている。
Gecko 1.9は、HTML 4.01およびCSS 2.1にほぼ対応。W3C勧告への準拠度 / 互換性を測るAcid2テスト もクリア、現在のWeb標準仕様を満たしている。
Cairoへの移行
グラフィックAPI「Thebes (テーベ)」の採用も要注目。従来のGeckoは、グラフィック抽象化レイヤーとして「GFX」を使用してきたが、設計時点から10年を過ぎ時代の要請にそぐわない部分 (および解決困難な不具合) も生じてきたことから、ベクトルベースの「Cairo」をバックエンドに採用した新APIへの移行に踏み切ったのだ。
Thebes / Cairoに移行するメリットを簡単にまとめてみよう。まず1つは、グラフィック抽象化レイヤーを一本化できること。従来のGFXでは、HTMLやXUL (GUI部分) のレンダリングに必要な機能しか備えておらず、透過表示やベクトルグラフィックの描画といったモダンな機能を利用する場合は外部の、しかもプラットフォームごとに異なるAPI (WindowsならばGDI+、Mac OS XならばQuartz) に依存していたため、複雑化していた。Cairoには必要な機能が一通り揃っており、プラットフォーム非依存であることから、好都合だったのだ。
|
|
|
Gecko 1.8(左)と1.9(右)はグラフィック抽象化レイヤーが大きく異なる(Brendan's Roadmapより) |
|
もう1つは、GFXからThebes / Cairoへの移行により、これまで一掃することが困難だった不具合を減らせること。前述したとおり、GFXではプラットフォームごとに異なるコードを用意しなければならず、ディスプレイやプリンタなど出力デバイスごとの対応も必要だったことからコードが複雑化、それが不具合の温床となっていた。たとえは悪いが、引っ越しすると整頓される……というか引っ越ししないかぎり散らかる一方の部屋 (某編集部ではありませんよ) に似ているかもしれない。
高速化も見込まれている。Cairoには、OpenGLの3Dハードウェアアクセラレーションに対応するコードが含まれているのだ。Firefox 3.0 RC1時点で実装は完了していないが、今後期待していい機能といえるだろう。
SVGのサポート強化
Firefox 1.5から正式にサポートされた「Scalable Vector Graphics (SVG)」も、機能が強化されている。「feGaussianBlur (ガウスぼかし)」や「feBlend (混色)」など24種以上のフィルタを新たにサポート、Firefoxが目指すSVG実装 (SVG 1.1 Full) に近づいた。未実装の機能も残るが、Safari / WebKitなど他のオープンソースなブラウザに比べ先行していることは確か。
|
W3CのサイトにあるSVGファイルを表示したところ。Firefox 3.0 RC1だけが意図したとおりに表示できた (上から順にFirefox 3.0 RC1、Firefox 2.0.0.14、Safari 3.1.1) |
|
|
|
高速化されたJavaScriptエンジン
JavaScriptの処理系が強化されたことも重要なポイント。Webアプリが普及した現在、Firefox 3.0 / Gecko 1.9に移行する大きなメリットといえるだろう。
とにかく、パフォーマンスが大幅に向上した。JavaScriptベンチマーク「SunSpider 0.9」で試したところ、Firefox 2.0.0.14の12,408.8msというスコアに対し、Firefox 3.0 β1は3,093.6ms (テストにはMacBook Pro 2.33GHz / 2GB RAMを使用)。実に4倍近いスピードアップだ。このベンチマークには現れていないが、多くのWebアプリで使用されるDOMの処理系も高速化されているので、リッチな機能を持つWebアプリは体感できるほど速度が改善されている。
なお、Firefox / GeckoのJavaScriptエンジンは、次の「Firefox 4」でさらなる高速化が見込まれている。採用予定のJavaScriptエンジン「Tamarin」は、Adobe Systemsから寄贈されたもので、Java VMなどでお馴染みのJITコンパイルによりネイティブコードを生成、大幅なパフォーマンス向上を図るというもの。話はFirefox 3.0から逸れるが、期待の新技術ということで敢えて紹介しておきたい。
関連記事
- ついに「Firefox 3.0」のリリース候補が公開[2008/5/17]
- 【インタビュー】Firefox 4のJavaScriptは超速い! - John Resig氏、jQueryとTamarinを語る[2007/11/9]
関連サイト
ヘッドライン
- 【レポート】5分でわかる今週のPC注目記事 - 3月14日〜3月20日[18:05 3/21]
- すべての旧来メディアはiPadに集まる - News Corpのマードック氏の予言[17:51 3/20]アップル
- Apple訴訟を受け、HTCがGoogleと共同で反訴を計画か - NYT[17:39 3/20]アップル
- iPad発売を前に、Appleが事業者とのコンテンツ提供交渉で苦戦 - WSJ[11:27 3/20]アップル
- 一度の再起動でOSやデータを完全保護「HD革命/WinProtector Ver.3」[21:44 3/19]ユーティリティ活用術
- ASUS、防塵ファン装備のRadeon HD 5670カード「EAH5670/DI/512MD5」[21:23 3/19]自作
- MSI、高性能クーラー「Twin Frozr II」装備のRadeon HD 5830カード[21:12 3/19]自作
- 【コラム】3Dグラフィックス・マニアックス 第91回 人工知性でコンテンツを生成するプロシージャル技術(15)[20:48 3/19]自作
- Apple iPad、オンライン+店舗合わせた1週間の予約累計台数は40万台?[20:17 3/19]アップル
- 「スマートエンジン選択ボタン」搭載のLunascape 6.1β版が公開[20:16 3/19]ソフト













