Hatena::Groupmoz-addon

hogezilla RSSフィード

当ページに書かれているコードは、修正BSDライセンスのもと、再頒布して頂いて構いません。

 | 

2009-01-23

Mozillaアプリを作るに当たって参考にしてきたもの

01:43 | はてなブックマーク - Mozillaアプリを作るに当たって参考にしてきたもの - hogezilla

何が良いんだろうと真面目に考えてみた。が、拡張機能という性質上、全てを盛り込んだバイブル的なものは無いような気がする。実現したいものに対して個別にそれと似たことをしている拡張を探し出して中身を見てみるしか無いような気がする。

まぁ、とりあえず、僕が参考にしたり読んできたものを列挙してみる。

メインページ - MDC

リファレンス的なものとしてXUL,CSS,XPCOM,JavaScript各種揃っているので見る機会が一番多い。

ブログとか記事

piroさんのドキュメント

XUL Apps > Documentations - outsider reflexはかなり参考になる

Gomitaさんの記事とブログ
userChrome.js関連

alice0775のファイル置き場 - Yahoo!ジオシティーズで書かれている記事はuserChrome.js関連ばかりだけど、XPCOM,JavaScriptは参考になるものが多いのではないかと思う。

Firefox自身

Firefox自身もXULRunnerアプリケーションみたいなもので、XULJavaScriptでできているので参考になるものが多い。

特にFirefox自身を形作るchrome://browser/content/browser.xulなどには単体Windowを定義する上で良く使うものの宝庫だと思う。

  • ツールバー、メニューバー
  • メニューとショートカット(commandset要素やkeyset要素など)
  • ステータスバー

設定ダイアログchrome://browser/content/preferences/preferences.xulもなかなか面白いかもしれない(僕は読んだことはない)。

また、JavaScriptのグローバル関数の中身がどうなっているかとか、メニュー等についているonCommandからどういう操作が行われているかとか、xpconnectの使い方、CSSがどうなっているか*1等々の調査にもなる。

とりあえず、Firefoxインストールディレクトリ/chrome以下にある*.jarを全部展開して手元に置いておくとよいと思う。僕はEclipseのプロジェクトにしている。全文検索ができたりと何かと便利。

Thunderbird

メール作成部分はFirefoxにないところなので。似たようなUIが欲しいときに参考にする程度かもしれいが。

拡張機能

拡張機能で参考にしてきたもの

DOM Inspector

ツリー(tree要素)の勉強になった。JavaScriptオブジェクトツリーの要素はテンプレートを使わずJavaScriptで動的に作っている。

僕はこれを参考(というかもろパクリ)にしてEvent Inspector(マウス/キーボードイベントのEventオブジェクトの詳細をツリー表示するもの)を作った。

Scrapbook

ScrapbookはデータツリーをRDFで作っている。

鬼門と言われるRDFの使用で大いに参考にした。でも未だに理解できていない...orz

スクラップしたもののメタデータはみんなRDF形式のXMLに書き出されているので、それと見比べつつ勉強できる。

あと、ローカルファイルのIO関係もそれなりにある。

Greasemonkey

外部リソースであるJavaScriptを実行するに当たって、Components.utils.Sandbox,Components.utils.evalInSandboxの使い方は参考になると思う。

また、僕はGreasemonkeynotificationbox*2の使い方を知った。

JavaScriptとしてはGreasemonkeyのソースがかなりアレな件 - hogehogeで書いたように微妙だと思うが、参考にはなると思う。

Stylish

ユーザスタイルの作り方の参考にした。

Vimperator

XUL部分はほんのちょっとしかない。

が、JavaScriptとしては面白い。

僕は、Vimperatorプラグイン(userChrome.jsみたいなもの)を作りたくて仕方なく読んだ口だけど、読んでいくうちにハマってしまった。

JavaScript1.7からの

E4Xを使いまくったコードはかなり面白いと思う。

ただし、Vimperator2.0は複雑になり過ぎていると思う。ただ読むだけなら1.2かそれより前のものを読んだ方が分かり易い。

Ubiquity

僕はこのソースを読もうとして驚いた。XULはほとんど使われていない。ほとんどがXHTMLJavaScriptだ。こういう拡張もあるんだなぁと。

あと、ファイル構成も他とは逸脱した感じになっていたり、jQueryが仕込まれていたり、ソースコードのシンタックスハイライトにCodeMirrorが仕込まれていたりとなかなか刺激的だった。

その他

補助的なものとして

IDE

僕は統合開発環境としてEclipseプラグインSpket IDEを使用していた(今現在はシンプルにvimで済ませてしまっているが...)

紹介記事を書いているのでご参考に。

Mozilla Cross-Reference

僕は全然読めないのでさっぱりだけど、Mozillaソースコードを追えるのでC++が分かる人には重宝しそう。

d:id:sotarok

拡張機能独自の設定を定義する場合について - GRANADA Hatena @ sotarokでFUELに関して何やら書きそうな雰囲気なので僕は期待している

*1CSSに関してはDOM Inspectorを使うことの方が多いけど

*2:ユーザスクリプトのURLにアクセスした時にブラウザ上部に出るアレ

 |