MozillaZine

Overlays

From MozillaZine Knowledge Base

(Difference between revisions)
Revision as of 04:29, 19 March 2005
Moogle (Talk | contribs)
(Specifying overlays when developing extensions)
<-- Previous diff
Revision as of 07:50, 30 March 2005
Asqueella (Talk | contribs)
(not applies to g1.8)
Next diff -->
Line 2: Line 2:
''Much of the information intended for this page is not written yet. Take a look at http://xulplanet.com/tutorials/xulapp/overlays.html'' ''Much of the information intended for this page is not written yet. Take a look at http://xulplanet.com/tutorials/xulapp/overlays.html''
 +
 +'''Update:''' This is no longer true for Firefox/Thunderbird 1.1. During Gecko 1.8 development contents.rdf and rdf-based overlayinfo directory were dropped in favor of plain-text chrome.manifest files. See [https://bugzilla.mozilla.org/show_bug.cgi?id=278534 bug 278534] and [http://www.mozilla.org/xpfe/ConfigChromeSpec.html]. The information below is only useful for pre-Gecko 1.8 applications.
 +
==Registering overlay information for extensions== ==Registering overlay information for extensions==

Revision as of 07:50, 30 March 2005

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

Update: This is no longer true for Firefox/Thunderbird 1.1. During Gecko 1.8 development contents.rdf and rdf-based overlayinfo directory were dropped in favor of plain-text chrome.manifest files. See bug 278534 and [1]. The information below is only useful for pre-Gecko 1.8 applications.


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.