Download presentation
Presentation is loading. Please wait.
1
Concrete Architecture of Firefox 2 Team One July 6, 2007 Team One July 6, 2007
2
Agenda Introduction Concrete Architecture Comparison with Conceptual Modules JavaScript Interpreter XML Parser Display Backend Conclusion 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 Analyzing Concrete Architecture Previously researched Conceptual Architecture Extracted Architecture from code
4
Comparison with Conceptual High cohesion (XPCOM) Additional layers Extensions Common Additional dependencies 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 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 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 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 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 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 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 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 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 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 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 UI talks directly to Display Backend Interaction with Common intl xpcom nsprpub
23
Conclusion Conceptual Architecture Useful Additional Layers Additional Dependencies Conceptual Architecture Useful Additional Layers Additional Dependencies
24
Thank you Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.