1 / 21

Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)

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.

locke
Download Presentation

Conceptual Architecture of Mozilla Firefox (version 2.0.0.3)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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.

  3. Reference Architecture of Mozilla Browser

  4. User Interface JavaScript Interpreter Gecko Data Persistence XPCOM Necko XML Parser Conceptual Architecture of Mozilla Firefox

  5. User Interface Module(1)

  6. 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.

  7. Gecko • Browser layout engine • Components: • HTML Parser • Style System • Image Loader • Content Model • Frame System • Graphics Interface

  8. Necko JavaScript Interpreter? XML Parser Gecko Content Model HTML Parser Style System Frame System GDI Graphics Interface CSS Parser X11/GTK Mac OS/X Image Loader Gecko

  9. Data flow within Gecko

  10. Necko URL Firefox Network Service Protocol Handler Protocol Connection File Transport Socket Transport Necko

  11. 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

  12. Necko • Threading • application thread and a maximum number of transport threads • most protocols utilize a background thread for I/O operations

  13. Necko • Evolution • Started as a networking library known as netlib • Design goals: • Memory footprint • Code maintainability • Network performance

  14. XML Parser (Expat) XHTML MathML SVG RDF XUL XML Parser • 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.

  15. XML Parser Architecture * The arrows represent C/Java/Javascript APIs.

  16. JavaScript Interpreter SpiderMonkey 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.

  17. 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

  18. XPCOM XPConnect JavaScript Interpreter XPCOM Conceptual Architecture

  19. Data Persistence Session Storage Gecko Global Storage Data Persistence

  20. 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

  21. Q & A Thank you!

More Related