conceptual architecture of mozilla firefox (version 2.0.0.3)
DESCRIPTION
Conceptual Architecture of Mozilla Firefox (version 2.0.0.3). Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead. June 5, 2007. Introduction. Discuss the conceptual architecture of Mozilla Firefox 2.0.0.3. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/1.jpg)
Conceptual Architecture of MozillaFirefox (version 2.0.0.3)Jared HainesIris LaiJohn,Chun-Hung,ChiuJosh Fairhead
June 5, 2007
![Page 2: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/2.jpg)
Introduction Discuss the conceptual architecture of Mozilla Firefox
2.0.0.3. Firefox is an open source cross-platform web browser
developed by the Mozilla Corporation The Conceptual architecture for Mozilla Firefox is based on the reference architecture of Mozilla Browser
Reference architecture of Mozilla browser includes User Interface, Browser Engine, Rendering Engine, Networking, XML Parser, JavaScript Interpreter, and Data Persistence.
Conceptual Architecture of Mozilla Firefox includes User Interface, Gecko, Necko, XML Parser, JavaScript Interpreter, and Data Persistence.
![Page 3: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/3.jpg)
Reference Architecture of Mozilla Browser
![Page 4: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/4.jpg)
Conceptual Architecture of Mozilla Firefox
User Interface
Gecko
Necko
JavaScript Interpreter
XPCOM XML Parser
Data Persistence
![Page 5: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/5.jpg)
User Interface Module(1)
![Page 6: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/6.jpg)
User Interface Module(2) in between user and Gecko
allow user inputs / requests, mainly interacts with Gecko, the rendering/browsing engine
UI components built by XUL and HTML , decorated by CSS
XPFE / XPToolkit is the development framework (based upon XUL language) that allows to build same UI components by using the same API in different platform.
AOM defines objects and relationships that compose the UI and related services . Services performs the actual application-specific tasks.
![Page 7: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/7.jpg)
Gecko
Browser layout engine Components:
HTML Parser Style System Image Loader Content Model Frame System Graphics Interface
![Page 8: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/8.jpg)
Gecko
Gecko
XML Parser
HTML Parser
Content Model
Necko
Image Loader
Style System
CSS Parser
Frame System
Graphics Interface
GDI
X11/GTK
Mac OS/X
JavaScript Interpreter?
![Page 9: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/9.jpg)
Data flow within Gecko
![Page 10: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/10.jpg)
NeckoNecko
Firefox
Network Service
Protocol Handler
Protocol Connection
File Transport Socket Transport
URL
![Page 11: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/11.jpg)
Necko
Network Service - facilitates the construction and opening of URLs
Protocol Handler – unique protocol handler for each protocol type
Protocol Connection – any protocol-specific accessors required
File/Socket Transport – represents the physical connection
![Page 12: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/12.jpg)
Necko
Threading application thread and a maximum number of
transport threads most protocols utilize a background thread for I/O
operations
![Page 13: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/13.jpg)
Necko
Evolution Started as a networking library known as netlib Design goals:
Memory footprint Code maintainability Network performance
![Page 14: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/14.jpg)
XML ParserXML Parser (Expat)
XHTML MathML SVG RDF XUL
The XML Parser is the component responsible for handling eXtensible Markup Language (XML) documents like XHTML, MathML, SVG, RDF, and XUL.
The XML Parser subsystem parses XML documents into a Document Object Model (DOM) tree.
Mozilla uses James Clark's expat parser.
![Page 15: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/15.jpg)
XML Parser Architecture
* The arrows represent C/Java/Javascript APIs.
![Page 16: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/16.jpg)
JavaScript Interpreter
The JavaScript Interpreter evaluates JavaScript (also known as ECMAScript) code, which may be embedded in web pages.
JavaScript is an object-oriented scripting language developed by Netscape.
JavaScript Interpreter
SpiderMonkey
![Page 17: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/17.jpg)
XPCOM
Cross-Platform Component Object Model Manages creation, ownership, and deletion of
objects Handles message passing between objects Similar to CORBA and Microsoft COM Components:
Component, Service, and Category Managers XPConnect File/memory management, threads, data structures
![Page 18: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/18.jpg)
XPCOM Conceptual Architecture
XPCOM
XPConnect JavaScript Interpreter
![Page 19: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/19.jpg)
Data Persistence
Data Persistence
Session Storage
Global Storage
Gecko
![Page 20: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/20.jpg)
Data Persistence
DOM storage Session storage
available for the page session Global storage
maintains multiple public and private storage areas used to hold data over a long period of time
References are accessed by the HTML code
![Page 21: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)](https://reader036.vdocument.in/reader036/viewer/2022062521/56814d81550346895dbadffa/html5/thumbnails/21.jpg)
Q & A
Thank you!