要約
XULには、XBL Bindingという、タグの拡張手法が存在します
これは、新たに使えるタグを増やすという役割もありますが、Firefoxのテーマ側もcssからの呼び出しによりこの恩恵を受けることが出来ます。
これを利用することにより、テーマの側でも拡張の様に追加のボタン等を追加したり、JavaScriptのプログラムを埋め込んだりすることが出来ます。
正直な話、このトピックはテーマ作成の中でも、比較的高度なトピックです。その代わり理解できれば、cssのカスタマイズだけでもかなりの変更が出来るテーマを、本当に自由自在に拡張出来てしまいます。
基礎
まずXBLファイルを作成します。現在使われているタグから変更したい箇所を特定して、そこにあわせたXBLファイルを作成します
css側からは-moz-bindingプロパティを使う事で
-moz-bindings:url("位置") !important;
経験的には、必ず使えるようにするために!importantを付けておく事をお勧めします。
ここからが面白いのが、XBLファイルの中にはJavaScriptを含めることが出来る。つまりはテーマの中にプログラムを含めることが出来ます。
ここまで出来ると、ほとんどFirefoxの拡張と一緒、というよりそもそもFirefox内部ではテーマと拡張の扱いの違いはあまりありません。ただ、テーマを変更するとその機能が失われるだけです。
正直、ここまで何でも出来ると、いろいろとアイデアも浮かんできますが、実際にはユーザビリティのバランスを取りながらやって行って下さい
それだけではなく、xulでは、htmlやSVG等の他のXML要素の埋め込みが出来るという特徴があるため、その装飾能力の高さは特筆に価します
実践
今回はウィンドウ下のステータスバーにボタンを追加して、そこに簡単なプログラムを埋め込みます