190 likes | 206 Views
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
E N D
Google ChromeConcrete Architecture Analysis Team To Success: Bote Jiang, Zheng Peng, Shihao Lu, Zhizi Jiang, Tianbo Ma. Zongmin Yu
ConceptualArchitecture + = Concrete Architecture
Derivation Process Chromium Documentation Analysis Get Dependences SciTools Understand Tool Subdirectory Analysis
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.
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.
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.
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.
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.
Sequence Diagram “Login to a website successfully and chrome save the password.”
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.
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.
Team Issues • Utilization of external code bases. • Developing for different platforms • Maintained by community developers (coding consistency)
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.