2006-08-24
■[javascript]Firefox拡張を簡単に改造する方法

毎回、jar ファイルを作り直す作業が
面倒だと思った事はないだろうか。
じつは、chrome.manifest というファイルを
書き換える事によってこの作業は必要なくなる。
たとえば、FireBug を簡単に改造する手順を説明してみる。
この手順では、既にインストールしてあるものを
改造する手順を説明させていただくこととする。
ちなみに、コレに関連した話として、
入れておくと便利な拡張に、
Extension Developer's Extension というものがある。
http://ted.mielczarek.org/code/mozilla/extensiondev/
これについては後述する。
まず、FireBug のインストールされているディレクトリを探す。
それは、プロファイルディレクトリの下の
./extensions/firebug@software.joehewitt.com/
ディレクトリが該当する。
プロファイルディレクトリの
プラットフォームごとの場所については、
下記ページが非常に参考になる。
http://www.mozilla-japan.org/support/firefox/profile
このディレクトリに先ほど説明した
chrome.manifest というファイルが存在しており、
以下はそのファイルの中身である。
content firebug jar:chrome/firebug.jar!/content/firebug/ xpcnativewrappers=no skin firebug classic/1.0 jar:chrome/firebug.jar!/skin/classic/ locale firebug en-US jar:chrome/firebug.jar!/locale/en-US/ overlay chrome://browser/content/browser.xul chrome://firebug/content/browserOverlay.xul overlay chrome://global/content/customizeToolbar.xul chrome://firebug/content/customizeToolbarOverlay.xul
先頭行を見ていただけるとわかると思うが、
jar:chrome/firebug.jar!/content/firebug
のようになっており、
実は、明示的に jarファイル を参照するようになっている。
そしてここを jarファイル参照 ではなく
単に ディレクトリ参照 するように変更すれば
毎回わざわざ jarファイル に作り直す必要がなくなる。
先ほどの例では該当部分を以下のように変更すれば良いだろう。
chrome/content/firebug
jarファイル参照 をしないように
書き換えた chrome.manifest はコチラ。
content firebug chrome/content/firebug/ xpcnativewrappers=no skin firebug classic/1.0 chrome/skin/classic/ locale firebug en-US chrome/locale/en-US/ overlay chrome://browser/content/browser.xul chrome://firebug/content/browserOverlay.xul overlay chrome://global/content/customizeToolbar.xul chrome://firebug/content/customizeToolbarOverlay.xul
最後に、chrome.manifest 通り
firebug.jar を解凍してやる必要がある。
このとき解凍方法に十分注意する必要がある。
解凍ソフトによっては、
余分なディレクトリを勝手に生成してしまうからだ。
あとは、もう FireBug のソースを好き勝手いじったら良い。
そして、ちょうど気分の良いところで Firefox を再起動させて
その結果を確認するだけで良い。
ソースをいじる -> 再起動 -> 確認
という jarファイル を再構築しない流れにすることができた。
ちなみに、Greasemonkey なんかははじめから
ディレクトリ参照 してるので
デフォルトでこのように気軽にいじって遊ぶ事が出来たりする。
あまり詳しく調べてないから正確かはわからないが、
jarファイル にまとめておくと
起動時の読み込みが速くなるらしいので、
完成版では、jarファイル にしといた方が
良いんじゃないかと個人的に思う。
Greasemonkey もやっといたら良いのにと思った。
ところで、先述した Extension Developer's Extension という
拡張を利用すれば、
メニュー から、Reload All chrome という項目を
選択するだけで ソースを再読み込みする事が出来るようになるため、
再起動する手間が減る。
(が、いじった場所によっては
やっぱり再起動が必要になる場合も無きにしもあらず)
他にも、"正規表現実行機" とか
"リアルタイムなXULエディタ" とかついてるので
入れといて損は無いんじゃないかと思う。
- 31 http://reader.livedoor.com/reader/
- 13 http://b.hatena.ne.jp/add?mode=confirm&title=%u6280%u8853%u30E1%u30E2%u5E33 - Greasemonkey%u304C%u9069%u7528%u3067%u304D%u306A%u3044%u30DA%u30FC%u30B8%u3078%u306E%u30EA%u30F3%u30AF%u306B%u8B66%u544A%u753B%u50CF%u3092%u4ED8%u52A0%u3059%u308B&url=http%3
- 11 http://0073h.ioport.net/
- 11 http://wikiwiki.jp/firefox/
- 10 http://0073h.ioport.net/archives/002021.html
- 9 http://wikiwiki.jp/firefox/?FrontPage
- 8 http://b.hatena.ne.jp/yuiseki/add?mode=confirm&url=http://d.hatena.ne.jp/lurker/20060805/1154794372
- 5 http://clip.livedoor.com/clips/aobayuiseki?p=4
- 5 http://labs.ceek.jp/hbnews/
- 4 http://b.hatena.ne.jp/brazil/
