FirefoxFileSystem
Plan9とかInfernoみたく、取りあえず私も何でもファイルっぽく表現してみようかと思って作ってみたのですが、階層が決まらなくてイけてないので止めました。
実装手段は極めて簡単に、MozRepl + FUSEでC++かなーみたいな。
MozReplについてはここでも何回か取り上げていますが、Telnet使ってFirefoxを外部から弄る為のアイテムです。
http://wiki.github.com/bard/mozrepl/home
FUSE使ったのは、勿論手軽に出来るからっていうのと、FUSEの他言語binding使わないでC++になったのはどうでも良い所で面倒くさい問題が発生して欲しく無かったからという所で。
RubyはTelnetのどうこうがあるみたいですけど、C++はググルのさえ面倒くさかったので普通にTCPベースで、行先頭"repl"かつ同行内に">"があるストリームを取得するまでは、普通にblockなreadで待つとかそんなので。
普通にsingle-thread
最初に作ったファイル階層としては
/FirefoxFS | | - /topWindow <- 少なくとも私の調べた範疇では、getTopWinで最後にフォーカスをあてたWindowの取得ぐらいしか... | |-- /tab0 | |-- /tab1 | |-- /tab2 ...
というもんで、タブを作るのに一々opendirのreaddirして個数調べてどうこうとか非常に面倒くせーなーとかでイライラしたので辞めました。
まぁ結局まともに使わなかったって事で。