Conceptual Architecture of Mozilla Firefox (version 2.0.0.3) Jared Haines Iris Lai...

21
Conceptual Architecture of Mozilla Firefox (version 2.0.0.3) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007

Transcript of Conceptual Architecture of Mozilla Firefox (version 2.0.0.3) Jared Haines Iris Lai...

Page 1: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) 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. 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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

Reference Architecture of Mozilla Browser

Page 4: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

User Interface Module(1)

Page 6: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

Data flow within Gecko

Page 10: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

XML Parser

XML 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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

XML Parser Architecture

* The arrows represent C/Java/Javascript APIs.

Page 16: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

XPCOM Conceptual Architecture

XPCOM

XPConnect JavaScript Interpreter

Page 19: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

Data Persistence

Data Persistence

Session Storage

Global Storage

Gecko

Page 20: Conceptual Architecture of Mozilla Firefox (version 2.0.0.3) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

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) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.

Q & A

Thank you!