Ryan Paul posted an article on ArsTechnica that describes how Firefox 3 will be able to run XUL-based applications. Since the news is starting to spread, I thought I’d try to put some information out before the guesses and rumors start to fly. Ryan’s article describes the feature rather well.
firefox -app application.ini
Yes, this is different than anything previous versions Firefox could do with XUL. Firefox 2 (and earlier releases) could launch XUL windows using the -chrome
command line flag. Firefox 3 will be able to launch full blown XUL applications – running in their own separate processes and separate profiles. Up until now, XULRunner was the only way to deploy XUL-based applications. Some relevant information:
- XULRunner is not going away. XULRunner is still the preferred way to deploy a XUL-based application. XULRunner gives the application developer full control over the runtime.
- Firefox and XULRunner share much of the same backend code. When I say much, I mean nearly everything. Firefox is now capable of running XUL-based applications using the same type of bootstrapping mechanism as XULRunner. Since they share so much code, it was fairly trivial to enable this feature. Here is the bug detailing the code.
- When using Firefox 3 to run XUL-based applications, keep in mind that you are at the mercy of the Firefox 3 runtime. If an upgrade to Firefox happens, it could possibly break your XUL-based application. This is the down-side of sharing runtimes. Therefore, be very careful when using Firefox 3 to run your XUL-based application. Such a problem would not happen when deploying your application with XULRunner.
If it seems like we don’t want to promote running XUL-based applications using Firefox 3 as the runtime – good! This is very experimental and there are down-sides. There are no current plans to expand or extend the feature.
On the other hand, feel free to experiment with it. Just because Mozilla may not have plans to extend the feature doesn’t mean that you can’t. I can visualize a Firefox extension that could be used to download and install small XUL-based applications to a profile folder. The extension could manage the applications like Firefox manages addons.
Hmmm, downloadable desktop applications built using XML and web technologies running on software you already have installed. Sounds kinda cool.
If you have questions about building XUL-based applications and how to use the runtimes, feel free to post to the newsgroup or, better yet, drop by the #xulrunner IRC channel (irc.mozilla.org) and talk to a real live human being.