アプリケーション components フォルダのテスト

| コメント(2) | トラックバック(0)

GRE ではコンポーネントフォルダをスキャンして XPCOM コンポーネントを登録していくのだが、このときスキャンするフォルダは一つではなく、次のような複数の場所をスキャンする。

  • NS_GRE_COMPONENT_DIR (GRE 直下の components フォルダ)
  • NS_XPCOM_COMPONENT_DIR (実行ファイルのある場所の components フォルダ)
  • NS_XPCOM_COMPONENT_DIR_LIST

このことから、 GRE を使ったアプリケーションを配布する際には、 GRE で不足しているコンポーネントのみを一緒に配布すればいいことになる。 そこで、実際に最小限のコンポーネントを構成する実験を行った。

まず、 nsIXMLRpcClient を利用した XML-RPC の簡易クライアントを作成した。 次に、 Mozilla 1.8β1 の components 以下から持ってきた3つのファイルの有無により、クライアントが実行できるかどうかを確かめた。

  • nsXmlRpcClient.js
  • nsDictionary.js
  • xml-rpc.xpt

まず、最低限起動時エラーを出さないためには、 nsXmlRpcClient.js と xml-rpc.xpt は必須である。 nsXmlRpcClient.js は nsIXMLRpcClient の実装を記述しているため、必要不可欠である。 また、 xml-rpc.xpt は nsIXMLRpcClient その他の UUID 情報を持っているため、これがないと nsXmlRpcClient.js の初期化処理が正常に行われない。 最後に、 nsDictionary.js だが、これがない場合、ほとんどの XML-RPC の結果を処理することができない。 nsDictionary.js は XML-RPC の結果で構造体を扱うためのものだが、単一の値を返す XML-RPC はほとんどないため、事実上必須といえる。

以上のことから、アプリケーションの components フォルダに必要なファイルは次のものだとわかる。

  • アプリケーションから利用されるコンポーネントを実装した DLL または JavaScript
  • JavaScript から利用されるコンポーネントを含む xpt

今回は DLL については特に検証しなかったがおそらく条件は JavaScript のものと変わらないだろう。 xpt ファイルに関しては JavaScript で使用さえしなければ必要ないはずだ。 逆に、 JavaScript であれば components フォルダの外、たとえばユーザースクリプトなどで使う場合であっても必要だろう。

トラックバック(0)

トラックバックURL: http://nesitive.net/mt/tbping/14

コメント(2)

Hi,

Wich Delphi Version the Gecko SDK was designed for ?

Regards,

Vitor

I designed this SDK for Delphi 6 Pro(J), and it can be compiled in Delphi 2005(J).
Thank you.

コメントする

このブログ記事について

このページは、がApril 4, 2005 12:00 AMに書いたブログ記事です。

ひとつ前のブログ記事は「GRE にハードコードされているchrome」です。

次のブログ記事は「Added for Mozilla 1.8」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。