Personal tools
You are here: Home ブログ 井上 Mozilla/Firefoxの拡張機能
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

Mozilla/Firefoxの拡張機能

Mozilla/Firefoxの拡張機能(extension)の作成方法を調べました。 テストを兼ねて、AirOne新着確認をステータスバーに表示する拡張機能を作ってみました。

証拠画面:

/Members/inoue/images/misc/fx-ex.png

残念ながら何の役にも立たないので、公開の予定はありません。 その代わり、勉強会のネタとして、「Mozillaの拡張機能の作り方」を書く予定です。 mozillaサイトの文書を読めば分かることしか書くネタはありませんが、最初、どの文書を読めばよいか分からない人が大多数だと思うので、書く価値はあると思っています。

Mozillaがオープンソースになった頃、「XUL(ズール)のせいでMozillaがこんなに遅いんだ」、という文句がかなりあった記憶があります。今でも、XULの記述力が適切なのか良く分からない部分もありますが、実際にここまで動くものになった以上、誰にも文句は言えません。ちなみに、XULというのは、XMLベースのGUI記述言語です。Motifで言えばUILみたいなものです(motifとUILで検索すると、少しだけかつての栄光が見つかります)。XULはHTMLの歴史の後に設計されたので、レイアウトの記述をCSSに追い出している点がUILの時代と違う点です。CSSの記述力の良し悪しは別として、正しい進化が起きたひとつの例です。

MozillaはXULでメニューバーやツールバーなどを記述しています。チュートリアル( http://developer.mozilla.org/ja/docs/Building_an_Extension )に書いてあるので、秘密のテクニックと言うわけでもないですが、chrome://browser/content/browser.xul をアドレスに打ち込んで、firebugで調べると様子が分かります。

Mozilla拡張機能を作るために知るべき言語は、XUL、JavaScript、CSSです。必要ならXBLがここに加わります。

XBLは、XULに対してAOP的にadviceする印象を受けました。 http://developer.mozilla.org/en/docs/XUL_Tutorial:Anonymous_Content の「Using the Children Element」の例など見ると、class="dropbox"がジョインポイントで、CSSでmenu.dropboxのポイントカット指定に-moz-bindingでアドバイスを (defadvice) している感じです。XBLがアドバイスのコードで、<children/>の部分は elisp で言えば、ad-do-it みたいなものです。

一方、XULで手続き呼び出しができないことを補完するための、マクロ展開のような印象も受けます。

同じ現象(XBL)の印象を語っても、片やAOPのアドバイスのようと言えば新しそうに聞こえ、片や手続き呼び出しを模倣するためのマクロ展開のようと言うと随分古臭い印象になります。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/firefox-extension/tbping
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.