For Developers‎ > ‎


mus+ash (pronounced "mustash") is a project to separate the window management and shell functionality of ash from the chrome browser process. The benefit is performance isolation for system components outside of the browser, and a sharper line between what components are considered part of the ChromeOS UX and what are part of the browser. mus+ash is built on top of Mandoline UI Service ("Mus") and the Ash system UI and window manager.





Crbug Label

Target Date

Window Service 2

The window service runs as part of the ash process, instead of in a separate process. This allows us to write small apps the use the window service mojo APIs, as preparation for making the very large chrome browser use those APIs..


Q2/3 2018

Keyboard Shortcut Viewer

Migrating KSV into a separate app using the window service mojo APIs from above.


Q3 2018 (M69 Beta, M70 Stable)

Single Process Mash

Ash header refactoring to support making single process Mash work. Allows chrome browser to use the window service APIs, but still has ash and browser in a single process. This lets us exercise very complex window APIs without having to finish all the ash / browser decoupling.


Q4 2018

Multi Process Mash

Ash header refactoring to support making ash and the browser run in separate processes. This is the end goal of the mustash project.


Q2/Q3 2019

Bug Tracking

Build Instructions
mus+ash builds only for Chrome OS (either for device or on Linux with target_os="chromeos"). It requires aura and toolkit_views. There are no special build flags other than target_os.

Build chrome:
autoninja -C out/foo chrome

out/foo/chrome --enable-features=Mash

By default, each service will run in its own process, including chrome and all of chrome's renderers.