1 / 24

Concrete Architecture of Firefox 2

Concrete Architecture of Firefox 2. Team One July 6, 2007. Agenda. Introduction Concrete Architecture Comparison with Conceptual Modules JavaScript Interpreter XML Parser Display Backend Conclusion. Introduction. Analyzing Concrete Architecture

ariel-moss
Télécharger la présentation

Concrete Architecture of Firefox 2

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. Concrete Architecture of Firefox 2 Team One July 6, 2007

  2. Agenda • Introduction • Concrete Architecture • Comparison with Conceptual • Modules • JavaScript Interpreter • XML Parser • Display Backend • Conclusion

  3. Introduction • Analyzing Concrete Architecture • Previously researched Conceptual Architecture • Extracted Architecture from code

  4. Comparison with Conceptual • High cohesion (XPCOM) • Additional layers • Extensions • Common • Additional dependencies

  5. Conceptual Architecture

  6. Concrete Boxes

  7. Concrete Arrows

  8. Modules: JS Interpreter • Called SpiderMonkey • Written in C • Many classes and packages, but 6 seem to be most important

  9. LiveConnect • Package in SpiderMonkey • Bridge between JavaScript and Java • Depends on a few internal classes and XPCOM

  10. LiveConnect Dependencies

  11. XPConnect • Package in SpiderMonkey • Allows JavaScript objects access to XPCOM objects and vice-versa • Depends on some internal classes and XPCOM

  12. XPConnect Dependencies

  13. JSInterp • Class in SpiderMonkey • JavaScript Interpreter Class • All classes that depend on JSInterp are internal • All classes JSInterp depends on are internal

  14. API Classes • JSAPI, JSXDRAPI, JSDbgAPI • Used by external classes • Depend on and are depended on by many internal classes • Façade Pattern

  15. API Classes • JSAPI is the main API for SpiderMonkey • JSXDRAPI is the external data representation API • JSDbgAPI is SpiderMonkey’s debug API

  16. Modules: XML Parser

  17. XML Parsers • expat module performs DOM parsing • xml module performs SAX parsing • Both work independently of each other • expat module is self-contained and has no dependencies; however, xml module relies on stream input and string operations support from xpcom

  18. htmlparser Module • Abstracts away string and unichar issues • Delegates parsing requests to expat and xml modules, and receives the result back. • Implements something close to a façade, however, xml talks to xpcom

  19. Deviation from Conceptual • Nothing is invoking/depending on parser module for XML parsing requests • Could be a dynamic dependency rather than static, which bfx and lsedit cannot capture

  20. Modules: Display Backend • Set of platform-independent drawing primitives • Adapter to the native graphics interface (GTK, GDI, etc) • PostScript handling • Shared sub-components

  21. Modules: Display Backend

  22. Deviation from Conceptual • UI talks directly to Display Backend • Interaction with Common • intl • xpcom • nsprpub

  23. Conclusion • Conceptual Architecture Useful • Additional Layers • Additional Dependencies

  24. Thank you Questions?

More Related