chromium ui framework(shared)
DESCRIPTION
This slides describe overview of ChromeOS UI Framework, consists of many visual components and aura, and aura shell.TRANSCRIPT
Views, Aura and Ash: ChromeOS UI Framework
Simon YoungKi [email protected]
About Me
Software Programmer @LGE(2009.02 ~)
Chromium Contributor(2012.01 ~)
Chromium Committer(2013.11 ~)
Goal
Overview of ChromeOS UI Component.
We can say“How ChromeOS UI is constructed!”
Goal
Background
Chrome? Chromium?
ChromeOS
Linux based operating system.Only chrome browser is running for user.
UI Framework
In typical linux,
X or Wayland
Kernel
GUIApplication
GUI Application
WindowManager
GUI Application
gtk qt efl ...
What kind of ToolKit is used in ChromeOS?
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
Views
UI is constructed of a tree of view components
RootView
View
View
View
View
View
ViewView
Widget
Views
Like other toolkits, it has many custom views● Label● Image view● web view● slider● separator● link● button● combobox● etc...
Views
OK. we know how Widget is made...
But, who give user eventsor draw its content?
There is no window manager.ChromeOS runs single x-client application.
X
Browser Process Renderer
Process …...Renderer Process
GPU Process
libx
They created a new window system.Aura
Aura
Chrome's next generation hardware accelerated UI framework
Aura
Contains view components
Responsible forevent propagationdraw widget’s contents
window hierarchy management - ChromeOS is a tree of Aura Window
Aura
Event Flow
Mouse Click
Kernel
X
Aura Window
Widget component
Aura
Drawing?
RootWindowHost
Aura Window
RootWindow
Browser process
GPU process
Aura Window
Aura Window
Aura Window
Aura Window
GPU
CC
Composite & Draw
OK. we know how Widget is handled...
But, how create a widget?
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
Ash
In typical linux,
X
Kernel
GTK application
QT Application .... Shell
Ash
Role of Shell* Window mgmt.* Program exec.* System mgmt.
Ash
Referenceshttp://dev.chromium.org/developers/design-documents
Q&A