1 <!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN">
4 <title>Embedding distribution information
</title>
10 <p>This is the Embedding distribution of
<a
11 href=
"http://www.mozilla.org/">Mozilla
</a>. It serves as a reference
12 and smoketest distribution to demonstrate a typical subset of Mozilla
13 needed to embed it into another application. The distribution contains
14 sample applications for testing and development purposes.
</p>
16 <p>Please note the phrase
<i> typical subset
</i>! If you want to use a different
17 subset then see the
<a href=
"#cust">customizing the embedding distribution
</a>
20 <h2>Where can I find more information about embedding?
</h2>
22 <p>Mozilla.org -
<a href=
"http://www.mozilla.org/">http://www.mozilla.org/
</a>.
</p>
24 <p>The Embedding project page -
<a
25 href=
"http://www.mozilla.org/projects/embedding/">http://www.mozilla.org/projects/embedding/
</a>.
26 This page should serve as your main point of information for learning
27 how to embed Mozilla in your own applications.
</p>
29 <p>The Embedding Frequently Asked Questions (FAQ) page -
<a
30 href=
"http://www.mozilla.org/projects/embedding/faq.html">http://www.mozilla.org/projects/embedding/faq.html
</a>.
</p>
32 <p>The Embedding newsgroup -
<a
33 href=
"news:netscape.public.mozilla.embedding">news:netscape.public.mozilla.embedding
</a>.
</p>
35 <p>The Embedding QA page -
<a
36 href=
"http://www.mozilla.org/quality/embed/">http://www.mozilla.org/quality/embed/
</a>.
</p>
38 <p>Instructions for building Mozilla (including Embedding) -
<a
39 href=
"http://www.mozilla.org/build/">http://www.mozilla.org/build/
</a>.
</p>
41 <p>Instructions for fetching Mozilla source code (including Embedding) -
<a
42 href=
"http://www.mozilla.org/source.html">http://www.mozilla.org/source.html
</a>.
</p>
46 <p>The distribution contains, libraries, resources and chrome. All of this
47 is a subset of Mozilla, repackaged for embedding. The layout follows
48 the usual Mozilla directory, i.e.
</p>
51 <li>./ - Test applications, launch scripts and core libraries (xpcom,
53 <li>./components/ - XPCOM components (network, graphics, layout,
55 <li>./chrome/ - chrome files. In embedding most of the chrome has
56 been re-packaged into a single embed.jar file to make it more manageable.
</li>
57 <li>./res/ - miscellaneous rendering and parser files.
</li>
58 <li>./defaults/ - default preference settings
</li>
66 <p>A simple browser application built using the GTK+ Browser Widget.
</p>
68 <h4>GTK+ Browser Widget
</h4>
70 <p>A GTK+ widget for embedding Mozilla into GTK+/GNOME applications such as
71 <a href=
"http://galeon.sourceforge.net/">Galeon
</a>. More information
72 about the widget may be found here
<a
73 href=
"http://www.mozilla.org/unix/gtk-embedding.html">http://www.mozilla.org/unix/gtk-embedding.html
</a>.
80 <p>A complete browser application written in MFC and the Gecko embedding APIs.
81 This application demonstrates and exercises the functionality necessary
82 to put together a fully featured browser using Gecko.
</p>
84 <h4>Mozilla ActiveX Control
</h4>
86 <p>An ActiveX browser control built with the embedding APIs. You may use the
87 control to embed a browser inside applications written in VB, Delphi
88 etc. More information about the control including installation instructions
89 may be found at
<a href=
"http://www.iol.ie/%7Elocka/mozilla/mozilla.htm">http://www.iol.ie/~locka/mozilla/mozilla.htm
</a>.
94 <p>PPEmbed is built as part of the standard Mac embedding build. Work on
<a
95 href=
"http://www.mozilla.org/ports/fizzilla/Mach.html">Fizilla Mach
</a>
96 may also yield a Mac embedding distribution in the future.
</p>
98 <h2>Installation and Usage
</h2>
103 <li>Untar the embedding distribution into an empty directory of your
105 <li>From the command-line, cd into the directory and type
106 './run-mozilla.sh ./TestGtkEmbed'
</li>
113 <li>Unzip the embedding distribution into an empty directory of your
115 <li>Double-click on mfcembed.exe
</li>
119 <h2><a name=
"cust">Customizing the embedding distribution
</a></h2>
121 <p>The embedding distribution is produced by first building the full Mozilla
122 source and cherry picking files and chrome into a separate embedding
123 directory. Basically the steps are:
</p>
126 <li>Build Mozilla as usual
</li>
127 <li>cd mozilla/embedding/config
</li>
131 <p><strong>Note:
</strong> When using an objdir, cd into
132 <objdir
>/embedding/config instead, and run make there.
</p>
134 <p>The embedding distribution will appear in mozilla/dist/Embed.
</p>
136 <p>The build process works by reading a file called basebrowser-win (or
137 basebrowser-unix, basebrowser-mac-macho etc.) and copying the listed files
138 from mozilla/dist/bin into mozilla/dist/Embed. It then reads a file called
139 embed-jar.mn and repackages the specified chrome files and directories
140 into a single embed.jar.
<br>
143 <p>This process can be customized in one of two ways:
<br>
147 <li>Edit basebrowser-foo (where foo = win, unix etc.) and remove/add the
148 items you require
</li>
149 <li>Create a new file called client-foo and add the items you require.
150 This file is detected by the build process and will be run
<i>after
</i> the
151 contents of basebrowser-foo have been copied.
</li>
154 The latter is the best probably approach to take since the embedder can
155 maintain these files without modifying ones in Mozilla
<i></i>. The client-foo
156 file allows embedders to specify files to be added or removed from the
157 default embedding distribution. A minus sign in front of a filename
159 <p>For example if you wanted a distribution containing extra character converters,
160 but not the ActiveX control and not XMLExtras you might define a client-win
163 <pre>[Embed]
<br>components\ucvja.dll
<br>components\ucvko.dll
<br>components\ucvcn.dll
<br>components\ucvtw.dll
<br>components\ucvtw2.dll
<br>components\ucvibm.dll
<br>-mozctl.dll
<br>-mozctlx.dll
<br>-components\xmlextras.dll
<br>-components\xmlextras.xpt
<br></pre>