オーバーレイとは、複数のXUL文書を合成する機能です。
オーバーレイされる側のコードを記述できる場合には、XUL オーバーレイを用います。オーバーレイされる側のコードを記述できない場合、たとえばブラウザの要素にオーバーレイするような場合には、クロスパッケージ オーバーレイを用います。
オーバーレイした結果は、そのXUL文書をDOM Inspectorで開くことで確認できます。
たとえば次のようなXUL文書があるとき、
<?xml version="1.0"?> <overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <hbox id="box1"> <button label="AAA" /> </hbox> </overlay>オーバーレイする側
この文書のファイル名がfoo.xulだとすると、オーバーレイする位置にxul-overlayでそのファイル名を指定します。
<?xml version="1.0"?> <?xml-stylesheet type="text/css" href="chrome://global/skin/"?> <?xul-overlay href="foo.xul"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <hbox id="box1"> </hbox> </window>オーバーレイされる側
このとき同じid属性の要素に、foo.xulの内容が合成されます。
クロスパッケージ オーバーレイとは、xul-overlay処理命令が記述されていないXUL文書にオーバーレイする方法です。
Chrome Manifestで、たとえば次のようにoverlayの指示をします。
overlay chrome://browser/content/browser.xul chrome://myPackage/content/sample.xul
ブラウザの要素にオーバーレイする場合には、定義済みのChrome URIを用います。
スタイルシートをクロスパッケージ オーバーレイするには、style命令を使用します。
style chrome://browser/content/browser.xul chrome://myPackage/skin/sample.css
これもoverlay同様に、Chrome Manifestに記述します。