--- title: Gecko FAQ slug: Gecko_FAQ tags: - Gecko - NeedsMigrationReview translation_of: Gecko/FAQ ---
Gecko とは、オープンソースのブラウザエンジンで、HTML 4、CSS 1/2、W3C DOM、XML、JavaScript といったオープンなインターネット標準をサポートするように設計されています。
Gecko は、Mozilla Firefox、SeaMonkey、Camino など、様々なブラウザで利用されており、mozilla.org で継続して開発されています。Gecko はかつては Raptor や NGLayout というコードネームで知られてきました。しかし、商標の問題から新しい名前へと変更されました。
より詳しくは {{ interwiki('wikipedia', 'Gecko_(layout_engine)', 'Wikipedia の Gecko に関する記事') }} をご覧ください。
基本的には {{ interwiki('wikipedia', 'Layout_engine', 'レイアウトエンジン') }} は、内容 (HTML、XML、画像ファイル、アプレットなど) や整形のための情報 (CSS、ハードコードされた HTML タグなど) を取り込み、中身を整形してスクリーンに表示します。レイアウトエンジンは、ブラウザウィンドウの chrome の内部にある空白領域を描画します。
形式的には、レイアウトエンジンはドキュメントの配置手段を定義し、ページに内容を配置します。Gecko のコアはとても速いレイアウトエンジンです。Gecko はまた、様々なドキュメント形式 (HTML、XML、SVG など) を解析する能力、合成や変換を含む進歩したレンダリング能力、そして埋め込まれた JavaScript と プラグイン のサポートを提供します。
Gecko はとても速く、強力であるため、ブラウザのインターフェース (chrome) を作るためにも使われています。言い換えると、Gecko はドキュメントの内容を表示するだけでなく、スクロールバー、ツールバー、そしてメニューも同様に描画します。詳しくは XUL をご覧ください。
Gecko は、スクリーン上にコンテントを表示するために必要な土台を提供します。このような土台には、レイアウトエンジンやブラウザコンポーネントの補足物が含まれます。しかし、Gecko は、Firefox のような首尾一貫した、ユーザーフレンドリーなアプリケーション (メニュー、ツールバーなどを含む) の様に、こうした全てのコンポーネントがパッケージ化されているわけではありません。
mozilla.org は、Firefox、Thunderbird、SeaMonkey、Camino など、独自開発のアプリケーションに必要な構成要素を組み上げます。そしてその成果は mozilla.org から自由にダウンロードできます。Netscape は Netscape Navigator として名付けられた独自のバージョンをリリースしていました。他の会社は、Gecko を組み込んだ独自のソフトウェアやハードウェア製品をリリースしています。XULRunner を通じて Gecko を使っているアプリケーションの一部を XULRunner Hall of Fame でご覧いただけます。
ISV やハードウェアベンダーのようなサードパーティは、彼らのアプリケーション、またはハードウェアデバイスにおいて使いたいコンポーネントを選択します。あるブラウザの構成要素、例えばブックマーク、履歴、アドレス帳のようなものは、Gecko の一部としては提供されません。しかし、これら全ての構成要素のためのソースは mozilla.org から自由にダウンロードできます。
もとの Mozilla ブラウザ、それは Navigator 1.0 として最初にリリースされましたが、それは次のキラーアプリケーションを作るという情熱を持った小さなチームによってまたたく間に開発されました。そして彼らは非常に成功しました。現在 Web は進化していて、Netscape は将来の製品を作るための次世代レイアウトエンジンを再設計、再開発するためのすばらしいチームを集めています。Gecko は、ダイナミックな新しい時代のコンテントを可能にしてくれます。そのコンテントは、より高度なインタラクティブ性を備え、Web 開発者は以前に比べてプレゼンテーション制御を簡単に行えるようになります。そして、独占の API でなくてオープンで勧告されたインターネット標準を使います。是非、チームに参加 してください。
mozilla.org は Gecko レイアウトエンジンと他のブラウザコンポーネントから Mozilla ブラウザアプリケーションを組み立てています。
Gecko は Netscape 6 ブラウザスイートの中心部分に置かれ、Navigator や Messenger といったあらゆるコンポーネントを動かします。Gecko テクノロジーはまた、Netscape.com ポータルサイトを表示し、素早く魅力的なコンテンツやサービスをもお届けします。Gecko の構造は、より短時間で市場に出され、さらなる革新、より低コストでの開発、より簡単な配布やアップデート、そしてより良いクロスプラットフォームサポートを可能にすることで、将来にわたって Netscape を支えることでしょう。
Gecko は小さく、軽く、そしてオープンソースであるため、他の会社や団体も簡単に再利用できます。多くのハードウェアベンダーはネットワークへのアクセス機能を持つ装置を作っていて、ウェブブラウジングの機能を含めたいと考えています。同様に、多くのソフトウェア開発者はアプリケーションにウェブブラウシングの機能を取り入れたいと考えていますが、独自にブラウザを開発したいとまでは考えていません。こうした開発者は、Gecko が提供する中から、欲しいブラウザコンポーネントを選択することができ、そうしたコンポーネントを独自の製品と共にパッケージ化することができるのです。
2000 年の終わりまでに、Gecko は次に挙げるオープンインターネット標準の勧告を完全にサポートすることが見込まれています。ただし、以下に注としてあげる分野や現在 Bugzilla でオープンバグとして報告されているバグを除きます。
決してバグがないということではありません。Robert O'Callahan が {{ Bug(25707) }} で述べているように、「完全に HTML4/CSS1 に適合しているからといって、‘100% バグがない’わけではない。もしバグを完全になくそうとしたら、誰も完全に適合したブラウザなど生み出せないだろう。」
Web ページは恣意的なまでに長く複雑で、深くネストされたマークアップになる可能性もあるため、あるブラウザでは仕様が勧告しているようには表示できない Web ページを構築することは可能なのです。QA テストやテストケース開発が続けられる限り、どの時点を取ってみてもオープンソース Gecko コードベースには既知の問題が存在し、それはこれまでにも世に送り出されてきた商業製品にも当てはまりますし、これから送り出される Gecko ベースの製品にもリリースの時点での既知の問題は付きまとうでしょう。(同じ考え方は、もちろん、他のどのブラウザエンジン開発プロジェクトや、それを基礎にした製品にも当てはまります)
オープンソース Gecko コードベースでの既知のバグは、Bugzilla に報告されています。ここに、上で述べた標準に関連するバグの一覧へのリンクを載せておきます。現在進行中のバグのリストには、重複していたり、時代遅れだったり、再現性のないもの、妥当でないもの、そして正しく報告されていないものがどうしても含まれてしまうことに注意してください。
Gecko ベースの特定の商業製品にある既知のバグについての情報は、その製品のリリースノートを参照してください。
Gecko は、XML 文書をフォーマットするために CSS と XSLT の使用をサポートします。
XML 文書が CSS と XSLT いずれとも関連付けられていない場合、Gecko は独自のスタイルを適用してその文書を表示します。
コンテンツ製作者は、異なる、互換性のない、専用の DOM を様々なベンダーのブラウザでサポートするために全ての Web ページを何度も開発、テストすることに疲れ、うんざりしています。彼らは、以下のことを可能にするために、全てのベンダーが上記の W3C DOM と他の標準をきちんとサポートすることを要求していました。
これらの標準を協力にサポートすることで、Gecko は、世界中の Web コンテントや Web アプリケーション開発者のためのプラットフォームとなることができるのです。
Gecko は、XPCOM (プラットホームを横切って働く COM のサブセット) のおかげで、全てのプラットホームで再使用できます。COM (Digital によって開発されて、Microsoft によって後で採用される) は、Windows プラットホームの上のモジュール式のインタフェースのためのデファクトスタンダードです。
さらに、Windows プラットホーム上では、Gecko の XPCOM インタフェースが VB 開発者が利用することができる ActiveX コントロールでラップされています (ActiveX が Windows 専用の技術であるので、ActiveX ラッパーは、他のプラットホームで利用可能ではありません)。
JavaBean wrapper は現在開発中ではありません、しかし、将来そのような開発を排除する Gecko のアーキテクチャは何もありません。これらのインターフェースのソースコードとドキュメントは mozilla.org で入手できます。
組み込み API に関する今後の計画については、{{ interwiki('wikimo', 'Mozilla_2:Embedding_APIs', 'wikimo:Mozilla 2:Embedding APIs') }} をご覧ください。
Gecko の XPCOM インタフェースは Microsoft のものとは違います。両モデルの最も重要な違いは、インタフェースにおける Document Object Model (DOM) の反映に影響しています。
Microsoft の Trident インタフェースは独占の API で DOM を反映しますが、Gecko は W3C によって勧告された標準に従って DOM を公開します。他にも非互換性が存在します。Adam Lock は現在、部分的な互換性層 (compatibility layer) を開発しています。これにより、開発者はより簡単に Microsoft のエンジンから NGLayout エンジンに移行することができるようになるかもしれません。
Gecko は現在、Win32 (Windows 95、Windows 98、Windows NT 4、Windows 2000、Windows XP)、Mac、そして Linux で動作します。インターネットから mozilla.org に参加している OEM や貢献者らは、Gecko を他のプラットフォームに移植しようとしています。そのような移植作業には、Solaris、HP/UX、AIX、Irix、OS/2、OpenVMS、BeOS、そして Amiga その他があります。
Gecko は以下のコンポーネントを含んでいます: