Part of the mozilla2.0 project is providing generic support for running XUL applications. This has been known by various names, including the XRE and the apprunner. The current way to run a XUL application is to run mozilla.exe -chrome <url>. However, this is a poor solution for several reasons:
- Apps have little/no control over command-line param handling (the default handlers installed by the mozilla app are always active)
- Apps have little/no control over window icons.
- Apps have to use the mozilla profile, and have odd or no control over remoting (xremote/DDE/appleevents)
The solution to this is a dedicated program to run XUL apps. This “xulrunner” will run XUL applications, from the smallest one-file applications to the largest apps such as firefox and thunderbird.
The first steps for the apprunner will be basic. However, I (and others) intend to work the xulrunner to a feature-complete solution within the next six months. There are several feature requirements for a full-featured xulrunner:
- Apps must be able to integrate with the OS/shell in an cross-platform way. This includes file assocations and icons, “start menu” icons, and desktop/quicklaunch icons.
- Native uninstall support on windows.
- App must have the option of running with shared preferences for all gecko-based apps.
- The app will have the option of running with it’s own app-specific profile, or no profile at all.
- Finally, I’m doing a simple GUI builder/packager to automate the app-building process. As a first step this will not do GUI XUL editing, only “packaging/building” using a wizard-like interface.
As a second step, I would like to give the xulrunner the ability to run apps in a restricted security space. This might involve some major backend changes to how mozilla handles security contexts (more on this later).