Introduction to Gecko and Embedding

  • Revision slug: Mozilla_Embedding_FAQ/Introduction_to_Gecko_and_Embedding
  • Revision title: Introduction to Gecko and Embedding
  • Revision id: 117493
  • Created:
  • Creator: Varmaa
  • Is current revision? No
  • Comment added link to poweredby; 32 words added

Revision Content

 

Section 1: Introduction to Gecko and Embedding

What is Gecko?

Gecko is the browser engine, networking, parsers, content models, chrome and the other technologies that Mozilla and other applications are built from. In other words, all the stuff which is not application specific.

Gecko has a slightly out of date FAQ of its own.

What is Mozilla?

Mozilla is a cross-platform open-source web browser, editor and mail / news application built on top of Gecko.

What is the GRE?

The GRE (formally the MRE) is the Gecko Runtime Environment, a shared runtime that many apps can use. It is now being developed as a standalone project known as XULRunner.

What is XPCOM?

XPCOM is an object technology (similar to COM on MS Windows but cross platform) used to unify the creation, ownership, and deletion of objects and other data throughout Mozilla. The core of XPCOM is the nsISupports interface, which provides a contract of reference counting and runtime querying for capabilities. All XPCOM objects implement the nsISupports interface, in addition to any object-specific interfaces. Finally, XPCOM provides a language independent layer called XPConnect which allows objects implementation to be written in any supported language, and called from any supported language.

More information can be found here.

What does it mean to "embed" Gecko?

Gecko allows third party developers to use the same technology as found in Mozilla. That means you can embed a web browser inside a 3rd party application, open channels and streams through the network backend, walk through the DOM and so on. You can even construct whole new applications using chrome.

What are the license terms for embedding Gecko?

The same as for the rest of Mozilla. See the MPL page for more information.

Is there an SDK?

We are slowly working towards an SDK, freezing and documenting interfaces and reshaping the build process. For the time being we recommend you get the source and build from that.

The nightly builds of the SDK for Win32 may be found here.

What is the latest version? What version should I use?

Embedding builds and source tarballs are produced nightly and may be obtained here. If you require stability then Mozilla builds from the 1.7.x branch are currently recommended.

Who is using Gecko already?

See here for the growing list of software that embeds Gecko.

If you're building an application that uses Mozilla technology, we'd love to hear about it. Check out mozilla.org/poweredby for more information.

{{ languages( { "fr": "fr/FAQ_de_Mozilla_embarqu\u00e9/Introduction_\u00e0_Gecko_et_\u00e0_l\'embarqu\u00e9", "ja": "ja/Mozilla_Embedding_FAQ/Introduction_to_Gecko_and_Embedding" } ) }}

Revision Source

<p> </p>
<h2 id="Section_1:_Introduction_to_Gecko_and_Embedding" name="Section_1:_Introduction_to_Gecko_and_Embedding">Section 1: Introduction to Gecko and Embedding</h2>
<h3 id="What_is_Gecko.3F" name="What_is_Gecko.3F">What is Gecko?</h3>
<p>Gecko is the browser engine, networking, parsers, content models, chrome and the other technologies that Mozilla and other applications are built from. In other words, all the stuff which is not application specific.</p>
<p>Gecko has a slightly out of date <a href="/en/Gecko_FAQ" title="en/Gecko_FAQ">FAQ</a> of its own.</p>
<h3 id="What_is_Mozilla.3F" name="What_is_Mozilla.3F">What is Mozilla?</h3>
<p>Mozilla is a cross-platform open-source web browser, editor and mail / news application built on top of Gecko.</p>
<h3 id="What_is_the_GRE.3F" name="What_is_the_GRE.3F">What is the GRE?</h3>
<p>The GRE (formally the MRE) is the <a href="/en/GRE" title="en/GRE">Gecko Runtime Environment</a>, a shared runtime that many apps can use. It is now being developed as a standalone project known as <a href="/en/XULRunner" title="en/XULRunner">XULRunner</a>.</p>
<h3 id="What_is_XPCOM.3F" name="What_is_XPCOM.3F">What is XPCOM?</h3>
<p>XPCOM is an <em>object technology</em> (similar to COM on MS Windows but cross platform) used to unify the creation, ownership, and deletion of objects and other data throughout Mozilla. The core of XPCOM is the nsISupports interface, which provides a contract of reference counting and runtime querying for capabilities. All XPCOM objects implement the nsISupports interface, in addition to any object-specific interfaces. Finally, XPCOM provides a language independent layer called XPConnect which allows objects implementation to be written in any supported language, and called from any supported language.</p>
<p>More information can be found <a href="/en/XPCOM" title="en/XPCOM">here</a>.</p>
<h3 id="What_does_it_mean_to_.22embed.22_Gecko.3F" name="What_does_it_mean_to_.22embed.22_Gecko.3F">What does it mean to "embed" Gecko?</h3>
<p>Gecko allows third party developers to use the same technology as found in Mozilla. That means you can embed a web browser inside a 3rd party application, open channels and streams through the network backend, walk through the DOM and so on. You can even construct whole new applications using chrome.</p>
<h3 id="What_are_the_license_terms_for_embedding_Gecko.3F" name="What_are_the_license_terms_for_embedding_Gecko.3F">What are the license terms for embedding Gecko?</h3>
<p>The same as for the rest of Mozilla. See the <a class="external" href="http://www.mozilla.org/MPL/">MPL page</a> for more information.</p>
<h3 id="Is_there_an_SDK.3F" name="Is_there_an_SDK.3F">Is there an SDK?</h3>
<p>We are slowly working towards an SDK, freezing and documenting interfaces and reshaping the build process. For the time being we recommend you <a href="/En/Developer_Guide/Source_Code/Downloading_Source_Archives" title="En/Developer_Guide/Source_Code/Downloading_Source_Archives">get the source</a> and build from that.</p>
<p>The nightly builds of the SDK for Win32 may be found <a class="link-ftp" href="ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/nightly/latest-trunk/gecko-sdk-i586-pc-msvc.zip">here</a>.</p>
<h3 id="What_is_the_latest_version.3F_What_version_should_I_use.3F" name="What_is_the_latest_version.3F_What_version_should_I_use.3F">What is the latest version? What version should I use?</h3>
<p>Embedding builds and source tarballs are produced nightly and may be obtained <a class="link-ftp" href="ftp://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/latest-trunk/">here</a>. If you require stability then Mozilla builds from the 1.7.x branch are currently recommended.</p>
<h3 id="Who_is_using_Gecko_already.3F" name="Who_is_using_Gecko_already.3F">Who is using Gecko already?</h3>
<p>See <a href="/en/Roll_your_own_browser_-_An_embedding_HowTo" title="en/Roll_your_own_browser_-_An_embedding_HowTo">here</a> for the growing list of software that embeds Gecko.</p>
<p>If you're building an application that uses Mozilla technology, we'd love to hear about it. Check out <a class="external" href="http://www.mozilla.org/poweredby">mozilla.org/poweredby</a> for more information.</p>
<p>{{ languages( { "fr": "fr/FAQ_de_Mozilla_embarqu\u00e9/Introduction_\u00e0_Gecko_et_\u00e0_l\'embarqu\u00e9", "ja": "ja/Mozilla_Embedding_FAQ/Introduction_to_Gecko_and_Embedding" } ) }}</p>
Revert to this revision