chromium ui framework(shared)

26
Views, Aura and Ash: ChromeOS UI Framework Simon YoungKi Hong [email protected]

Upload: gnomekr

Post on 28-Jan-2015

127 views

Category:

Technology


3 download

DESCRIPTION

This slides describe overview of ChromeOS UI Framework, consists of many visual components and aura, and aura shell.

TRANSCRIPT

Page 1: Chromium ui framework(shared)

Views, Aura and Ash: ChromeOS UI Framework

Simon YoungKi [email protected]

Page 2: Chromium ui framework(shared)

About Me

Software Programmer @LGE(2009.02 ~)

Chromium Contributor(2012.01 ~)

Chromium Committer(2013.11 ~)

Page 3: Chromium ui framework(shared)

Goal

Overview of ChromeOS UI Component.

We can say“How ChromeOS UI is constructed!”

Page 4: Chromium ui framework(shared)

Goal

Page 5: Chromium ui framework(shared)

Background

Chrome? Chromium?

Page 6: Chromium ui framework(shared)

ChromeOS

Linux based operating system.Only chrome browser is running for user.

Page 7: Chromium ui framework(shared)

UI Framework

In typical linux,

X or Wayland

Kernel

GUIApplication

GUI Application

WindowManager

GUI Application

gtk qt efl ...

Page 8: Chromium ui framework(shared)

What kind of ToolKit is used in ChromeOS?

Page 9: Chromium ui framework(shared)

Views

They created UI toolkit called "Views"

"Since we desired a differentiated aesthetic for Chromium, we have had to build a framework on Windows to accelerate our development of custom UI" - Chromium design docs

Page 10: Chromium ui framework(shared)

Views

UI is constructed of a tree of view components

RootView

View

View

View

View

View

ViewView

Widget

Page 11: Chromium ui framework(shared)

Views

Like other toolkits, it has many custom views● Label● Image view● web view● slider● separator● link● button● combobox● etc...

Page 12: Chromium ui framework(shared)

Views

Page 13: Chromium ui framework(shared)

OK. we know how Widget is made...

But, who give user eventsor draw its content?

Page 14: Chromium ui framework(shared)

There is no window manager.ChromeOS runs single x-client application.

X

Browser Process Renderer

Process …...Renderer Process

GPU Process

libx

Page 15: Chromium ui framework(shared)

They created a new window system.Aura

Page 16: Chromium ui framework(shared)

Aura

Chrome's next generation hardware accelerated UI framework

Page 17: Chromium ui framework(shared)

Aura

Contains view components

Responsible forevent propagationdraw widget’s contents

window hierarchy management - ChromeOS is a tree of Aura Window

Page 18: Chromium ui framework(shared)

Aura

Event Flow

Mouse Click

Kernel

X

Aura Window

Widget component

Page 19: Chromium ui framework(shared)

Aura

Drawing?

RootWindowHost

Aura Window

RootWindow

Browser process

GPU process

Aura Window

Aura Window

Aura Window

Aura Window

GPU

CC

Composite & Draw

Page 20: Chromium ui framework(shared)

OK. we know how Widget is handled...

But, how create a widget?

Page 21: Chromium ui framework(shared)

Ash (Aura SHell)

"A shell is software that provides an interface for users of an operating system to access the

services of a kernel." - wikipedia

Page 22: Chromium ui framework(shared)

Ash

In typical linux,

X

Kernel

GTK application

QT Application .... Shell

Page 23: Chromium ui framework(shared)

Ash

Role of Shell* Window mgmt.* Program exec.* System mgmt.

Page 24: Chromium ui framework(shared)

Ash

Page 25: Chromium ui framework(shared)

Referenceshttp://dev.chromium.org/developers/design-documents

Page 26: Chromium ui framework(shared)

Q&A