アキバテラピー
714件、か…
ひとりFirefox読書会
無駄にMinefieldのsrcを読んでみたり。
とりあえず、browser/app/nsBrowserApp.cppのsimpleさに感動してみたり。
無駄に引用してみたり。
static const nsXREAppData kAppData = { sizeof(nsXREAppData), nsnull, "Mozilla", "Firefox", NS_STRINGIFY(APP_VERSION), NS_STRINGIFY(BUILD_ID), "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}", "Copyright (c) 1998 - 2007 mozilla.org", NS_XRE_ENABLE_PROFILE_MIGRATOR | NS_XRE_ENABLE_EXTENSION_MANAGER #if defined(MOZILLA_OFFICIAL) && (defined(XP_WIN) || defined(XP_MACOSX)) | NS_XRE_ENABLE_CRASH_REPORTER #endif , nsnull, // xreDirectory nsnull, // minVersion nsnull, // maxVersion "https://crash-reports.mozilla.com/submit" }; int main(int argc, char* argv[]) { return XRE_main(argc, argv, &kAppData); } #if defined( XP_WIN ) && defined( WIN32 ) && !defined(__GNUC__) // We need WinMain in order to not be a console app. This function is // unused if we are a console application. int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR args, int ) { // Do the real work. return main( __argc, __argv ); } #endif
(browser/app/nsBrowserApp.cpp:46-80; 2007/06/22 18:27 CVS-trunk 最新版はこっち )
Win32ならWinMainからmainをcallして、
mainからXRE_mainをcallして、
それで終了。
なんか、もう、ね、ハァハァ
あと、browser/base/content/browser.jsとか、browser/base/content/browser.xulとか、
夢がひろがるなぁ…
って、こんなことをしてる場合ではないのです。
ひとりGecko-SDK読書会
とりあえず、自分がbuildしたFirefoxのdist/sdk/idlの中の人をメモっていくことにするのです。
泥縄とか言わない。
domstubs.idl
nsIDOMhogeのがさっとプロトタイプ
mozJSSubScriptLoader.idl
javascriptがさらにこどもjavascriptをloadするためのservice。
Bagel-0.4.1のnsBagelScriptLoader.jsでも使われてるみたい。
nsIArray.idl
Gecko的配列?
nsIASN1Object.idl nsIASN1Sequence.idl
ASN1ってなんですか?
nsIBadCertListener.idl
認証を通らなかったとか、そっち系っぽい。
K-MeleonではnsICertificateDialogsのそばで使われてるみたい。
nsICertificateDialogs.idl
認証書を表示するとか、受け入れるとかのdialogのinterface。
がんばって自分で実装する。
nsIChannel.idl
GETしたりするためのchannelをほげる。
これは結構使えるかも。
nsIClassInfo.idl
XPCOM objectが実装してるinterfaceのlistをとってくる。
nsIClipboardCommands.idl
クリップボードをほげる。これ結構便利。
WebBrowserもこれを実装してるみたい。(nomina.041cのnmnFrameWindow.cpp)
nsIComponentManager.idl nsIComponentRegistrar.idl
おなじみ。XPCOMを作ってくれたり登録したりする。
nsComponentManagerUtils.h経由で使うことも多いかな。(nomina.041cのnmnGeckoEngine.cpp)
nsIContextMenuListener.idl
はいおなじみ。WebBrowserの右クリックメニューのやつ。
僕はnsIContextMenuListener2のほうが好きです。
nsICookie.idl nsICookieManager.idl
cookieのservice。なんか機能が少ないような気も…
nsICRLInfo.idl
なんか認証がらみっぽい。
nsIDebug.idl
assertとかまで独自仕様で実装してしまうのか…
nsIDirectoryService.idl
Geckoにはいろんなディレクトリ名を一元管理する機能があって、そのへん。
nsDirectoryServiceUtils.hとか、nsDirectoryServiceDefs.hとかをみるといろいろある。
nsIDOMhoge
めんどくさいので省略。192個のidlのうち、112個がこれだけど。
まあ、あれだ。DOMだ。
そして結構疲れる割にはムダであることに気づくorz
しんどいので続きはまたこんど。
…続けるのか?