Servicification: Modularizing Chromium {blundell, clamy, - - PowerPoint PPT Presentation

servicification modularizing chromium
SMART_READER_LITE
LIVE PREVIEW

Servicification: Modularizing Chromium {blundell, clamy, - - PowerPoint PPT Presentation

Servicification: Modularizing Chromium {blundell, clamy, rjkroege}@chromium.org 2018 | Proprietary What we want: Isolation Insert high resolution image 2018 | Proprietary What is Isolation? 2018 | Proprietary What is Isolation? Source


slide-1
SLIDE 1

2018 | Proprietary

{blundell, clamy, rjkroege}@chromium.org

Servicification: Modularizing Chromium

slide-2
SLIDE 2

2018 | Proprietary

What we want: Isolation

Insert high resolution image

slide-3
SLIDE 3

2018 | Proprietary

What is Isolation?

slide-4
SLIDE 4

2018 | Proprietary

What is Isolation?

Source

Reusable code.

slide-5
SLIDE 5

2018 | Proprietary

What is Isolation?

Source

Reusable code.

Run-Time

Isolate state.

  • Sandbox. Guard

against crashes & exploit.

slide-6
SLIDE 6

2018 | Proprietary

What is Isolation?

Source

Reusable code.

Run-Time

Isolate state.

  • Sandbox. Guard

against crashes & exploit.

Component

Download only what is needed.

slide-7
SLIDE 7

2018 | Proprietary

What is Isolation?

Source

Reusable code.

Run-Time

Isolate state.

  • Sandbox. Guard

against crashes & exploit.

Component

Download only what is needed.

Product

Different teams, with different repositories and release schedules.

slide-8
SLIDE 8

2018 | Proprietary

Cornerstone of security model

Process model

Browser GPU Tab 1 Tab 2 Tab 3 Flash f(x)

slide-9
SLIDE 9

2018 | Proprietary

Insert high resolution image

Dealing with Organic growth

slide-10
SLIDE 10

2018 | Proprietary

Content refactor

//content

Chrome Content Shell

slide-11
SLIDE 11

2018 | Proprietary

Content refactor

//content

Chrome Content Shell

slide-12
SLIDE 12

2018 | Proprietary

Content refactor

WebView

//content

Chrome Content Shell

slide-13
SLIDE 13

2018 | Proprietary

Content refactor

Opera WebView

//content

Chrome Content Shell

slide-14
SLIDE 14

2018 | Proprietary

Content refactor

Electron Opera WebView

//content

Chrome Content Shell

slide-15
SLIDE 15

2018 | Proprietary

Content refactor

Electron Opera WebView

//content

Chrome Content Shell

slide-16
SLIDE 16

2018 | Proprietary

Insert high resolution image

Towards Modularization

slide-17
SLIDE 17

2018 | Proprietary

Post content refactor

← Chrome code architecture, ~2017

~10M lines of code

slide-18
SLIDE 18

2018 | Proprietary

Conceptual system layercake

Foundation Framework/Runtime Application

slide-19
SLIDE 19

2018 | Proprietary

Conceptual system layercake

Foundation Framework/Runtime Application

}

Chrome’s Architecture derived from this layer.

slide-20
SLIDE 20

2018 | Proprietary

Conceptual system layercake

Foundation Framework/Runtime Application

}

Web Platform Runtime & API lives here.

slide-21
SLIDE 21

2018 | Proprietary

Post “servicification”

Service Manager Package Manager

Network File System Window Server

Viz: Compositor & GPU

Navigation

Bluetooth

USB Identity Wallet ... Blink PDF Media

Embedder Defined f(x)

Chrome Chrome cast

Chrome OS System UI

Chrome’

slide-22
SLIDE 22

2018 | Proprietary

Some Major Ongoing Servicification Projects

Service Manager Package Manager

Network File System Window Server

Viz: Compositor & GPU

Navigation

Bluetooth

USB Identity Wallet ... Blink PDF Media

Embedder Defined f(x)

Chrome Chrome cast

Chrome OS System UI

Chrome’

slide-23
SLIDE 23

2018 | Proprietary

  • Network Service

○ Use case: Chrome’s net stack without a browser ○ Use case: Survive net stack crashes in Chrome ○ Status: OOP Network Service launched on desktop Canary! Beta at 50%!

  • UI Service

○ Use case: Decoupling ChromeOS SysUI from the browser ○ Status: Come on up, Rob!

Zooming In On These Efforts: Network and UI

slide-24
SLIDE 24

2018 | Proprietary

Zooming In on These Efforts: UI Service (MUS) & Viz

slide-25
SLIDE 25

2018 | Proprietary

  • Identity Service

○ Use case: Access user’s Google identities outside of the browser ○ Status: Identity Service built, major effort underway to use it in the browser

  • Content Service

○ Use case: Display web content without the browser being live! ○ Use case: “Chrome WebView” ○ Status: In design exploration

Zooming In On These Efforts: Identity and Content

slide-26
SLIDE 26

2018 | Proprietary

  • Each one of these stretches across all of Chromium!
  • Meanwhile, hundreds of engineers adding code “the old way”
  • How are we tackling this challenge?

Zooming Out: Our Approach to These Services

slide-27
SLIDE 27

2018 | Proprietary

  • “Surge toward success”

○ Get a project ready to topple and coalesce resources on it

  • Tremendous impact from collaboration with Igalia

○ Critical to launch of Network Service on beta ○ Now expanding to Identity Service

  • Excited about this model more broadly for Chromium

○ We care about the long-term health of the codebase ○ Impactful projects beyond servicification (e.g., Blink Onion Soup)

Zooming Out: Our Approach to These Efforts

slide-28
SLIDE 28

2018 | Proprietary

Thank you. Questions?