Overlays

From MozillaZine Knowledge Base
Jump to navigationJump to search

This page is part of the extension development documentation project.

Ask your questions in MozillaZine Forums. Also try browsing example code.

Note: development documentation is in process of being moved to Mozilla Development Center (MDC).

Much of the information intended for this page is not written yet. Take a look at http://xulplanet.com/tutorials/xulapp/overlays.html

Registering overlay information for extensions

Specifying overlays when developing extensions

Information about overlays should be specified in a contents.rdf file inside the same folder as your overlays. For example, if you have an overlay in content/myextension/myOverlay.xul in myextension.jar which overlays the chrome://browser/content/browser.xul location (<install directory>/chrome/browser.jar/browser/content/browser/browser.xul file), you should include the following two things in content/myextension/contents.rdf:

  1. Add the line
    <RDF:li RDF:resource="chrome://browser/content/browser.xul"/>

    inside the tag

    <RDF:Seq RDF:about="urn:mozilla:overlays">
    </RDF:Seq>

    (Create this tag if it doesn't already exist.)

  2. Further down, add the tag
    <RDF:Seq RDF:about="chrome://browser/content/browser.xul">
    	<RDF:li>chrome://myextension/content/myOverlay.xul</RDF:li>
    </RDF:Seq>

It is usually quite easy to find the chrome URL of the window you want to overlay. For your convenience, the URLs of some windows are listed in Chrome URLs. If you don't see the window you need to overlay listed, get DOM Inspector, open the window and click File > Inspect a Window > your window. The chrome URL will be displayed in the top textbox.

See also Contents.rdf.

Where Mozilla stores extension overlay information

When an extension is installed, overlay information found in its various contents.rdf files is copied into various overlays.rdf files located inside the Profile Folder under chrome/overlayinfo. For example, if a contents.rdf file contains

<RDF:Seq RDF:about="chrome://mozapps/content/downloads/unknownContentType.xul">
	<RDF:li>chrome://myextension/content/myOverlay.xul</RDF:li>
</RDF:Seq>

then this information is copied into <profile>/chrome/overlayinfo/mozapps/content/overlays.rdf.

Once an extension is installed, Mozilla pays no further heed to the contents.rdf files and refers instead to the overlays.rdf files.