| OLD | NEW | 
|---|
|  | 1 Ash | 
|  | 2 --- | 
|  | 3 Ash is the "Aura Shell", the window manager and system UI for Chrome OS. | 
|  | 4 Ash uses the views UI toolkit (e.g. views::View, views::Widget, etc.) backed | 
|  | 5 by the aura native widget and layer implementations. | 
|  | 6 | 
|  | 7 Ash sits below chrome in the dependency graph (i.e. it cannot depend on code | 
|  | 8 in //chrome). It has a few dependencies on //content, but these are isolated | 
|  | 9 in their own module in //ash/content. This allows targets like ash_unittests | 
|  | 10 to build more quickly. | 
|  | 11 | 
|  | 12 Tests | 
|  | 13 ----- | 
|  | 14 Most tests should be added to the ash_unittests target. Tests that rely on | 
|  | 15 //content should be added to ash_content_unittests, but these should be rare. | 
|  | 16 | 
|  | 17 Tests can bring up most of the ash UI and simulate a login session by deriving | 
|  | 18 from AshTestBase. This is often needed to test code that depends on ash::Shell | 
|  | 19 and the controllers it owns. | 
|  | 20 | 
| 1 Mus+ash | 21 Mus+ash | 
| 2 ---------- | 22 ---------- | 
| 3 Ash is transitioning from using aura to using mus. During the | 23 Ash is transitioning to use the mus window server and gpu process, found in | 
| 4 transition period ash has support for both aura and mus. In order to | 24 //services/ui. Ash continues to use aura, but aura is backed by mus. Code to | 
| 5 work with both toolkits ash has a porting layer. This layer exists in | 25 support mus is found in //ash/mus. There should be relatively few differences | 
| 6 ash/common. As portions of ash are converted to the porting layer they | 26 between the pure aura and the aura-mus versions of ash. Ash can by run in mus | 
| 7 should move to ash/common. DEPS files may also be used to ensure new | 27 mode by passing the --mus command line flag. | 
| 8 dependencies do not get added. | 28 | 
|  | 29 Ash is also transitioning to run as a mojo service in its own process. This | 
|  | 30 means that code in chrome cannot call into ash directly, but must use the mojo | 
|  | 31 interfaces in //ash/public/interfaces. | 
|  | 32 | 
|  | 33 Out-of-process Ash is referred to as "mash" (mojo ash). In-process ash is | 
|  | 34 referred to as "classic ash". Ash can run in either mode depending on the | 
|  | 35 --mash command line flag. | 
|  | 36 | 
|  | 37 Historical notes | 
|  | 38 ---------------- | 
|  | 39 Ash shipped on Windows for a couple years to support Windows 8 Metro mode. | 
|  | 40 Windows support was removed in 2016. | 
| OLD | NEW | 
|---|