The GRE and you.

Doug Turner <[email protected]> Fri, 20 Dec 2002 10:45:48 -0800
Newsgroups gmane.comp.mozilla.devel.embedding,gmane.comp.mozilla.builds
Organization Another Netscape Collabra Server User
Message-ID <[email protected]>
This includes an overview of some of the work that Chak, ssu, curt, and=20
I have been doing.  I wanted to get some feedback about both the general=20
direction and actual implementation.  This work is regarding the Gecko=20
Runtime Environment.  In the not so near future, there will be GRE's=20
sitting on endusers machines.  In fact, you can download a GRE from=20
ftp.mozilla.org today.  I would like to start letting the mozilla client=20
start using the GRE if it is installed and eventually install the GRE=20
with the mozilla client.

Before doing all of this there are few parts to this discussion that I=20
would like feedback for.

First I would like feedback on how we are going to find a GRE?  (Note=20
that this is just the default behavior.  Embedders can code up anything=20
they like =96 they can choose to use a private copy of the GRE shared onl=
y=20
between =91their=92 gecko applications or they can choose a different sea=
rch=20
order, ect.)  The basic idea is an embedding application starts up, it=20
looks around for where the GRE is, then it sets up its load library=20
paths, finally it dynamically loads XPCOM.  From this point, everything=20
else that embedders have been doing is exactly the same.

Currently, on windows, we store where a GRE is installed in the windows=20
registry file.  On nix, I have a patch with will store the equivalent=20
information in /etc/gre.conf (if you have other places I should check,=20
please let me know).  So that a user can run against a local GRE, I was=20
thinking about offering a $(HOME)/.gre.config file which would be=20
checked first.  The windows work (as well as a broad description of the=20
GRE) is described here:

http://www.mozilla.org/projects/embedding/MRE.html

I wrapped up all of the necessary loading logic into a library so that=20
it is easy for embedders to actually startup Gecko.  This bug describes=20
(in code) exactly what the format of the gre.conf file is.  The format=20
is really simple and extensible.  This work is being done here:

http://bugzilla.mozilla.org/show_bug.cgi?id=3D185681

The next idea that I wanted discussed was converting the mozilla=20
application (and also, viewer and other embedding applications) to use=20
the MRE if present.  What I am going to do is make the mozilla app use=20
the default startup code I mentioned above.  I have prototyped this=20
work, and for the most part everything seams to work fine.  When=20
everything is nailed down, I will post a patch to his bug:

http://bugzilla.mozilla.org/show_bug.cgi?id=3D173262

I would like to also change some of the testing tools.  Specifically, I=20
am going to make regxpcom a lot better.  It will no longer be tied to a=20
release, ie you will be able to have a copy of regxpcom in your bin/=20
directory if you wanted.  This work is here:

http://bugzilla.mozilla.org/show_bug.cgi?id=3D183075

The next thing is how the GRE is built and delievered.  I have asked=20
Chris Seawood to add explicit supported for the GRE in the makefiles.=20
This is similar to what we did to support the SDK exports.  Basically,=20
there will not be a separate packaging step to bundle the GRE.  It will=20
be built in mozilla/dist/gre.  For the time being, files will be=20
mirrored into dist/bin.  However, at some point in the future, I would=20
like to see dist/bin going away and instead a mozilla/dist/<app>, where=20
app is the directory that contains the current application your=20
building.  This may be phoenix, the mozilla client, ect.  (Details=20
haven=92t be worked out for how this is going to work, but the general=20
direction is that you pull or build the GRE and then build an=20
application on top of it.)  The work that Chris is doing is being=20
tracked here:

http://bugzilla.mozilla.org/show_bug.cgi?id=3D186241


Please send me feedback directly or comment in the bugs.


Thanks,

Doug Turner
[email protected]