Hi Steven,
your question is very complicated because you are basically asking us to
explain how the Mozilla browser works. Something that nobody has yet
achieved. And there is not much documentation available yet
unfortunately. The best thing you can do, imho, is to pre-order the book
"SAMS teach yourself Mozilla programming in 21 days", available from
amazon.com (no I did not write it and haven't even read it ;-)
http://www.amazon.com/exec/obidos/ASIN/0672321726/qid=999783462/sr=2-1/ref=aps_sr_b_1_1/002-5286361-4982458
It is scheduled for mid-november.
It is also a problem that mozilla is so big that nobody knows how
everything works. Most people start by looking at one component that
interests them (for me it was the DOM) then you slowly extend your
knowledge to other components.
I think the following is necessary to open mozilla and display the web
page of your example.
- NSPR
- Gecko:
- Layout engine for both HTML and XUL (if you use the UI that is)
- Parser
- Style system (since html is formatted using css internally)
- DOM if you want the browser UI to work
- XPCOM
- XPConnect and the JS engine (again if you want to use the UI)
- Necko (network engine) to download your web page off the web
- XPFE (the UI) (again if you want the UI to work)
there are probably things that I missed (I apologize in advance to the
people who work on those components), but my point is that you basically
need everything apart from the other programs (mailnews, editor, ...) to
display a webpage. And you need the editor if you want to display
textfields etc.
This is why it's so hard to quickly explain the "core" of Mozilla.
Everything works together, and if you remove something you're screwed.
If you don't need the UI, the embedding builds are a good example of
what is "necessary" just to render a web page.
I hope I did not do any mistake when answering this question, if I did
please correct me, thanks.
-Fabian.
Steven T. Hatton wrote:
> I am trying to get a foothold in the architecture of Mozilla. I have
> some understanding of what goes where, but I cannot seem to get a grasp
> of the fundamental core. If I stripped off every bell and every wistel
> and everything not needed to do this:
>
> hattons@hostname:~ > mozilla &
>
> and hit a page with
>
> <HTML><HEAD></HEAD><BODY><H1>hello world</H1></BODY><HTML>
>
> and see "hello world" in a window, what components of Mozilla would be
> remaining? I.e., what is the core of this beast? I know there is a NSPR
> sitting between the browser and the OS. What else is needed for the
> most basic functionality? Perhaps some of what I'm looking for is in
> the NSPR.
>
> This seems to be a barrier to entry into the wonderful world of hacking
> the Lizard. I suspect I'm not the only one who come to mozilla.org looks
> around and feels completely lost.
>
> Pictures! Show me pictures!
>
> _____________________
> | lots of cool stuff |
> | that provides mail, |
> | news, SSL, CSS, XUL |
> | etc. |
> |_____________________|
> ^ ^ ^ ^ ^
> | | | | |
> V V V V V
> _____________________
> | Something opens and |
> | closes windows, |
> | makes network |
> | connections |
> | and displays text, |
> | etc. |
> | What is this, and |
> | how does it work? |
> |_____________________|
> ^ ^ ^ ^ ^
> | | | | |
> V V V V V
> _____________________
> | NSPR Abstraction |
> | Layer. |
> |_____________________|
> ^ ^ ^ ^ ^
> | | | | |
> V V V V V
> _____________________
> |Operating System |
> |_____________________|
>
> Then list the interface methods without a lot of noise so we can see the
> essential elements of the components as they present themselves to their
> neighbors.
>
> Thanks for listening,
>
> Steven
>