p.r bharat raj and jinu mathew abstract:

Upload: prbharatraj

Post on 30-May-2018

213 views

Category:

Documents


0 download

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.