Published on February 20, 2014
Views, Aura and Ash: ChromeOS UI Framework Simon YoungKi Hong firstname.lastname@example.org
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!”
Background Chrome? Chromium?
ChromeOS Linux based operating system. Only chrome browser is running for user.
UI Framework In typical linux, GUI Application GUI Application GUI Application Window Manager gtk qt efl ... X or Wayland Kernel
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 Widget RootView View View View View View View View
Views Like other toolkits, it has many custom views ● ● ● ● ● ● ● ● ● Label Image view web view slider separator link button combobox etc...
OK. we know how Widget is made... But, who give user events or draw its content?
There is no window manager. ChromeOS runs single x-client application. Browser Process Renderer Process Renderer Process libx X …... GPU Process
They created a new window system. Aura
Aura Chrome's next generation hardware accelerated UI framework
Aura Contains view components Responsible for event propagation draw widget’s contents window hierarchy management - ChromeOS is a tree of Aura Window
Aura Event Flow Widget component Aura Window X Kernel Mouse Click
Aura Drawing? RootWindowHost CC RootWindow Composite & Draw Aura Window Aura Window Aura Window Aura Window Aura Window GPU process Browser process GPU
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, GTK application QT Application .... X Kernel Shell
Ash Role of Shell * Window mgmt. * Program exec. * System mgmt.
... R/org/chromium/ui/R.java out/target ... gen_sources/GYP/shared_intermediates ... intermediates/R/framework-res.apk -m -J out ...
The Chromium Projects. Search ... names for each platform and typedef it to a shared ... is most easily managed by the UI framework to which it ...
Overview of Chromium UI Framework. James Ketrenos edited this page Sep 2, 2013 · 1 revision ... Crosswalk testing framework; Crosswalk testing home;
The Chromium Projects. Search this site. Home. ... Common shared library code is in the Libraries/base ... A simple framework for doing UI development, ...
The Chromium Embedded Framework ... Better automated UI testing via the DevTools remote debugging ... Debug contains a debug build the CEF shared ...
Many thanks to Marshall Greenblatt, the Chromium Embedded Framework founder, for writing and helping edit part of this blog post. The Chromium Embedded ...
This Wiki page explains how ... It exposes some interfaces/methods that are shared by multiple processes and ... AppKit.framework, Chromium Embedded ...
Note: The Android 5.1 Lollipop MR1 update is available with additional features and fixes. For more information, see the Android 5.1 API Overview.