Firefoxの最新状況

先週、オレゴン州ポートランドで開催されたO’Reilly Open Source ConventionでMozilla Corp.のMike Schroepferと数分座談する機会を得た。内容はFirefoxを中心に開発、セキュリティ、JavaScriptのアップデート、そしてLinuxベンダその他Firefoxの下流プロバイダとの連携にまで及んだ。

自動アップデート機能の追加でFirefoxはすこぶる進歩した。ブラウザの全ユーザーにセキュリティアップデートを短時間でプッシュする体制が確立したからだ。ただし、自動アップデート機能の恩恵を受けるのはブラウザをMozillaから直接入手したユーザーに限られ、Linuxディストリビューションのパッケージとして入手したユーザーはベンダに頼らざるを得えない。多くの場合、そのリリースはMozillaの公式リリースより最大1週間ほど遅れるのが現状である。

Firefoxの公式リリース後、Linuxディストリビュータからアップデートが提供されるまでにいつもタイムラグがあるようだが、Schroepferによれば、開発者はそのギャップを縮めるためにできることを行っているという。

特に、現在はtarアーカイブをリリース候補版と並行して「密集行進的」に発行している。これでテストの裾野が広がり、ベンダによる変更の適用が容易になる。以前は、tarアーカイブの発行がリリース候補版よりも遅れ、その結果、Debian、Ubuntu、Fedoraといったプロジェクトのパッケージメンテナの手を縛ることになっていたという。

これは、Firefoxの最新リリースをカバーしているが、レガシーリリース(1.0.8で終了した1.0.xシリーズなど)はどうか? Firefoxは1.0.xシリーズのサポートを公式に終了したが、このシリーズは今も一部のLinuxディストリビューションに含まれており、それらのディストリビューションは今後何年もサポートされる。コードベースの系統が拡散するにつれて、ベンダによるセキュリティ修正のバックポートはどんどん難しくなる。

Schroepferによれば、Mozillaプロジェクトは「どんな方法を使っても支援する傾向がある」けれども、「同時に複数の系統をサポートして人々の期待するような進展を成し遂げるほどの資源は持ち合わせていない」という。

NovellやRed Hatなどのディストリビュータはエンタープライズデスクトップ市場に目が向いているようだが、「Mozillaは一般消費者により重点を置く会社」で、「圧倒的多数」のFirefoxユーザーは1.5.x系へのアップグレードをもう済ましているという。

「我々は小さな会社ながら善戦している。一度にできることが多いだけだ。我々は企業の仕事を請けておらず、サポートで稼いでもいないので、エンタープライズサポートに必要な資源がないのだ」

しかし、Mozillaとしては系統間に無意味な非互換性が生じないよう努力しており、絶対に必要な場合を除き、新しいリリースがFirefoxのサイトや拡張機能の互換性を破ることはない。また、2.0系は1.5系以降からフリーズされたAPIの上で開発されたので、リリース間の断絶はごくわずかなはずだともいう。

Schroepferは、CやC++などの「ネイティブコードで書かれたもの」については、今後もセキュリティが問題になるとの見通しも語った。例えば、メモリに起因するセキュリティ問題は、スタックベースの弱点攻撃からヒープベース、そしてnullポインタ弱点攻撃まで、ここ何年もずっと発生し続けているというのだ。

Mike Schroepfer、Firefox 2を語る — 写真をクリックするとビデオ再生

これらの問題を最小限に抑えるポイントが2つある。第1に、Mozillaプロジェクトは「世界中に何百、何千もの人」を擁し、彼らの調査でコードの潜在的な問題が発見される。また、Coverityの分析ツールなどが以前から使われており、それらのツールでFirefoxコードを分析して潜在的な脆弱性やコーディングエラーが発見されてきたというのである。

第2は、Firefoxの「ネイティブ」なコードを可能な限りJavaScriptへ移行することだ。Firefoxの大部分のコードをJavaScriptで書けば、「コーディングエラーの類は基本的には完全になくなる」とSchroepferは言う。

大部分のコードをJavaScriptで書いた場合、Firefoxのパフォーマンスは低下しないか? ユーザーインタフェースの大部分は既にJavaScriptで書かれているとSchroepferは言う。「どのみちコードの98パーセントはパフォーマンスと関係ない部分で動く」

JavaScript 2.0への移行

JavaScriptが結局おもちゃの言語に過ぎなかった当時は、Webページの見栄えが多少派手になればよく、それ以外のことはどうでもよかったのではないか? そんな時代は遙か昔のことで、Schroepferによれば、この言語は将来もっとずっと堅牢になるという。

Firefox 2.0にはJavaScript 1.7が組み込まれることになっている。JavaScriptとしては約6年ぶりのメジャーアップデートだという。

JavaScript 2.0も開発中だ。Schroepferによれば、「現在、標準化団体で検討されている」という。具体的には、Ecma InternationalがECMAScriptという名前で標準化を進めている(ECMAScriptではまるでニキビ薬のようなので、Mozillaプロジェクトがオリジナルの名前から離れられないのも無理はない)。

標準化作業が完了すると、JavaScript 2.0がメジャーアップグレードとなり、クラスベースの継承、静的な型チェック、ループイテレータの構文が盛り込まれる。Schroepferによれば、設計の見直しで「実行時よりもむしろコンパイル時のエラー捕捉が容易になる」ともいう。JavaScript 1.7の位置づけは、「JavaScriptアプリケーションの作成を容易にする糖衣構文」を備えたJavaScript 2.0の「小型版」となるようだ。

JavaScript/ECMAScriptのメジャーアップグレード間隔が長いのは言語として多少安定してきた結果とも言える。JavaScriptを用いたサイトがInternet ExplorerまたはMozilla/Netscapeでまともに動くかどうかは、ブラウザをサポートする開発者の意向次第といった時代があったことを忘れることはできない。Firefoxの開発者が参入した現在、他のブラウザはどうしているのか?

Schroepferによれば、その仕様は「多数参加」であり、標準化作業が完了した暁には、大半のブラウザベンダがその標準を実装するものと「十分期待している」という。最近、Microsoftは業界標準の良き支援者になろうと努力しており、この標準を彼らが採用することは「大いなる希望」とも述べている。しかし、Microsoftの具体的な確約は得ていないことを彼は認めている。

Firefoxのスケジュール

まだリリーススケジュールは確定していないが、Firefox 2.0が「今年終わりまでに出荷されることは間違いない」という。beta 2は秋頃に出る。

これと並行して3.0 の開発も進められており、2007年のどこかで登場するはずだ。3.0の機能セットはまだ漠然としているが、アーキテクチャの変更によりグラフィックサブシステムがアップグレードされるという。また、2.0シリーズで出場枠外とされた改良版のブックマークシステムが盛り込まれるようである。

NewsForge.com 原文