オーバーレイ (Overlays)

オーバーレイとは、複数のXUL文書を合成する機能です。

オーバーレイされる側のコードを記述できる場合には、XUL オーバーレイを用います。オーバーレイされる側のコードを記述できない場合、たとえばブラウザの要素にオーバーレイするような場合には、クロスパッケージ オーバーレイを用います。

オーバーレイした結果は、そのXUL文書をDOM Inspectorで開くことで確認できます

XUL オーバーレイ (XUL Overlays)

たとえば次のような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の内容が合成されます。

クロスパッケージ オーバーレイ (Cross Package Overlays)

クロスパッケージ オーバーレイとは、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に記述します。

Firefoxアドオンの情報サイトから、まとめて検索