Installation of xulmaker, just like any XUL product, requires a XUL based platform. Mozilla, Netscape 6+ are XUL based platforms. xulmaker version 0.40 requires at least a version 1.0.1 of Mozilla, or a version 7.0 of Netscape.

The prerequisite to installing xulmaker version 0.40 is to install the jslib library. If you have not already installed a recent copy of jslib you may do so from here.

20 December 2002 - Please Note that only the XPI INSTALL's, and not the XPI and JAR DOWNLOAD's, work at the moment.

Installation of the book "Creating Applications with Mozilla" and the "XUL Planet" resources are separate and optional installs.

XULMaker includes links to a number of tools which must also be installed separately if they are to be accesable from XULMaker. Currently this only includes the DOM Inspector.


After you install the package, you can get a simple window by running: ./mozilla -chrome chrome://jslib/content/




To register the package, add the following three lines to the "installed-chrome.txt" file in the chrome directory, and re-start the browser. (No need to do this if you executed the xpi file.)

If you copied the jar file to the browser's chrome directory:


If you unzipped the jar file to somewhere in your local file system (if not in the chrome directory) follow this example:








To see the results of the overlays to your browser (e.g. menuitems added), you will need to restart your browser. (In Win32, to ensure that you have truelly restarted from scratch, kill any mozilla.exe process that may still be running.)

The following are the known issues with xulmaker version 0.40:

Save File on Dirty Flag

Currently when you do a File | New , a File | Open , a File | Close , or a File | Exit , we do so without saving the current document. We need to set a dirty flag whenever a change has occured and check this for each of these commands.

Browser View

We currently can't interactively display the XUL document in the browser. Currently you are required to save the XUL document so that the browser is able to view it by reading the file.

The <browser> element can display either HTML or XML/XUL code - using the "src" attribute in the <browser> element, or by using loadURI() method in script. It can also display HTML code - using a document.write(). But it is NOT able to display XML/XUL code - using a document.write(). The documentType by default is "text/html" and I have not yet found a way of being able to change this. (There is extensive scaffolding code in place in trying to solve this issue.)

Tree and <treeitem> Selection

This has been a real struggle. It's been difficult to dynamically make a selection in a tree. (see ElementTree.selectElement() in ElementExplorer.js.) There doesn't seem to be an easy way of doing this. We need to do this as a response to selecting the "active" element in some other view.

Currently we identify the selected item using tree.view.getCellText() and set the currentIndex by calling (How easy was that to figure out!) This is a kludge, however. It doesn't identify the "active" element if it is hidden in the tree and then we open the tree and make it visible.

Code View - Serialization

The code view does not properly represent the XUL document. Unfortunately, what you see in the code view is also what actually gets saved in a file when you save. The following are some of the known issues.

(* See Mozilla Issues - Serialization)

Code View - Parsing

The "update model" button doesn't do anything at this point. The code behind this is in place but doesn't work just yet.

XML Schema

XML Schema is used to define all XUL elements and attributes. Most of the code to do this is in place. The code currently can only read an XML Schema file with an absolute address. We also haven't been able to get evaluate() to work. In the meantime, we have turned off the code. We have left the completion of this for the next version - 0.50

Immutable Element Id

You can change the id of an element in the Attributes Inspector but that then corrupts the application. Any changes to an element's id needs to be communicated to all views containing the XUL document

Tree View Open States

The open/close states of each tree item's grippy isn't remembered and re-instated with each refresh.

(The ElementTree::update() method needs to re-instate the open states. The remembering code for this is there but the re-instate code has become broken).


The following are some cosmetic issues which have not yet been resolved

The xulmaker project can be contacted through the mailing list or the member list.
Copyright © 2000-2020. All rights reserved. Terms of Use & Privacy Policy.