Skip to content
Branch: master
Find file History
Pull request Compare This branch is 901 commits ahead, 39741 commits behind chromium:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
accelerators
accelerometer
accessibility
ambient
animation
app_list
app_menu
ash_strings_grd
assistant
autoclick
components
custom_tab
dbus
detachable_base
display
drag_drop
events
first_run
frame
high_contrast
highlighter
home_screen
host
ime
keyboard
laser
lock_screen_action
login
magnifier
media
metrics
multi_device_setup
multi_user
perftests
policy
power
public
resources
rotator
session
shelf
shell
sticky_keys
strings
style
system
test
tooltips
touch
tray_action
utility
wallpaper
wayland
wm
BUILD.gn
DEPS
OWNERS
README.md
ash_export.h
ash_prefs.cc
ash_service.cc
ash_service.h
ash_strings.grd
bluetooth_devices_observer.cc
bluetooth_devices_observer.h
cancel_mode.cc
cancel_mode.h
debug.cc
debug.h
dip_unittest.cc
disconnected_app_handler.cc
disconnected_app_handler.h
extended_desktop_unittest.cc
focus_cycler.cc
focus_cycler.h
focus_cycler_unittest.cc
login_status.h
mojo_interface_factory.cc
mojo_interface_factory.h
mojo_test_interface_factory.cc
mojo_test_interface_factory.h
multi_profile_uma.cc
multi_profile_uma.h
root_window_controller.cc
root_window_controller.h
root_window_controller_unittest.cc
root_window_settings.cc
root_window_settings.h
scoped_animation_disabler.cc
scoped_animation_disabler.h
scoped_root_window_for_new_windows.cc
scoped_root_window_for_new_windows.h
screen_util.cc
screen_util.h
screen_util_unittest.cc
screenshot_delegate.h
shell.cc
shell.h
shell_delegate.h
shell_init_params.cc
shell_init_params.h
shell_observer.h
shell_state.cc
shell_state.h
shell_state_unittest.cc
shell_test_api.cc
shell_unittest.cc
shutdown_controller_impl.cc
shutdown_controller_impl.h
shutdown_reason.cc
shutdown_reason.h
test_media_client.cc
test_media_client.h
test_screenshot_delegate.cc
test_screenshot_delegate.h
test_shell_delegate.cc
test_shell_delegate.h
window_factory.cc
window_factory.h
window_tree_host_lookup.cc
window_user_data.h
window_user_data_unittest.cc

README.md

Ash

Ash is the "Aura Shell", the window manager and system UI for Chrome OS. Ash uses the views UI toolkit (e.g. views::View, views::Widget, etc.) backed by the aura native widget and layer implementations.

Ash sits below chrome in the dependency graph (i.e. it cannot depend on code in //chrome). Code outside of Ash should depend solely on Ash's public interface, which is in ash/public.

Tests

Tests should be added to the ash_unittests target.

Tests can bring up most of the ash UI and simulate a login session by deriving from AshTestBase. This is often needed to test code that depends on ash::Shell and the controllers it owns.

Test support code (TestFooDelegate, FooControllerTestApi, etc.) lives in the same directory as the class under test (e.g. //ash/foo rather than //ash/test). Test code uses namespace ash; there is no special "test" namespace.

Prefs

Ash supports both per-user prefs and device-wide prefs. These are called "profile prefs" and "local state" to match the naming conventions in chrome. Ash also supports "signin screen" prefs, bound to a special profile that allows users to toggle features like spoken feedback at the login screen.

Pref names are in //ash/public/cpp so that code in chrome can also use the names. Prefs are registered in the classes that use them because those classes have the best knowledge of default values.

Historical notes

Ash shipped on Windows for a couple years to support Windows 8 Metro mode. Windows support was removed in 2016.

The mash (some times called mus-ash or mustash) project was an effort to move ash into its own process and the browser in its own process. Communication between the two processes was done over mojo. Windowing was done using the window-service (some times called mus), which ran with Ash. Many of the mojo interfaces have been converted to pure virtual interfaces, with the implementation in ash. The mash project was stopped around 4/2019.

You can’t perform that action at this time.