p.r bharat raj and jinu mathew abstract:
TRANSCRIPT
-
8/14/2019 p.r Bharat Raj and Jinu Mathew Abstract:
1/8
GECKO
P.R BHARAT RAJ AND JINU MATHEW
Abstract: Gecko is the open source, free softwareweb browser layout engine used in all Mozilla-
branded software and its derivatives, including
later Netscape releases. Written in C++, Gecko is
designed to support open Internet standards.
Originally created by Netscape Communications
Corporation, its development is now overseen by
the Mozilla Foundation. Gecko offers a rich
programming API that makes it suitable for a
wide variety of roles in Internet enabled
applications, such as web browsers, content
presentation and client/server [1]. Primarily it is
used by Mozilla browser derivatives, such as
Mozilla Firefox, K-Meleon and Netscape, torender websites and the browser user interface
(written in XUL), but it is used elsewhere as well.
Gecko is cross-platform and works on a number
of different operating systems, including
Microsoft Windows, BSD s, GNU/Linux and Mac
OS X.Gecko is generally considered to be the
second most-popular layout engine on the Web,
after Trident (used by Internet Explorer for
Windows since version 4), and followed by
KHTML (used by Konqueror), WebCore (used by
Safari), Presto (used by Opera) and Tasman (used
by Internet Explorer for Mac).
Index Terms: Open source software, Mozilla firefox,Layout engine, Web browser
I. INTRODUCTION
Firefox is an open source cross-platform
web browser developed by the Mozilla Corporation.
Firefox has rich web browsing features which include
Tabbed Browsing,Spell Checking, Search
Suggestions, Session Restore, Web Feeds (RSS),
Live Titles,Integrated Search, Live Bookmarks, Pop-up Blocker, Streamlined Interface, and Accessibility.
This manuscript prepared by
*Guide, Faculty Department of Computer Science and
Engineering, Sahrdaya College of Engineering & Technology,
Kodakara.**Final year student, Department of Computer Science and
Engineering, Sahrdaya College of Engineering & Technology,
Kodakara.
Another important feature of Firefox is that it can becustomized by extensions, themes, and advanced
preferences. Firefox is built on top of Mozillasapplication platform and reusable components. For
example, the Firefox project is built on Gecko which
is also used in other Mozilla projects, such as
Camino.
The conceptual architecture of Mozilla
Firefox is developed based on the reference
architecture of Mozilla browser. The reference
architecture of Mozilla browser (see Figure 1.) shows
fundamental subsystems and relationships between
them. Mozilla Firefox fundamental subsystemsinclude User Interface, Browser Engine, Rendering
Engine, Networking, XML Parser, JavaScript
Interpreter, and Data Persistence. User Interface is
the layer between the user and the browser. The web
addresses are sent to the Browser Engine. Browser
Engine and Rendering Engine read web contents
which are written in languages like HTML, CSS,JavaScrip, and then render it and display it to the
user.
Fig.1: Reference Architecture of Mozilla Browser
-
8/14/2019 p.r Bharat Raj and Jinu Mathew Abstract:
2/8
In Firefox conceptual architecture, the
layout engine is called Gecko. Gecko itself is a
browser engine, as well as a rendering engine. It talks
to other components, such as networking, XML
Parser, and so on. Figure 1 shows that the DisplayBackend is composed of GTK+ Adapter and GTK+ /
X11 Libraries. This is a specific Mozilla applicationwhich is running on Linux operating system. Mozilla
Firefox is a crossplatform browser.
Fig. 2: Conceptual Architecture of Mozilla Firefox
Geckois a layout engine currentlydeveloped by Mozilla Corporation, known as thelayout engine of the Firefox web browser, MozillaApplication Suite, Nvu, Mozilla
Thunderbird and many more. It is designed tosupport open Internet standards, and is used byapplications such as MozillaFirefox, Camino, Flock, Sea Monkey, K-Meleon, Netscape 9, Lunascapeand Epiphany to display web pages and, insome cases, an application's user interface itself(by rendering XUL). Gecko offers a rich
programming API that makes it suitable for a widevariety of roles in Internet-enabled applications, such
as web browsers, content presentation, and
client/server.Development originatedwith Netscape CommunicationsCorporation, but soon moved to the MozillaFoundation for the Mozilla application suite,and now used in many applications developed byMozilla Foundation and or the MozillaCorporation, as well as many other open sourcesoftware projects. It was also used in
laterNetscape Navigator releases.
Gecko is written in C++ and is cross-platform, and runs on various operatingsystems including BSDs, Linux, Mac OS
X, Solaris, OS/2,AIX, OpenVMS,and Microsoft Windows. Its development is nowoverseen by the Mozilla Foundation. Licensed by
a tri-licenseof the Mozilla PublicLicense (MPL), GNU General PublicLicense (GPL) and GNU Lesser General
Public License (LGPL), Gecko is free andopen source software.
Gecko is the second most-popular layout
engine on the World Wide Web,afterTrident (used by Internet Explorer forWindows since version 4), and followed
by WebKit (used by Safari & Google Chrome)and Presto (used by Opera).
II. USER INTERFACE
The User Interface (UI) of the Mozilla
browser (Firefox 2.0) is one major layer between the
users and the browser/rendering engine (GECKO). It
provides various features such as bookmarking web
pages, setting internet preferences, visualizing web
pages, and downloading files, etc.
The User Interface is split over two
subsystems allowing for parts of it to be reused in
other applications in the Mozilla suite such as the
mail/news client. Mozillas Cross-Platform Front End(XPFE) is a development environment based upon
XUL to make Mozilla applications like Firefox or
Thunderbird.
Fig. 3: User Interface Conceptual Architecture
The whole XPFE framework is made up of
the following parts:
1. XUL - xml language that describes the user
interface
2. CSS used for customizing or decorating the
user interface
3. JavaScript used for linking andprogramming the interface components
4. XBL(eXtensible Binding Language)
defines re-useable XUL components
-
8/14/2019 p.r Bharat Raj and Jinu Mathew Abstract:
3/8
5. XPCom/XPConnect interfaces XPFE with
binary code (C/C++, etc)
6. XUL templates framework for importing
data
-
8/14/2019 p.r Bharat Raj and Jinu Mathew Abstract:
4/8
7. RDF (resource description framework)
retrieves and stores data
8. DTD foreign localization
9. XPInstall standard installer for XPFE
applications
Most components in Firefoxs UI are createdby using XUL and HTML 4.0 and are decorated by
CSS1 and CSS2. XUL stands for XML User
Interface Language which is supported by Gecko, the
core browser/rendering engine of Firefox 2.0. XUL is
a Mozillas XML-based technology that allows users
to customize the existing interface components orcreate different types of cross-platform user
interfaces that connect or disconnect from the
internet. (Mixture of HTML, CSS, JavaScript, and
XML)
XUL provides users abilities to create the
following user interface elements:
Toolbars with buttons or other content
Menus on a menu bar or pop up menus
Tabbed dialogs
Trees for hierarchical or tabular information
Keyboard shortcuts
The User Interface interacts with Gecko,
which is the heart of the Mozilla framework.Gecko is
cross-platform browser/rendering engine that is used by Mozilla for interpreting and displaying web
content. The user interface elements are created and
defined in XUL and rendered by Gecko.
III. GECKO
Gecko is Firefoxs rendering and layout
engine. It is responsible for parsing and rendering
HTML and XML documents, as well as the XUL-
defined user interface. Gecko is comprised of the
following components:
HTML Parsers:
This component is responsible for parsing
HTML documents.
Content Model:
The content model arranges parsed
document data into a tree structure based on
the Document Object Model (DOM). Callsto any of the DOM APIs will modify the
Content Model.
Style System:
The Style System is responsible for parsing
CSS data.
Image Loader:
This component loads image data.
Frame System:
This component places the Content Models
DOM elements into frames, and uses theStyle Systems style information to calculate
the size of each frame. This size informationis used to arrange the frames into a new tree
whose structure represents the visual layout
of document. Items in the Frame Tree retain
pointers to their corresponding items in the
Content Model, so any change to the
Content Model will also produce change inthe Frame Tree.
Graphics Interface:
Gecko contains a platform-specific interface
for instructing the native OS to draw
information on the screen.
Fig. 4: Gecko Conceptual Architecture
IV. DATA FLOW INSIDE GECKO
HTML data comes into Gecko either from
the network or a local source. The first thing that
happens is that it is parsed, using Gecko's own
HTML parser. Then the Content Model arranges thisparsed data into a large tree. The tree is also known
as the "Document" and its structure is based on the
W3C Document Object Model. Any use of DOMAPIs manipulates the data in the Content Model.
-
8/14/2019 p.r Bharat Raj and Jinu Mathew Abstract:
5/8
Next the data is put into frames using CSS
and the Frame Constructor. A frame in this sense
(which is not the same thing as an HTML frame) is
basically an abstract box within which a DOM
element will be displayed. This process produces a
-
8/14/2019 p.r Bharat Raj and Jinu Mathew Abstract:
6/8
Frame Tree, which, like the Content Model, is a tree
of data, but this time focused not on the logical
relationship among the elements but on the
underlying calculations needed to display the data. In
the beginning a frame has no size. Using CSS rulesspecifying how the elements of the DOM should look
when they are displayed, including information likefont type or image size, the eventual size of each
frame is calculated. Because the same data may need
to be displayed in different ways -- to a monitor and
to a printer, for example -- a particular Content
Model may have more than one Frame Tree
associated with it. In such a case, each individualFrame Tree would belong to a different
"presentation" mode.
Fig. 5: Data flow within Gecko
Calculations continue as new informationflows into the system using a process called reflow.
As information in the Frame Tree changes, the
section of the Frame Tree involved is marked "dirty"
by the Frame Constructor. Reflow repeatedly steps
through the tree, processing every "dirty" item it
encounters until all the items it encounters are
"clean". Every item in the Frame Tree has a pointer
back to its corresponding item in the Content Model.
A change in the Content Model, say through using
the DOM APIs to change an element from hidden tovisible, produces an equivalent change in the Frame
Tree. It's important to note that all of these operationsare purely data manipulations. Painting to the display
itself is not yet involved at this point.
The next stage is the View Manager. With a
few small exceptions that have to do with promptingthe Frame Constructor to load graphics, the View
Manager is the first place in the process that accesses
the native OS. Delaying OS access until this point
both helps Gecko to run more quickly and makes
cross-platform issues easier to deal with. The View
Manger is the place where Gecko figures out where
on the display the data will need to be drawn. It then
tells the system that that area is "invalid" and needs tobe repainted. The actual painting is managed by the
gfx sub module, while other low-level systemoperations are run through the widget sub module,
which handles things like platform specific event
(mouse clicks and so forth) processing loops and
accessing system defaults (colors, fonts, etc.) Both
gfx and widget are system specific.
V. COMPARISON OF LAYOUT ENGINES
The following tables compare general andtechnical information for a number of layout engines.
Table 1: General Information
Engine Creator Softwar
e
license
Leading
application
Gecko Netscape/
MozillaFoundatio
n
MPL/G
NUGPL/G
NU
LGPL tr
i-license
Mozilla
Firefox
GtkHTML
(Based onKHTML)
GNOME GNU
LGPL
Novell
Evolution
iCab Alexander
Clauss
Propriet
ary
iCab
KHTML KDE GNU
LGPL
Konqueror
Presto Opera
Software
Propriet
ar
Opera
Prince
XML
YesLogic
Pty Ltd
Propriet
ary
Prince
XML
Robin Ritlabs Propriet The Bat!
Tasman Microsoft Propriet
ar
Microsoft
Entoura eTrident Microsoft Propriet
ary
Internet
Explorer
WebKit (B
ased on
KHTML)
WebKit
Foundatio
n
GNU
LGPL,
BSD-style
Safari, Goo
gle Chrome
http://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engines -
8/14/2019 p.r Bharat Raj and Jinu Mathew Abstract:
7/8
Table 2: Release History
Engine
Firstpublic
release
Firststablerelease
Lateststablerelease
Date
Versi
on
Dat
e
Ver
sion Date
Versio
n
Gecko
December7,199
8
"Preview"
March
19,1999
M3June11, 2009
1.9.0.11
GtkHTML
2000 ? 2000 ?
January
14,2008
3.17.5
iCab 1998 ? 1998 ?
January
1,2008
3.0.5
KHTML
October
2000?
October
2000?
May6, 2009
4.2.3
Presto
November13,20
02
7.0beta
1
January28,2003
7.0
March
3, 2009
2.2.2
Prince
XML
April,2003
1.0April
,2003
1.0Janua
ry,2008
6.0
Robin
April27, 2000
1.32April27, 2000
1.32
December27,20
06
3.95
Tasman
March
27, 2000
0
March
27,2000
0May11, 2004
1.0
Trident
April1997
IOctober
1997I
March
19, 2009
4.0
WebKit
January
7, 2003
48June23, 2003
85 -SVN versiononly
Operating System Support
The operating systems theengines can run on without emulation.
Table 3: Operating System support
Engin
e
Windo
ws
Mac
OSX
Linux BSD Unix
GeckoYes Yes Yes Yes Yes
GtkHTML
Yes Yes Yes Yes Yes
iCab NoTerminated(3.03)
No No No
KHTML
Yes Yes Yes Yes Yes
Presto Yes Yes Yes Yes Yes
Prince XML
Yes Yes Yes Yes No
Robin Yes No No No No
Tasman
No Yes No No No
Trident
YesDropped(4.0)
No NoDropped(5.0)
WebK
it
Yes Yes Yes Yes Yes
Although dropped in current version, older
versions of the Gecko layout engine for Mac
OS 9 are still available for download from
Netscape's Archived Products site.
Most of WebKit runs natively on Windows,
Safari 3.1 provides support for previously non-
ported features such as SVG, Canvas, andplugins.
VI. ADVANTAGES
Gecko is the smart embedding choice. It is
quick, robust, and highly standards compliant. In its
Mozilla and Netscape incarnations, it has been
widely distributed and very well reviewed.
It is Open Source. Unlike other embeddingchoices, all of Gecko's source code is freely available
http://en.wikipedia.org/wiki/March_19http://en.wikipedia.org/wiki/March_19http://en.wikipedia.org/wiki/March_19http://en.wikipedia.org/wiki/1999http://en.wikipedia.org/wiki/1999http://en.wikipedia.org/wiki/June_11http://en.wikipedia.org/wiki/June_11http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/January_14http://en.wikipedia.org/wiki/January_14http://en.wikipedia.org/wiki/January_14http://en.wikipedia.org/wiki/2008http://en.wikipedia.org/wiki/2008http://en.wikipedia.org/wiki/January_1http://en.wikipedia.org/wiki/January_1http://en.wikipedia.org/wiki/January_1http://en.wikipedia.org/wiki/2008http://en.wikipedia.org/wiki/2008http://en.wikipedia.org/wiki/May_6http://en.wikipedia.org/wiki/May_6http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/January_28http://en.wikipedia.org/wiki/January_28http://en.wikipedia.org/wiki/January_28http://en.wikipedia.org/wiki/2003http://en.wikipedia.org/wiki/2003http://en.wikipedia.org/wiki/March_3http://en.wikipedia.org/wiki/March_3http://en.wikipedia.org/wiki/March_3http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/April_27http://en.wikipedia.org/wiki/April_27http://en.wikipedia.org/wiki/2000http://en.wikipedia.org/wiki/2000http://en.wikipedia.org/wiki/December_27http://en.wikipedia.org/wiki/December_27http://en.wikipedia.org/wiki/December_27http://en.wikipedia.org/wiki/2006http://en.wikipedia.org/wiki/2006http://en.wikipedia.org/wiki/March_27http://en.wikipedia.org/wiki/March_27http://en.wikipedia.org/wiki/March_27http://en.wikipedia.org/wiki/2000http://en.wikipedia.org/wiki/2000http://en.wikipedia.org/wiki/BSDhttp://en.wikipedia.org/wiki/Unixhttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Gecko_(layout_engine)http://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/GtkHTMLhttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/ICabhttp://en.wikipedia.org/wiki/KHTMLhttp://en.wikipedia.org/wiki/KHTMLhttp://en.wikipedia.org/wiki/Presto_(layout_engine)http://en.wikipedia.org/wiki/Presto_(layout_engine)http://en.wikipedia.org/wiki/Prince_XMLhttp://en.wikipedia.org/wiki/Prince_XMLhttp://en.wikipedia.org/w/index.php?title=Robin_(layout_engine)&action=edit&redlink=1http://en.wikipedia.org/wiki/Tasman_(layout_engine)http://en.wikipedia.org/wiki/Tasman_(layout_engine)http://en.wikipedia.org/wiki/Trident_(layout_engine)http://en.wikipedia.org/wiki/Trident_(layout_engine)http://en.wikipedia.org/wiki/WebKithttp://en.wikipedia.org/wiki/WebKithttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://c/Documents%20and%20Settings/Administrator/Desktop/Comparison%20of%20layout%20engines%20-%20Wikipedia,%20the%20free%20encyclopedia.htm##http://en.wikipedia.org/wiki/Comparison_of_layout_engineshttp://en.wikipedia.org/wiki/March_19http://en.wikipedia.org/wiki/March_19http://en.wikipedia.org/wiki/March_19http://en.wikipedia.org/wiki/1999http://en.wikipedia.org/wiki/1999http://en.wikipedia.org/wiki/June_11http://en.wikipedia.org/wiki/June_11http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/January_14http://en.wikipedia.org/wiki/January_14http://en.wikipedia.org/wiki/January_14http://en.wikipedia.org/wiki/2008http://en.wikipedia.org/wiki/2008http://en.wikipedia.org/wiki/January_1http://en.wikipedia.org/wiki/January_1http://en.wikipedia.org/wiki/January_1http://en.wikipedia.org/wiki/2008http://en.wikipedia.org/wiki/2008http://en.wikipedia.org/wiki/May_6http://en.wikipedia.org/wiki/May_6http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/January_28http://en.wikipedia.org/wiki/January_28http://en.wikipedia.org/wiki/January_28http://en.wikipedia.org/wiki/2003http://en.wikipedia.org/wiki/2003http://en.wikipedia.org/wiki/March_3http://en.wikipedia.org/wiki/March_3http://en.wikipedia.org/wiki/March_3http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/2009http://en.wikipedia.org/wiki/April_27http://en.wikipedia.org/wiki/April_27http://en.wikipedia.org/wiki/2000http://en.wikipedia.org/wiki/2000http://en.wikipedia.org/wiki/December_27http://en.wikipedia.org/wiki/December_27http://en.wikipedia.org/wiki/December_27http://en.wikipedia.org/wiki/2006http://en.wikipedia.org/wiki/2006http://en.wikipedia.org/wiki/March_27http://en.wikipedia.org/wiki/March_27http://en.wikipedia.org/wiki/March_27http://en.wikipedia.org/wiki/2000http://en.wikipedia.org/wiki/2000http://en.wikipedia.org/wiki/BSDhttp://en.wikipedia.org/wiki/Unixhttp://en.wikipedia.org/wiki/Gecko_(layout_engine)http://en.wikipedia.org/wiki/GtkHTMLhttp://en.wikipedia.org/wiki/GtkHTMLhttp://en.wikipedia.org/wiki/ICabhttp://en.wikipedia.org/wiki/KHTMLhttp://en.wikipedia.org/wiki/KHTMLhttp://en.wikipedia.org/wiki/Presto_(layout_engine)http://en.wikipedia.org/wiki/Presto_(layout_engine)http://en.wikipedia.org/wiki/Prince_XMLhttp://en.wikipedia.org/wiki/Prince_XMLhttp://en.wikipedia.org/w/index.php?title=Robin_(layout_engine)&action=edit&redlink=1http://en.wikipedia.org/wiki/Tasman_(layout_engine)http://en.wikipedia.org/wiki/Tasman_(layout_engine)http://en.wikipedia.org/wiki/Trident_(layout_engine)http://en.wikipedia.org/wiki/Trident_(layout_engine)http://en.wikipedia.org/wiki/WebKithttp://en.wikipedia.org/wiki/WebKit -
8/14/2019 p.r Bharat Raj and Jinu Mathew Abstract:
8/8
and fully customizable. You can tinker and tweak as
much as you need. Yet, depending on the license
chosen, it is quite possible to use Gecko as a
component in what is otherwise a fully proprietary
commercial product.
Because Gecko is associated with theMozilla project, there are many resources available to
assist the embedding effort. The Mozilla web site,
has an embedding project area. There is a newsgroup,
mozilla.dev.embedding, focussed on exchanging
information amongembedders, as well as a numberof other related newsgroups. A complete cross-
reference for the codebase is available, and filing,
following the progress of, and helping to fix any bugs
is made simple through the Bugzilla bug database.
Gecko is also architected from the ground
up to be cross-platform. Directly from mozilla.org, it
runs on Wintel, Mac OS 9.0 and OS X, and Linux,
and there are third-party ports to a number of other
platforms.
Finally, licensing Gecko is royalty-free,even if the final application is an otherwise
proprietary commercial product.Verygenerally, any
modifications of the original Mozilla-supplied source
code (but not the code in which it is embedded) must
be returned to the community, that same original
code must be made available to the application's
users (often by a link to the mozilla.org website), andthe application must indicate in some obvious way(for example, a logo on the box or on the About:
page) that the product embeds Gecko. Exact
descriptions of the possible licensing arrangements
are presented atMozilla & Netscape Public Licenses,
which is the only legally complete source for
licensing information.
VII.CONCLUSION
Gecko provides access to the Web via NFS,
allowing Web pages to be named, accessed, andcached as are Unix files. Standard Unix applications
such ascat and grep can be used to manipulate pages,
eliminating the need for new "Web aware"
applications. NFS provides cache consistency
between clients and the Gecko server, ensuring that
all applications using Gecko system see the same
version of a page. NFS also improves the
performance of accessing pages on the Gecko server.Pages are automatically cached on the client, and
name lookup results are cached for subsequent
lookups, significantly improving their performance.
The use of UDP vs TCP to transfer pages enables
Gecko to transfer a 16KB page between the server
and client 6.5 times faster than HTTP.
REFERENCES
[l] Scott Baker and John H. Hartman, The Gecko NFS Web
Proxy, Department of Computer Science, The University of
Arizona, Tucson, AZ 85721.
[2] Siwat Saibua, Richard A. Aukerman, Joon-Yeoul Oh,Internet
explorer and firefox:web browser features comparision and
their future,texas a&m university-kingsville.