1 / 19

Google Chrome Concrete Architecture Analysis

Google Chrome Concrete Architecture Analysis. Team To Success: Bote Jiang, Zheng Peng, Shihao Lu, Zhizi Jiang, Tianbo Ma. Zongmin Yu. Conceptual Architecture. +. =. Concrete Architecture. Derivation Process. Chromium Documentation Analysis. Get Dependences. SciTools Understand

ldorsey
Download Presentation

Google Chrome Concrete Architecture Analysis

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. Google ChromeConcrete Architecture Analysis Team To Success: Bote Jiang, Zheng Peng, Shihao Lu, Zhizi Jiang, Tianbo Ma. Zongmin Yu

  2. ConceptualArchitecture + = Concrete Architecture

  3. Derivation Process Chromium Documentation Analysis Get Dependences SciTools Understand Tool Subdirectory Analysis

  4. Conceptual Architecture • Layered • Object Oriented style for Renderer implementation. • Browser layer included many other subsystems such as network stack, data persistence, etc. • Renderer combined subsystems such as SKIA and data parsers. • Multi-process • Focus was on security and integrity.

  5. Conceptual Architecture

  6. Concrete Architecture

  7. Changes • Changes in the subcomponents of the Browser kernel and Renderer: • Browser kernel now has Mojo, which we previously called IO Thread. • We took out SKIA and put it into a separate display backend entity. • New subsystems.

  8. New Subsystems • Display backend: Graphics and fonts rendering. • Utilities: Library subsystem encompassed by multiple other components including testing code. • Shared: Libraries and resources shared by multiple subsystems. • Services: OS' foundational “system services” layer • Base:Contains things like string manipulation, generic utilities, etc. 

  9. Unexpected Dependencies • UI and Browser: • Browser and UI depend on each other. • UI and Display Backend: • UI depends on display backend to display window icons and widgets. • Browser and Display Backend • Browsers uses display backend to display basic graphics. • Vice versa for resources in the browser. • Renderer and Display Backend • Renderer uses display backend to render complex graphics.

  10. Subsystem Breakdown: Browser

  11. Subsystem Breakdown: Browser • Browser Main Thread: • Consists of Components and Chrome. • Data Persistence: • Local database for Chromium. • Network Stack: • Network resources. • Mojo: • IPC system and also an architecture for modularizing code.

  12. Sequence Diagram “Login to a website successfully and chrome save the password.”

  13. Feature Proposal Split View Tabs • Like having two windows side by side. • Benefits: Does not require as many resources as two separate windows. • Required Modifications: Renderer, Browser, Display Backend.

  14. Concurrency • Using Mojo for IPC. • Chrome uses a multi-process architecture. • The processes in Chrome employ a multi-threaded architecture. • Multi-process vs multi-threaded.

  15. Team Issues • Utilization of external code bases. • Developing for different platforms • Maintained by community developers (coding consistency)

  16. Lessons Learned • The top down approach of analyzing large code bases. • Importance of coding consistency. • Importance of good commenting. • How to eliminate bottlenecks in workflow to speed up analysis processes.

  17. Conclusion

More Related