XUL Changes for Firefox 1.5

This lists the most notable changes to XUL in Firefox 1.5 (Gecko 1.8). For other changes you should be aware of, see Adapting XUL Applications for Firefox 1.5.


A <scrollcorner> element is added which is used to create the small box in the intersection of the horizontal and vertical scrollbars.

<richlistbox> and <richlistitem>

The <richlistbox> and <richlistitem> elements are used for creating lists containing arbitrary content. This element works similarly to the <listbox> which is designed primarily for lists of textual items. The <richlistbox> supports much of the same API as the <listbox> and single items, created with the <richlistitem> element may be selected. See XUL:Richlistbox for more information.

Preferences System

Several elements have been added which may be used for creating preference windows. These windows are special types of dialogs which support several panels, each of which may be contained in the same file or a separate file. A set of icons will appear across the top of the dialog allowing the user to switch panels. Along with the new preference elements and some additional attributes for existing elements, they make it easy to set preferences without having to use code. For more information, see Preferences System.


Mozilla now caches the page's DOM, so that navigating back and forward does not reload the page, making navigation much more efficient. The pageshow and pagehide events are used when switching from a page in the cache, while the load and unload events are used only when the page is loaded or unloaded.

For more information see Using Firefox 1.5 caching.


The tabIndex property is now applied to most elements.


Setting the value property on the <radiogroup> element selects the <radio> element in the group with the corresponding value.

Dialog: defaultButton property

The <dialog> binding now supports the defaultButton property. Setting this property changes the default button of the dialog. It can be set either to one of the buttons of the <dialog> binding (using their names); or to none - in which case no button is set to be the default.

Button: icon property

The icon property on a button may be used to set stock icons on a button, used on some platforms. For instance <button icon="help"> will create a button with a help icon. This is used typically on GNOME systems where possible values are: accept, cancel, help, open, save, find, clear, yes, no, apply, close, print, add, remove, refresh, go-forward, go-back, properties, select-font, select-color, network.


Items in a <menulist> support the description attribute to allow for extra descriptive text to appear beside an item's label. The menulist modification methods appendItem and insertItemAt take an extra description argument when creating items this way.


The removeItemAt method was sometime non zero-based due to a bug (bug 236068). This has been fixed in Firefox 1.5 and all code depending on this non zero-based behaviour should be changed.


The <stringbundle> element has a strings property which may be used to retrieve an enumeration of all of the strings in the bundle.

Draggable tabs

The tabbrowser now allows the user to rearrange tabs by dragging them.


The <tabbox> element now supports a selectedIndex attribute to specify the tab to be selected by default.

Loading overlays dynamically

XUL now supports loading overlays dynamically with the document.loadOverlay function.

Original Document Information

  • Author(s): Neil Deakin