【連載】
![]() |
先日RC1が公開された「Firefox 3.0」。当初予定されていた2007年内からは遅れたものの、仕上がりは上々、大きな不具合がないかぎり現状のまま正式版として公開される予定だ。今回は、そのFirefox 3.0 (RC1) の新機能、特にコアコンポーネントに絞り解説を行ってみよう。
Firefox 3.0のコアコンポーネントにおける最大の見どころは、レンダリングエンジン「Gecko 1.9」だろう。2005年夏に開発がスタート、以来数百万行 (Firefox 3.0 β1の時点で200万超) にもおよぶコードの加除修正を経て、メジャーバージョンアップに相応しい機能強化を果たしている。
Gecko 1.9は、HTML 4.01およびCSS 2.1にほぼ対応。W3C勧告への準拠度 / 互換性を測るAcid2テスト もクリア、現在のWeb標準仕様を満たしている。
グラフィック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時点で実装は完了していないが、今後期待していい機能といえるだろう。
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の処理系が強化されたことも重要なポイント。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] |
| The Acid2 Test |
| cairographics.org |
| SVG in Firefox(Mozilla Developer Center beta) |
| SunSpider JavaScript Benchmark |
| Mozilla におけるドキュメント・オブジェクト・モデル |
| Mozilla Foundation |
| Mozilla Japan |
| リンクス、5600DPIのレーザーセンサーを搭載した8ボタンゲーミングマウス [16:51 2/10] |
| アスク、USBトークンキーをセキュリティキーとしたポータブルHDD2モデル [16:50 2/10] |
| 【特別企画】2012年 VAIO春モデルカスタマイズポイント ~VAIO Z編~ [15:44 2/10] |
| より多くのファイルをプレビュー表示できる「FenrirFS 2.3」が公開 [15:00 2/10] |
| ストーム、省スペースPCにLinux搭載の「Storm Book Tower LS Linux Edition」 [14:59 2/10] |
|
カシオ、子供の入園/入学にぴったりな[お名前・似顔絵シール]印刷サービス [17:38 2/10] 家電 |
|
TVウォッチャーの芸能まるごと1週間 - メイサ&赤西結婚、花子妊娠に沸いた [17:10 2/10] エンタメ |
|
竹達彩奈、デビューシングル「Sinfonia! Sinfonia!!!」を4/11にリリース [17:02 2/10] ホビー |
|
一緒に住むのをためらってしまう相手のクセとは? [17:00 2/10] キャリア |
|
日産、スカイラインクーペ特別仕様車「55th Limited」を55台限定発売 [16:54 2/10] ライフ |