Changes

Jump to: navigation, search

Gecko

3,345 bytes added, 23:49, 5 October 2006
Definition
=Definition=A gecko is a small to large Japanese [http://en.wikipedia.org/wiki/Gecko lizard] that is found in warm climates. However, in the Mozilla context Gecko refers to the [http://en.wikipedia.org/wiki/Gecko_(layout_engine) browser layout engine. ] =What exactly is a layout engine?= In essence a layout engine is responsible for the following:* Formatting content such as images, text, HTML, and CSS and displaying them on the screen. In other words, it is responsible for defining the placement rules for documents by parsing them and formatting it accordingly in order to render it on the browser screen. It's functionality is so rich that it is even being used to layout the "Chrome" (i.e. menu bars, scroll bars etc.)  =What Gecko is:=
* open source free software (It was initially created by Netscape Corporation but now its development is stewarded by the Mozilla Foundation.)
* cross-platform (Windows, BSD, Linux and Mac OS X)
* The 2nd most popular layout engine after Trident (IE's layout engine).
=What Gecko supports=
Gecko supports the following open internet standards:
* Hyptertext Markup Language (HTML) v4.0
* Scalable Vector Graphics (SVG)
* Resource Description Framework (RDF)
Background=When would one want to use Gecko?=Gecko solves a problem faced by developers looking to render html, css and most other web content in within their applications. Gecko provides a rich standards compliant interface, which relieves the developer of the heavy lifting with respect to page rendering. Developers simply need to embed Gecko within their apps to harness its power. Detailed information, tutorials, examples and frequently asked questions relating to getting started with Gecko and embedding it within applications can be found within the [http://developer.mozilla.org/en/docs/Embedding_Mozilla Embedding Mozilla] section of the [http://developer.mozilla.org/ Mozilla Development Center] =How does it work?=Gecko uses the Document Object Model (DOM) which provides a set of interfaces (available for both C/C++ and JavaScript) implemented by the NGLayout content model allowing for the insertion, deletion and modification of HTML content. These interfaces can be accessed by programmers via the Cross Platform Component Object Model (XPCOM). XPCOM allows for the modularization of large projects into into smaller manageable pieces called components as well as for the creation of interfaces (IDL's via XPIDL). Gecko uses the following subsystems to accomplish its objectives: =====Parsing====The Gecko parser provides the first steps required for the browser to display web pages. Despite being optimized to parse HTML the parser use is written in C++ not limited to this type of data. The parsing engine transforms a source document from one form into another. In the case of HTML, it transforms the hierarchy of HTML tags (the source form) into a form that the underlying layout and offers display engine requires (the target form). ====Rendering====This portion is responsible for displaying "bits" on output devices. These include the standard graphical primitives such as lines, rects, bitmaps, text, etc.  ====Layout====The layout portion is comprised of a rich programming API allowing set of classes that implement the HTML layout semantics. In other words it translates what the tags mean so that the required actions can be performed to support a variety render them properly. ====Style====The style portion is responsible for the mapping and management of nternet related applicationsstyle data (i.e. CSS) But what exactly is onto document content in a layout engine? given presentation.  An overview of these and what does it do?the various other components can be found in the [http://www.mozilla.org/newlayout/overview.html Gecko(NGLayout) Project Overview]or in the [http://www.mozilla.org/newlayout/doc/ Layout Engine Technical Documentation]
Well=Contributors=[[User:RichardChu|Richard Chu]] & [[User:Sherman|Sherman Fernandes]]=References=*[http://en.wikipedia.org/wiki/Gecko_(layout_engine) Wikipedia - Gecko_(layout_engine)]*[http://wiki.mozilla.org/Gecko:Home_Page Gecko Home Page]*[http://www.mozilla.org/newlayout/ Mozilla Layout Engine]*[http://www.mozilla.org/newlayout/doc/ Layout Engine Technical Documentation]
1
edit

Navigation menu