Fizzilla(しゃれを理解できない人向けには、Mac OS X 用 Mozilla)

トップニュース項目

9/23/02
CHBrowserView が戻ってきました。ビルドでき、走り、Web ページをロードできます。

Quick Links:

  • FizzillaCFM --完全 Carbon、 mac バックエンド、 CFM ベース。
  • FizzillaMach -- mac Carbon フロントエンド、 unix バックエンド、Mach-o ベース。
  • Camino -- CHBrowserView を通して Gecko を組み込む Cocoa ネイティブな Web ブラウザ
  • CHBrowserView -- Gecko を包み込む、組み込み可能な Cocoa view
  • Debugging FizzillaMach -- ProjectBuilder を利用してデバッグする

その他のヒント:

最新のビルド:


Fizzilla って何?

ご存知の方もいるかもしれませんが (多分多くの人は知らないと思うけれど)、Apple 社は現在、伝統的な Macintosh の外見と操作性を残しつつ Mach3 と BSD をベースにした新たな OS、Mac OS X日本語版)を発表しました。開発者が既存の Mac OS 用のアプリケーションを Mac OS X 用に迅速にポート化できるように、Apple 社は Carbon と呼ばれる移植用レイヤーを作りました。 Carbon は、9000 に上る Mac OS API に対応し、贅肉をそぎ落とし、いくつか機能を付け加え、残りの 6000 の API を Mac OS X で利用できるようにしています。開発者がしなければならないのは、Mac OS X のメモリ保護やプリエンプティブマルチタスク機能を最大限に生かせるよう、Carbon API 向けに既存の Mac OS 用コードをちょこっといじるだけなのです。

歴史

1999 年 5 月頃 (Mozilla マイルストーン 5、または M5 当時) Mozilla に改良を加え、一つで Mac OS 8.5 と Mac OS X の両方で利用できるようなバイナリを開発しました。その結果生まれたアプリケーションは 「Fizzilla」 のコードネームを与えられ、1999 年に開催された Apple 社の WWDC の Mac OS X のデモセッションでデビューしました。そしてみんなに気に入ってもらえたのです。

1999 年 5 月から 12 月にかけて、Apple 社は Mac OS X で、Fizzilla をテストアプリケーションとして非常に多くのプロファイリング作業を行いました。その過程でわかった問題点が契機となって、私たちは新しい方向に向かって進み始めました。これにより、私たちの Mac OS 向け製品が伝統的に抱えてきた問題の多くを解決することができる、と私たちは信じています。

Apple 社は、アプリケーション全体を Carbon のみに対応させるのではなく、ハイブリッド構造にしてはどうかと提案をしてくれました。フロントエンドと描画処理には以前と同様の Mac OS 8/9 用製品向け Carbon API を利用します。一方バックエンドには、Mac OS X が実は UNIX 系の BSD であるということに着目し、スレッドやネットワークのコントロールには我々が持っている UNIX 用コードベースを利用することにしたのです。この変更のため、全ての Mac OS で動く単一の「超肥満」バイナリはなくなりましたが、今までのものよりはるかに早いプログラムが登場することになったのです。さらに、最終的なアプリケーションが (CFM ではなく) Mach-o ベースのため、Quartz と同様に BSD にあるスレッド・ライブラリを利用することができるようになります。これらは Carbon API を通しては利用できないものなのです。

私たちは Carbon 用コードに加え UNIX 用コードも構築しているため、ビルドシステムをも変更しなければなりません。Mac OS X 上では、ちょうど私たちの Linux 用クライアントのように、 gmake が必要です。これは IDE を諦めなければならないという痛みを伴う一方、UNIX 向けビルドシステムを最大限に利用することで、Fizzilla が見捨てられて開発に向けた努力が止まってしまう、という可能性を減らすことができます。

2000 年 4 月頃(M12 当時)、Pavlov はこの新しいアプローチのもとで HTML を走らせ、表示するのに必要な作業をほぼ終えました。ここで問題となったのは、プロセスがあまりに以前と違いすぎていたこと、そして当時の OS X における gcc の状態が原因で、ビルドが非常に難しかったということでした。コード改良への努力は止まり、プロジェクトは頓挫してしまいました。

数ヵ月後、Patrick Beard は、打ち捨てられていたプロジェクトを拾い上げ、多くの人が利用している M17 から取り出しました。このビルドが CFM で、最初のアイデアと同じく Carbon に完全依存したものでした。2001年 8月、 Netscape 社は mozilla0.9.2 ブランチを取り入れ、 Mac OS X 向けNetscape 6.1 プレビュー として CFM ビルドを発表しました。そして Netscape 6.2 (mozilla 0.9.4 branch)として本物の公開製品となりました。


今はどの時点にいるの?

現在、Fizzilla に関して多くの選択肢があります。

  • FizzillaCFM -- 完全 Carbon 版、 Mac バックエンド、 CFM ベース。
  • FizzillaMach -- Mac Carbon フロントエンド、UNIX バックエンド、 Mach-o ベース。
  • Cocoazilla -- Cocoa のフレームワークの中にある Gecko を使用。
  • Chim Chim -- Cocoazilla を通じて Gecko を組み込んだ Cocoa ネイティブな UI。

それぞれにビルドインストラクションが付いており、欠点や弱点も別々に書かれています。オープンソースの素晴らしいところは、どちらのビルドにも必要な注意をもきちんと払ってもらえるというところにあります。

しかし現在問題となっているのは、「一体 Netscape 社は、Netscape 6.2 以降で何をしようとしているのか?」 ということです。将来のために FizzillaMach のアイデアを暖めていても、必要な手段を手に入れていません。開発の為に既存の OS 9 用ビルドシステムやツールを梃子として使えるのはとても素晴らしいことではありますが、十分な時間というものが今の我々にはありません。また現在の Netscape 社の第一目標は、OS 9 向けに Netscape 6 を出荷することであり、私たちがその計画を台無しにしてしまう権利などない、ということを覚えておかなければなりません。そのため、今後大きな発展が考えられるのは FizzillaCFM において、ということになりそうです。

だからといって FizzllaMach 版をやめてしまうというわけではありません。今は FizzillaMach 版が輝くときではない、ということです。私たちは予備的なテストを行い、 Mach-o ビルドは対応する CFM ビルドよりも 10-15% 速くなりました。これは期待できるニュースです!

また Cocoa に関する報告もあります。Mac OS X 10.1 の登場で、objective-c++ コンパイラーが利用できるようになり、既存の mach-o ビルドが補完できるようになりました。私は今でも、objective-c では誰も書かないだろうと思っていますが、obj-C++ で書くというのはたいして悪い考えではないでしょう。その結果、最近私は obj-c++ を使って Carbon ではなく Cocoa に向けてウィジェットを書き換えるということを始めました。現時点では、Web ページを閲覧するくらいには動いてくれています。

この Cocoa での開発努力は ProjectBuilder や InterfaceBuilder を使って組み込むことができるような何かを提供することをゴールにしています。NSBrowserView を提供することによって、アプリケーション開発者は mozilla を直接他のアプリケーションに組み込んだり、選択次第では、ネイティブな UI ラッパーを書いて独自のブラウザを開発することも可能となります。これこそが、現在私たちが Chim Chim プロジェクトで行っていることです。


Special Thanks

支援の手を差し伸べてくれた Apple 社の次の方々にお礼申し上げます。Eoin Norris 氏、 Dave Evans 氏、 Curt Rothert 氏、 John Signa 氏、 Christine O'Sullivan 氏、そして John Chang 氏、Skip Levins 氏、そして Gramps。もちろん Mac Mozilla コミュニティーの皆さんにも多大なる感謝を致します。


作成: Mike Pinkerton (pinkerton@netscape.com)