--- title: GRE slug: GRE tags: - Gecko - XUL - XULRunner translation_of: Archive/Mozilla/GRE ---

Mozilla の技術を組み込むためのフレームワークは、かって GRE (Gecko Runtime Environment) と呼ばれました。この埋め込み(embedding)フレームワークによって、アプリケーションは互換性のある Gecko ランタイムの場所を突きとめ、そのインストール場所を事前に知らなくても、それを埋め込むことが可能になります。この文書は、埋め込みを意図する者が、動的に GRE にリンクする方法を解説します。GREの登録方法については、GRE Registration を参照してください。

"XUL Runtime Environment" を表す XRE プロジェクトは、XULRunnerに変わりました。

Mozilla Suite: 旧 GRE

GRE には 2 つの異なる形態があります。: "旧" GRE は Mozilla application suite の一部です。 Mozilla 1.4 から 1.7.x の Windows インストーラでは、これがインストールされていました。Linux 向けには、公式に公開された GRE はありませんが、Red Hat などのさまざまな業者が、インストールされた Mozilla を GRE として登録していました。Mac 上の Mozilla suite は GRE をサポートしていません。

XULRunner: 新 GRE

XULRunner は GRE の新しいバージョンであり、埋め込みができるだけでなく、Firefox などの完全な XUL アプリケーションを起動することができます。 XULRunner は 3 つの主要なプラットホームのすべて (Windows および Mac, Linux)で埋め込みをサポート、またはサポートが計画されています。

アプリケーションのソースコードから GRE を探る

xpcom.dll への直接リンクを避ける

アプリケーションが GRE を使おうとする場合、確実に正式のライブラリに対してリンクするための入念な手順をとならければいけません。直接 <tt>xpcom.dll/libxpcom.so</tt> (<tt>xpcom.lib</tt> import lib) にリンクした場合、アプリケーションは、その PATH に xpcom.dll がないと起動しません。これはランタイムが実行時にダイナミックに互換性のある GRE を検索するのを阻害します。

互換 GRE の検索

互換 GRE を検索するには、(xpcom/glue/standalone/nsXPCOMGlue.h で宣言されている) GRE_GetGREPathWithProperties() 関数を使うべきです。これは embedder が適した GRE のバージョンの指定、そして GRE が持たなければならない特別な機能 (現在特別な機能は定義されていない) の指定を可能にします。

The solution is to statically link against <tt>xpcomglue.lib</tt>, also known as the "standalone glue" (see XPCOM Glue). This library provides a layer of indirection between embedding code and XPCOM. To use the XPCOM glue, you must follow these steps:

Dependent libraries and environment variables

The XULRunner GRE is designed so that the embedder does not need to set any environment variables such as PATH or LD_LIBRARY_PATH before calling XPCOMGlueStartup(), because it dynamically loads the correct dependent libraries. Unfortunately, the Mozilla suite-based GRE is not as forgiving, especially on Linux. Embedders will need to set the LD_LIBRARY_PATH environment variable and start a new process in order to embed a suite-based GRE correctly.