ひとり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に投げる。