maidsphere

A quantization noise whispers through the net.

FirefoxのUI要素を調査する方法

May 23, 2015 21:22:18 JST

FirefoxのUIはXULというXMLベースの言語で作られています. UIの表現はCSSやJavaScriptで実装されているので,UIの特定の要素を非表示にしたり動きを変更したりすることが簡単にできます. ただし,ぱっと見ではその要素のIDがわからないので,調査が必要になります.

特にこだわりがない人はDOMインスペクタを使いましょう. ここからは宗教上の理由でDOMインスペクタが使えない人がどうするべきかを書きます.


やることは素直にソースコードをあさるだけです. どこにソースコードがあるのかはMDNにまとめられています.

多くの人はmozilla-releaseブランチを使っているはずなので,以下のリンクからリポジトリのサマリが見れます.

https://hg.mozilla.org/releases/mozilla-release

「tags」のセクションに自分が使っているFirefoxのバージョンのリリース用タグがあるはずなので,そこの「files」のリンクをたどります. たとえば,Firefox 37.0.1ならFIREFOX_37_0_1_RELEASEがタグになります.

ブラウザのUIまわりは,ほとんど(全部)が

/browser/base/content/

のパスにあります. あとは,それっぽい名前のファイル見ていけばOKです. だいたい.xul.incという拡張子のファイルです.

たとえば,右クリックメニューなら

/browser/base/content/browser-context.inc

に列挙されています.

なお,ブックマークまわりだけは

/browser/components/places/content

に隔離されています. 必要に応じて,こちらも参照してください.


多くの場合,IDや周辺の要素の並び順で機能が推測できますが,どうしてもわからない場合はFirefoxの日本語ローカライズファイルも参考にできます. これは,GoogleCode上にあります.

パスはだいたい

/hg/ja/browser/chrome/browser/

あたりを見れば良いと思います.

ちなみに,右クリックメニューまわりは

/hg/ja/browser/chrome/browser/browser.dtd

の中です.

アタリがつけば,MXRで検索すれば要素のIDを見つけられます. MXRでも「Mozilla Release」を選択して,リリースブランチから検索するようにしましょう.