Gecko
目次
歴史
当初、Mozillaは1998年に公開されたNetscape 5.0へ向けて開発中だったソースコードを元に開発されていたが[1]、軽量化のために当時買収したDigital Style社のエンジンをベースにして新規に書かれた。これがGeckoである。パース部分はW3Cによる勧告に合致することを目標に作成されている。 1.8系列以前ではWeb Standards ProjectがCSS 2.1のテストとして用意したAcid2に合格していなかったが、1.9系列からは合格している。
バージョン履歴
- 0.6
- Netscape 6に搭載される。
- 1.8
- CSSなどのエラー検出機能を実装。canvas要素のサポート。
- 1.8.1
- Firefox / Thunderbird 2.0、SeaMonkey 1.1、Netscape Navigator 9、Camino 1.5および1.6に搭載。
- 1.9
- Firefox 3.0、Camino 2.0に搭載。Sunbird 0.3にアルファ版を搭載。
- Acid2に合格。WSDLおよびSOAPのネイティブサポートを削除。
- 1.9.1
- Firefox 3.5、Thunderbird 3.0、SeaMonkey 2.0に搭載。
- CSS 3の一部プロパティやHTML 5の一部要素をサポート。
- 5.0
- 高速リリースサイクルを採用し、6週間ごとにバージョンアップされるようになった。バージョンの数字はFirefox、Thunderbirdと統一されている。
Geckoを使用するソフトウェア
ウェブブラウザ
- Bagel
- Camino - 旧Chimera。Mac OS X専用のGeckoブラウザ。
- Epiphany (GNOME、2.28.0よりWebKitに移行)
- Galeon (GNOME)
- Lunascape (2以降。IEコンポーネント、WebKitの利用も可能)
- Mozilla Firefox [2] およびそのソースコードを使用したブラウザ (Flock, K-Meleon, Pale Moon など)
- SeaMonkey [2] - Mozilla Application Suite の後継ソフトウェア。
- Sylera[3]
- 風博士
- Sleipnir 2 (プラグインによる拡張。2010年8月現在、当該プラグインは開発停止している)
その他のソフトウェア
ウェブブラウザ以外でも、HTMLやCSSなどを表示に用いるソフトウェアでGeckoが採用されている。
- Mozilla Thunderbird(メールクライアント、旧Minotaur)
- Correo(メールクライアント)
- Mozilla Sunbird(カレンダー)
- Nvu(Web オーサリングツール)
- KompoZer(Web オーサリングツール)
- Songbird(メディアプレーヤー)
- Wine (オープンソースのWindows API実装、Internet Explorerの実装に利用)
技術
XUL
XULはアプリケーションのGUIをXMLで記述した形式である。イベントハンドラを用いてJavaScriptを呼び出すことで、HTMLとJavaScriptを組み合わせたWebアプリケーションと同じ感覚でネイティブのGUIに近いアプリケーションを製作することができる。XULはアプリケーションとしてローカルから読み出されるほか、Web上のファイルであっても表示できる。(ただしファイルの読み書きなどの特権は利用できない。)
構成
HTML・CSSのレンダリングや通信部分、ファイルの読み書きなどのAPIはC++で記述されており、それぞれコンポーネント化されている。これらのAPIは他のC++コードから(必要なものだけを)呼び出せるほか、XULアプリケーションなどからJavaScriptなどスクリプト言語を通じて呼び出すことができる(XPCOM)。 FirefoxなどではXULアプリケーションから実際に呼び出しているほか、XPCOM 対応でビルドされた JavaScript シェルから利用することもできる。
描画
XUL, CSSでスタイルづけされたHTML, MathML, SVGを表示することができる。 HTMLの描画は(複雑な)ペインターアルゴリズムが採用されている。HTMLがCSSの「ボックス」群に変換しレイアウトを決定すると、描画順序を決めたリストを構成し、リストができると実際に描画される。 描画バックエンドにはcairoが使われている。半透明、曲線描画などにその技術が使われている。
スクリプトエンジン
テンプレート:Main スクリプト処理部分はSpiderMonkeyと呼ばれる。ECMAScript 3 に準拠する。Firefoxに組み込まれた状態では、特権管理により、WebページのJavaScriptを実行できるだけでなく、ブラウザ本体や拡張機能をJavaScriptで記述することができる。アプリケーション側からもWebページのJavaScriptオブジェクトに(間接的に)アクセス可能である。2007年ごろからWebアプリケーションの普及によりJavaScriptの性能が話題になり始めたが、Gecko 1.9.1 (2008)以降、JIT方式のJavaScriptコンパイラ/インタプリタが搭載され、性能が向上した(TraceMonkey)。Gecko 2.0 (aka 1.93a) / Firefox 4 (2010) では低速だがコンパイルの早いJITコンパイラ(JägerMonkey)とTraceMonkeyを組み合わせて使う方式になった。Gecko 9 / Firefox 9 (2011) では型推論が導入され、リリース製品に組み込まれた。
ユーザーエージェント情報
このエンジンを使用したユーザエージェントの多くはユーザエージェント名で使用環境などを確認できる。
この例では、Windowsは対象のプラットフォームがMicrosoft Windowsであること、Uは強いセキュリティレベルであること、Windows NT 5.1は使用しているシステムが Windows NT 5.1であること、jaは利用している言語の設定が日本語であること、rv:1.8.1.1はGeckoのリビジョンが1.8.1.1であること、Gecko/20061204はビルドされた日付が2006年12月4日であること[4]、Firefox/2.0.0.1は以上のようなGeckoを搭載したFirefox 2.0.0.1であることを表している。
Mozilla ActiveX Control
Microsoft Windows上で動作する プラグイン。Mozilla ActiveX Projectにより開発されている。ActiveX をGeckoのブラウザ上から管理したり、Geckoのレンダリングエンジン部分をコンポーネントとしてWindowsアプリケーションに組み込む目的で開発された。
ActiveXの管理機能は安全性の確認されたインストール済みのActiveXをブラウザから管理するためのもので、ブラウザからActiveXを実行したりインストールしたりするためのものではない。[5]
ブラウザエンジンとしては、XUL上のアプリケーションではなく、Windowsネイティブのアプリケーションとして組み込むことによってより軽量に使用することを可能にした。mozctl.dll をソフトウェアに接続することでコンポーネントとしての Gecko エンジンが利用できる。 Webブラウザに使われる場合が多いが、Webページの表示確認など、補助的な機能として用いられた例もある。
Mozilla ActiveX ControlのHTMLレンダリングエンジンとしての機能はXULネイティブなプログラムと同一であり、設定項目なども共通である。ただし、標準ダイアログボックスなどの表示はXULネイティブのものと異なる。
Geckoを利用するソフトウェア
Geckoのバージョン | クロスプラットフォーム | Windowsのみ | Mac only | Unix系のみ | UNIX系 モバイル | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Firefox | Netscape [u 1] | Mozilla [u 1] | SeaMonkey | Thunderbird | Flock | Songbird/Nightingale | Beonex | Lunascape [u 2][u 3] | K-Meleon | Pale Moon | Camino [u 1] | Galeon | Epiphany [u 4][u 2] | テンプレート:Nowrap [u 2] | MicroB | |
0.6 | 6.0 | 0.6 | 0.6[6] | |||||||||||||
0.8 | 0.8 | 0.3 | ||||||||||||||
0.9.2 | 6.1 | 0.9.2 | ||||||||||||||
0.9.4 | 6.2 | 0.9.4 | 0.5 | |||||||||||||
0.9.4.1 | 6.2.2 | 0.9.4.1 | 0.7[6] | |||||||||||||
0.9.5 | 0.9.5 | 0.6 | ||||||||||||||
0.9.7 | 0.9.7 | 1.0.2 | ||||||||||||||
1.0.1 | 7.0 | 1.0.1 | 0.8.1[7] | |||||||||||||
1.0.2 | 1.0.2 | 0.8.2[8] | ||||||||||||||
1.1 | 1.1 | 0.9pre[6] | ||||||||||||||
1.2b | 0.1 - 0.3 | 1.2b | 0.7 | |||||||||||||
1.3a | 0.4 - 0.5 | 1.3a | ||||||||||||||
1.4 | 7.1 | 1.4 | ||||||||||||||
1.4.1 | 1.4.1 | 1.0.4 | ||||||||||||||
1.5 | 0.6 - 0.7.1 | 1.5 | 0.1 - 0.3 | 0.8 | ||||||||||||
1.6 | 0.8 | 1.6 | 0.4 - 0.5 | |||||||||||||
1.7 | 0.9 - 1.0 | 1.7 | 0.6 - 1.0 | 2.0 | 0.2.8 | |||||||||||
1.7.2 | 7.2 | 1.7.2 | ||||||||||||||
1.7.5 | 8.0.2[u 3] | 1.7.5 | 0.9 | |||||||||||||
1.8.0 | 1.5 | 1.0 | 1.1 - 1.5 | 0.7 | 0.2 | 1.0 | 1.0 | |||||||||
1.8.1 | 2.0 | 9.0 | 1.1 | 2.0 | 1.0 | 4.8 | 1.1, 1.5 | 1.5 - 1.6 | 2.16 | |||||||
1.9.0 | 3.0 | 3.0a1 - a2 | 2.0 - 2.6 | 0.5 - 1.4 | 2.2 | 2.0 | 2.22 | |||||||||
1.9.1 | 3.5 | 2.0 | 3.0a3 - 3.0 | 5.0 | 1.6 | 3.5 | ||||||||||
1.9.2 | 3.6 | 3.1 | 1.9.3 | 6.3 | 1.7 | 3.6[u 5] | 2.1 | 1.7.4.8 [u 6] | ||||||||
2.0[u 7] | 4.0 | 2.1 | (3.3a) | 4.0 | ||||||||||||
5.0[u 8] | 5.0 | 2.2 | 5.0 | 5.0 | ||||||||||||
6.0[u 8] | 6.0 | 2.3 | 6.0 | 6.0 | ||||||||||||
7.0[u 8] | 7.0 | 2.4 | 7.0 | 7.0 | ||||||||||||
8.0[u 8] | 8.0 | 2.5 | 8.0 | 8.0 | ||||||||||||
9.0[u 8] | 9.0 | 2.6 | 9.0 | 9.0.1 | ||||||||||||
10.0[u 8] | 10.0, テンプレート:Nowrap | 2.7 | 10.0, テンプレート:Nowrap | 9.1, 9.2 | ||||||||||||
11.0[u 8] | 11.0 | 2.8 | 11.0 | 11.0 | ||||||||||||
12.0[u 8] | 12.0 | 2.9 | 12.0 | 12.0 - 12.3 | ||||||||||||
13.0[u 8] | 13.0 | 2.10 | 13.0 | |||||||||||||
14.0[u 8] | 14.0 | 2.11 | 14.0 | |||||||||||||
15.0[u 8] | 15.0 | 2.12 | 15.0 | 15.0 - 15.4.1 | ||||||||||||
16.0[u 8] | 16.0 | 2.13 | 16.0 | |||||||||||||
17.0[u 8] | 17.0, テンプレート:Nowrap | 2.14 | 17.0.x | |||||||||||||
18.0[u 8] | 18.0 | 2.15 | (18.0b) | |||||||||||||
19.0[u 8] | 19.0 | 2.16 | (19.0b) | 19.0 | ||||||||||||
20.0[u 8] | 20.0 | 2.17 | (20.0b) | 20.0.1 - 20.3 | ||||||||||||
21.0[u 8] | 21.0 | (2.18) | (21.0b) | |||||||||||||
22.0[u 8] | 22.0 | 2.19 | (22.0b) | |||||||||||||
23.0[u 8] | 23.0 | 2.20 | (23.0b) | |||||||||||||
24.0[u 8] | 24.0, テンプレート:Nowrap | 2.21 | 24.x | 24.x | ||||||||||||
25.0[u 8] | 25.0 | 2.22 | (25.0b) | |||||||||||||
26.0[u 8] | 26.0 | 2.23 | (26.0b) | |||||||||||||
27.0[u 8] | 27.0 | 2.24 | (27.0b) | |||||||||||||
28.0[u 8] | 28.0 | 2.25 | (28.0b) | |||||||||||||
29.0[u 8] | 29.0 | 2.26 | (29.0b) | |||||||||||||
30.0[u 8] | 30.0 | (2.27) | (30.0b) | |||||||||||||
31.0[u 8] | 31.0, テンプレート:Nowrap | (2.28) | 31.x | |||||||||||||
Geckoのバージョン | Firefox | Netscape [u 1] | Mozilla [u 1] | SeaMonkey | Thunderbird | Flock | Songbird/Nightingale | Beonex | Lunascape [u 2][u 3] | K-Meleon | Pale Moon | Camino [u 1] | Galeon | Epiphany [u 4][u 2] | テンプレート:Nowrap [u 2] | MicroB |
クロスプラットフォーム | Windowsのみ | Macのみ | UNIX系のみ | UNIX系 モバイル |
脚注
テンプレート:脚注ヘルプ テンプレート:Reflistテンプレート:Reflist
関連項目
- Mozilla Foundation - 開発元団体
- Mozilla Japan - 日本国内でMozilla製品のサポートを行う団体。
- HTMLレンダリングエンジン
- XULRunner
- Necko
外部リンク
テンプレート:Mozilla プロジェクト テンプレート:Netscape プロジェクト テンプレート:ウェブブラウザ
テンプレート:FOSS- ↑ Communicator 5.0はどうしたのですか?
- ↑ 2.0 2.1 拡張機能のIE TabでIEコンポーネントの利用も可能。
- ↑ バージョン2.1.0からIEコンポーネントも使用可能。
- ↑ ただし Firefox 4.0 Beta 5以降のリリース版ではビルドした日付ではなく、Gecko/20100101固定となった。詳しくはBug 591537 - Freeze UA build id for Firefox branded builds参照。
- ↑ http://www.mozilla-japan.org/start/1.5/faq/browser.html#active-x
- ↑ 6.0 6.1 6.2 テンプレート:Cite web
- ↑ テンプレート:Cite web
- ↑ テンプレート:Cite web
引用エラー: 「u」という名前のグループの <ref>
タグがありますが、対応する <references group="u"/>
タグが見つからない、または閉じる </ref>
タグがありません