During development we use CVS in "xulmaker.mozdev.org" to store all our source (including "xulmaker.mozdev.org" web pages). The "sandbox" on our development machine reflects the directory structure in CVS.
The directory structure reflects the requirements for a "chrome:" application. This is the packaging for XULMaker in development mode. (Note that this is not a jar file.)
Installing for development is essentially a registration process.
We have registered the XULMaker application - development mode, by making entries in the "installed-chrome.txt" file in Mozilla's "chrome" directory. For example, we have Mozilla installed on our development machine at "E:/Program_Files/mozilla.org/Mozilla_1-0-1/" which has the "chrome/" directory - the registration file is "E:/Program_Files/mozilla.org/Mozilla_1-0-1/chrome/installed-chrome.txt". And we have our sandbox at "D:/Project_Files/mozilla/xulmaker/"
The entries in the "installed-chrome.txt" are as follows:
Each of these directories contains an appropriate "contents.rdf" file that is used by Mozilla upon startup to perform the registration.
What actually happens is that Mozilla reads the installed-chrome.txt
file
upon startup (each time), and creates a chrome.rdf
file. (You need to remove
the chrome.rdf
file to ensure that any changes in the installed-chrome.txt
file take affect. Changes do happen under some circumstances but, not knowing what they
are, the easiest thing to do is to simply remove the file and let the system re-create it.)
It's also important to note that locales and skins refer to packages that are defined in content. As such, you can't have a locale or a skin without a content
To run the XULMaker application we have created a desktop icon, a copy of the mozilla icon, and have modified its properties to execute with the xulmaker chrome. This is equivalent to giving this as a DOS command. The command is as follows:
"E:\Program Files\mozilla.org\Mozilla\mozilla.exe" -chrome chrome://xulmaker/content/
(We frequently need to bring up the Task Manager to kill any remnants of a running "mozilla.exe" before we can successfully launch XULMaker. This ensures that any caches are flushed and we are truelly running the application as we have just modified.)
We use XPIMaker to create "chrome:" packages. XPIMaker originally comes from XUL Planet. (This link is not given anywhere in XUL Planet so be prepared to loose it here. We will publish a (corrected?) copy if and when it disappears from XULPlanet.)
We use the sandbox files to create a deployed package.
chrome:
ApplicationThe following identifies various ways of launching the XUL Maker application as a local chrome application. Each of these
methods assumes that xulmaker
is already registered as a chrome application. (see Installation.)
chrome://xulmaker/content/
"
or "chrome://xulmaker/content/xulmaker.xul
""mozilla -chrome chrome://xulmaker/content/"
.
There are several ways of doing this.
chrome:
ApplicationInstead of using the chrome:
protocol we launch the application
using the file:
protocol to run locally
or the http:
protocol to run remotely.
In either case, security protocol blocks certain behaviour that is not an issue
when running locally as a chrome:
application.