the Chromium logo

The Chromium Projects

mus+ash

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.

Contact

[email protected]

Schedule/Milestone

Milestone Description 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.. Proj-Mash-WS2 Q2/3 2018
Keyboard Shortcut Viewer Migrating KSV into a separate app using the window service mojo APIs from above. Proj-Mash-KSV 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. Proj-Mash-SingleProcess 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. Proj-Mash-MultiProcess Q2/Q3 2019

Bug Tracking

Links

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

Run

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

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