Using the GRE

The term “GRE” is shrouded in mystery and especially on linux there is no good definition of what a GRE actually is (or was). I have written a couple of Mozilla Developer Center documents on how to use the GRE (dynamic linking and the standalone XPCOM glue), and how GREs are registered.

I’d like to make a few clarifications of terms that have been floating around:


Gecko Runtime Environment: the “platform” parts of Mozilla, which is registered with the operating system in such a way that embedders can dynamically link against it without knowing in advanced where it will be installed. This was shipped with the windows installers of Mozilla 1.4 to 1.7, but technically has never been shipped on Linux. Red Hat has shipped GRE-registration files that make the Mozilla installation into an embeddable GRE. XULRunner is the new product that will be the GRE.


XUL Runtime Environment: this is the term that was floated for a long time to be an framework to launch XUL applications. It has morphed into XULRunner, and there really isn’t any reason to use the term XRE any more (there never was anything that we shipped as an XRE).


XULRunner is a product that will serve as the installable Mozilla platform. It will be a GRE with embedding services, as well as a bootstrap mechanism for launching rich-client applications like Firefox. Firefox 3 will be built atop XULRunner and will be the primary distribution mechanism for XULRunner.


LibXUL is a implementation detail of XULRunner. It is a dynamic library containing all of “gecko”. The real benefits of libxul are that we only export frozen symbols from it, and that we can perform various optimizations such as minimizing the effects of the PLT.

Atom Feed for Comments 6 Responses to “Using the GRE”

  1. James Says:

    Firefox 3? Does this mean the third Firefox release (1.0, 1.5, 2.0), a release after 2.0, or that 2.0 has been renamed?

  2. Jonathan Says:

    You wrote that Firefox 3 will be built atop XULRunner. Is that a typo for Firefox 2.0 or am I missing something?

  3. Kroc Camen Says:

    Just a question, will the XRE/XULrunner mean that we can write *.xul files (or some kind of *.xulapp JAR) and if you double click on one it’ll appear as an application; sans-firefox around it? This would be great for quick application development.

  4. Benjamin Smedberg Says:

    James and Jonathan, the new Firefox roadmap will be out shortly, but there will be a Firefox 2 release, and I did mean Firefox 3.

    Kroc, yes. See the XULRunner documents on devmo (there are some very good 10-minute getting started guides).

  5. Jerry Says:

    What is the plan for embedding between now and when we reach the XULRunner/LibXUL Promised Land?
    I have an embedded app that lives in the MFCEmbed environment. I’d like to keep it in sync with the latest Firefox Gecko, but can’t build “suite” on that branch I can fool around and make something that builds, but it would be nice to use an official Gecko 1.8.

  6. Matthew Copeland Says:

    I have a similar question as Jerry. Will there be embeddable support for Gecko 1.8 in ActiveX containers? I would love to use it for a local completely self contained XHTML, CSS, SVG content engine. Mozilla ActiveX control 1.7.12 I believe is the last official release on the ActiveX control project page.

Leave a Reply