Geckoの最近のブログ記事

SimpleDownload downloads the target URI to any folder. Then if the request is http, response headers are shown in list box.

SimpleDownload

Download SimpleDownload.zip

Gecko SDK for Delphi project was registered to SourceForge.net. It contains:

  • Gecko wrapper and utilitiy classes
  • VCL Components
  • command line utilities (xpidlpas)

紛らわしいタイトルだが結局Bug 268520はTarget MilestoneがMozilla1.9alphaとなりインターフェースで凍結されたのはこれだけ。

2.0までに残り全部凍結できるんだろうか。

Gecko SDK に含まれているインターフェースはデバッグ用のインターフェースを除き全て @status FROZEN がついており凍結されているのだが、一部のインターフェースは凍結されていないインターフェースを参照しているため完全に凍結されているとは言えない。 例えば、 Mozilla 1.1β で凍結された nsIWebBrowserPrint@status UNDER_REVIEW である nsIPrintSettings を参照しているが、このインターフェースは 1.8α4 以前と 1.8α5 以降では UUID が異なっている。 Gecko SDK 1.8β1 に含まれるインターフェースで、完全に凍結されていないと見なされるものは次の7つになる。

    // Added for Mozilla 1.8
    AllocFunc allocFunc;
    ReallocFunc reallocFunc;
    FreeFunc freeFunc;
    StringContainerInit2Func stringContainerInit2;
    CStringContainerInit2Func cstringContainerInit2;

ずいぶん前に好みの仕様なったのだが正直コードの変更がだるい。 というかどうせ1.8RC1までにまだ追加されるだろうからコードを変更しようという気にもなれない。 1.7の時と同じ轍は踏まん。

そもそも1.7と1.8でUUIDが違うインターフェースが増殖しすぎだ。

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

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

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

GRE に含まれている DLL に埋め込まれている文字列からハードコードされている chrome を列挙した。 GRE のみでブラウザ組み込みをするといろいろなところで不具合がでるのだが、それを chrome に限って探求する。

Mozilla Suite 1.8β1 の GRE を対象にして検索を行った。 ハードコードされている chrome と DLL の対応は次のとおり。

GRE ディレクトリ直下
DLLchrome
gkgfx.dll chrome://global/content/printPageSetup.xul
mozctl.dll chrome://necko/locale/necko.properties

GeckoSDK に含まれているインターフェースの最後に仕様が変更されたバージョンと @status FROZEN になったバージョンを調べてみた。 UNDER _REVIEW が混ざっているが多分もう仕様変更がないんだろう。 nsIDebug とかいまさら仕様変更されても困るし。

nsIWebProgressListener がいつまでたっても凍結されないため、いったいいつからインターフェースが変わっていないのかを調べるために LXR で CVS Log を見てみたところ、実は2004年10月30日の時点ですでに凍結されていたようだ。 もしかして、と思い先日リリースされた 1.8α5 の SDK をダウンロードして確認してみたところ、 1.7 と比較して次の idl ファイルが増えていた。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちGeckoカテゴリに属しているものが含まれています。

前のカテゴリはDevelopです。

次のカテゴリはMozillaです。

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