Chrome: Concrete Architecture Bits Please! Agenda: 1. Derivation - - PowerPoint PPT Presentation

chrome
SMART_READER_LITE
LIVE PREVIEW

Chrome: Concrete Architecture Bits Please! Agenda: 1. Derivation - - PowerPoint PPT Presentation

Chrome: Concrete Architecture Bits Please! Agenda: 1. Derivation 2. Alternatives 3. Concrete Architecture 4. New Subsystems / Dependencies 5. Subsystem: Render 6. Use Case 7. Current Limitations/ Lessons Learned 2 Conceptual


slide-1
SLIDE 1

Chrome:

Concrete Architecture

Bits… Please!

slide-2
SLIDE 2

2

Agenda:

  • 1. Derivation
  • 2. Alternatives
  • 3. Concrete Architecture
  • 4. New Subsystems /

Dependencies

  • 5. Subsystem: Render
  • 6. Use Case
  • 7. Current Limitations/

Lessons Learned

slide-3
SLIDE 3

Conceptual Architecture

3

Layered

Legend

Subsystem Dependency

slide-4
SLIDE 4

Derivation Process

4

  • Use code analysis tool called Understand
  • Create a new architecture with the components of

conceptual architecture

  • Addition of Utilities and Communication component
  • Map source code to the correct subsystem based on

functionality

slide-5
SLIDE 5

Alternatives

5

Legend

Subsystem New Dependency Old Dependency

slide-6
SLIDE 6

Concrete Architecture

6

Legend

Subsystem New Dependency Old Dependency

Object-Oriented

slide-7
SLIDE 7

New Subsystems and Dependencies

7

Communication

  • Encapsulates Mojo and threading
  • Allows all aspects of the architecture to communicate via

message passing and IPCs

Utilities

  • Contains the “Base” code which is the shared code between all

modules

  • Contains string manipulation and general utilities
  • Contains specific code for each operating system
slide-8
SLIDE 8

Render -> Memory

  • The Render uses a security filter
  • Displays a message to the user that is stored in memory
  • Example: “phishing” or “malware” detection
slide-9
SLIDE 9

Render -> UI

  • Renderer extension uses the UI layout

Render -> Browser

  • The Render allows safe browsing based on the type of browser and

message passing

Render -> Network

  • Is the network connection is up and running?
slide-10
SLIDE 10

UI -> Memory

  • Makes window resizing appear smooth

UI -> Network

  • The UI connects to the network to fetch the URL and format to

display it

UI -> Render

  • Play cc animations
slide-11
SLIDE 11

Memory -> UI

  • Memory stores previously accessed URLs
  • As typing begins in the UI, Memory can display what the

possible URL may be

slide-12
SLIDE 12

Memory -> Browser

  • Saves the snapshot file of each process in memory and

can return it to the browser if necessary

Network -> Memory

  • From network, IO Buffer streamed to memory for optimal read
  • perations of data

Network -> Browser

  • Handles some of the testing testing and determining network

crashes

slide-13
SLIDE 13

Network -> Render

  • Renderer has a Network Interface List that the Network

must be able to access

Browser -> UI

  • If there is a conflict/error in the Browser, it communicates with UI to

display an error message to the user

slide-14
SLIDE 14

Subsystem: Render

14

slide-15
SLIDE 15

Use Case 1

15

slide-16
SLIDE 16

Current Limitations and Lessons Learned

Current Limitations

  • Lack of commenting and code readability
  • This lead to difficulties in tracing the dependencies between

subsystems

  • Lacking JavaScript V8 and Plugins source code

Lessons Learned

  • Communication
  • Set deadlines
  • How to use Understand

16

slide-17
SLIDE 17

Team Issues within Chrome

  • Independent teams working on different

subsystems made it challenging to track who worked on what subsystem when

  • Code updating with high coupling

17

slide-18
SLIDE 18

Feature - Facial Authentication

18

Problem

  • Users have many passwords associated with

numerous websites

  • Difficult to remember all passwords

Solution:

  • Add your face authentication to Chrome
  • Passwords are saved to the user account
  • Use facial authentication to use saved passwords
slide-19
SLIDE 19

Conclusion

19

  • Object-Oriented concrete architecture
  • Added dependencies
  • Utilities and Communication subsystems added
slide-20
SLIDE 20

20

Thanks!

Any questions?