ひとりGecko-SDK読書会 その2

続いたよw

nsIEmbeddingSiteWindow.idl

Chromeの追加interface。NativeWindowへのinterfaceかな。
ここでHWNDとかGtkWidget*とかが要求されるんだねー

nsIFactory.idl

XPCOMを作るためのXPCOM…わかりにくいな。
nsIComponentRegistrarで登録するときにはhogeClassではなく、
nsIFactoryを実装したhogeClassFactoryを登録する。
ある意味最重要。

nsIFile.idl nsIFileURL.idl nsILocalFile.idl

fileのwrapper。こんなもんまで作るんだね。
charsetの問題があるので、nsIFile::hogeNativeはnonscriptable(JavaScriptから呼べない)。
nsIFileURLはURLにnsIFileとしてaccessできるらしい。
nsILocalFileはlocalなのに限定したやつ。

nsIGlobalHistory.idl (nsIGlobalHistory2.idl) (nsIGlobalHistory3.idl)

nsIGlobalHistoryはdeprecatedなので、not frozenなnsIGlobalHistory2を使えとのこと。
じゃあSDKにもnsIGlobalHistory2を入れとけよ、とか思いつつ。
いわゆるブラウザの履歴というやつのservice。
タブ(WebBrowser)ごとの履歴はSessionHistory(nsISHistory)。

nsIHistoryEntry.idl

SessionHistoryのentry。GlobalHistoryのentryではない。

nsIHttpChannel.idl nsIHttpHeaderVisitor.idl

nsIChannelのHTTP版。HTTP鯖との通信を手動でいろいろいじれる。
referrerの設定とかもできる。
nsIHttpHeaderVisitorはnsIHttpChannelからcallされる。

nsIInputStream.idl nsIOutputStream.idl

まあ、I/O Stream。ProtocolHandlerなプラグインの開発とかでも使うみたい。

nsIInterfaceRequestor.idl

do_GetInterfaceの実装。

nsIIOService.idl

ProtocolHandlerとか、URIとか、Channelとか、そのへんのinstanceを作ったりするservice。

nsILoadGroup.idl

Requestを何本かまとめて管理する。Observeしたりする。

nsIMemory.idl

Gecko独自のheapっぽいservice。Allocとか、Reallocとか、Freeとか。
nsXPCOM.hではNS_Allocとか、NS_Reallocとか、NS_Freeとかが定義されてるから、そっちを使う?

nsIModule.idl

XPCOMになるためのinterface?よくわかりません。

nsIMutableArray.idl

nsIArrayの仲間。

nsIObserver.idl nsIObserverService.idl

text-basedな、Gecko独自のevent watcher。
nsIObserverServiceは当然、nsIObserverの実装を管理するためのservice。

nsIPrefBranch.idl nsIPrefBranch2.idl nsIPrefLocalizedString.idl nsIPrefService.idl

まあ、ひっくるめてabout:configの変数をほげるためのもの。
nominaで使ってるnsIPrefはdeprecated。へー。simpleで使いやすいんだけどなぁ。
かわりにこのnsIPrefServiceとnsIPrefBranchを使えとのこと。

nsIProfile.idl nsIProfileChangeStatus.idl

Profileをほげる。
ProfileChangeStatusはProfileなイベントを、Observerに投げる。

nsIProgrammingLanguage.idl

なにに使うんだろう。とりあえず、C#は想定されてないぽorz


はい、休憩。