nsIWebBrowserのガワに最低限必要なもの

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

nsIWebBrowserのガワの話。 要するにnsIWebBrowserChromeの実装の話。 とりあえず触りだけ。

最低限以下のインターフェースの実装が必要なようだ。

nsIWebBrowserChrome

ガワ本体。ガワなのに本体とはどういうことかと思うが nsIWebBrowser.containerWindownsIWebBrowserChrome型なので仕方ない。

nsIInterfaceRequestor

今ひとつどう説明すればわからないインターフェース。 queryInterfaceによく似たメソッドgetInterfaceを持つ。 getInterfaceで取得したインターフェースは逆変換できる必要はない。 queryInterfaceではあくまで自分自身を返すが、 getInterfaceではプロパティや関数の戻り値を返してもいいことになる。 Mozillaのソースを深く読んではいないのでどう便利なのかはいまいちわからないが、 nsIWebBrowserのガワとしては必須。

とりあえず上の2つのインターフェースのメンバのうち、 nsIInterfaceRequestor.getInterfaceメソッドを queryInterfaceに丸投げして nsIWebBrowserChrome.webBrowserプロパティを実装すれば 残りのメソッドは全部NS_ERROR_NOT_IMPLEMENTEDにしても動く。 getInterfaceを実装しないとFlashもまともに表示されないしリンクも飛べない。 でもgetInterfaceさえ実装すれば動く。 それくらい重要。

はっきり言ってGecko Embedding BasicsnsIInterfaceRequestorがないのは詐欺だろ。

トラックバック(0)

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

コメントする

アーカイブ

ウェブページ

Powered by Movable Type 4.21-ja

このブログ記事について

このページは、が2008年9月25日 22:40に書いたブログ記事です。

ひとつ前のブログ記事は「jail多すぎる」です。

次のブログ記事は「初期化はNS_InitXPCOM2よりもXRE_InitEmbeddingのほうが簡単」です。

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