Firefox 3 – XUL Application Runtime

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.

9 Replies to “Firefox 3 – XUL Application Runtime”

  1. So, what is the UP side to this approach vs. XULRunner? Just that you already have Firefox installed so the barrier to getting into XUL dev is lower? I’m just trying to understand why this “feature” is available…from your post it sounds like its not to be relied upon as its future is uncertain, there are down sides, and it has all the same stuff as XULRunner but not as much control. So, why does it exist?

    And thanks for the info!

  2. mawrya,
    For me, the reasons this is exciting include: the barriers are lower; I get a new Firefox build nightly and thus updated Gecko every day from the update channel; I’ve got too many Gecko runtimes on my machine as it is; I’ve got way too many EXEs on my computer. This lets me make little XUL apps to test features that seem broken in Firefox alphas. It’s also a quick way to fire up a browser that doesn’t use my profile without having to exit my running Firefox instance. Good stuff!

  3. If it’s such a good idea to run XUL apps off Firefox, and Firefox shares so much with XULrunner, why is Firefox 3 not running off XULrunner?

    I still remember the discussion about basing FF (and TB and SB) on XULrunner, and the very same objections people had against that are reasons why not to run XUL apps off Firefox.

    MozCo makes me scratch my head again and again lately. I don’t have much more hair to spare!

  4. M.J.G – Getting Firefox to run as a XULRunner application would take more work. There are pieces of code that would need to change and be tested. As I say in the post, we are not giving the ‘firefox -app’ approach a high priority. Therefore, we are also not giving Firefox-as-a-XULRunner-app a high priority at the moment either. This experiment will give us data to make future decisions.

  5. This sounds more like a bid to compete with Adobe Integrated Runtime and Silverlight. There have been calls to have XUL based apps for years, but it seems like things have been progressing more rapidly now that AIR and Silverlight (and JavaFX) are out.

  6. Noob questions: I can write applications that can run in Firefox, or, if I don’t need the “browser baggage,” can run in XulRunner, is that right? And I can use SVG and APNG, or are those some of the baggage (i.e., Firefox only)?

    I realize these are gross generalizations, but that’s what I need at this point.

    Ron

  7. Sorry, got answers on IRC: Yes, about anything that runs in FF will run in XulRunner, and vice-versa, and XulRunner supports SVG and APNG.

    Ron

Comments are closed.