include_rules = [ "+device/bluetooth", "+cc/debug", "+cc/output", "+cc/paint", "+components/access_code_cast", "+components/account_id", "+components/app_constants", "+components/app_restore", "+components/desks_storage", "+components/discardable_memory/public", "+components/discardable_memory/service/discardable_shared_memory_manager.h", "+components/fullscreen_control", "+components/language/core/browser/pref_names.h", "+components/live_caption", "+components/media_message_center", "+components/pref_registry", "+components/prefs", "+components/quirks", "+components/services/app_service/public", "+components/soda", "+components/strings", "+components/sync", "+components/ui_devtools", "+components/url_matcher", "+components/vector_icons", "+components/version_info", "+components/viz/common", "+components/viz/host", "+components/wallpaper", "+crypto", "+dbus", "+extensions/common/constants.h", "+gpu/config", "+media", "+mojo/public", "+services/device/public", "+services/data_decoder/public", "+services/media_session/public", "+services/video_capture/public/mojom", "+services/network/public", "+services/network/test", "+services/preferences/public", "+services/viz/public", "+skia/ext", "+third_party/cros_system_api", "+third_party/icu", "+third_party/khronos/GLES2", "+third_party/re2", "+third_party/skia", "+net", "+ui", "-ash/host", # Ash sits above content. Exceptions live in //ash/webui. "-content", # Some code in //chromeos should not be used by ash, so use an allowlist. # See //chromeos/README.md for details about Lacros, which is migrating some # code out of //chromeos into //ash. "-chromeos", # //ash can use chromeos components that sit below it in the dependency tree. "+chromeos/ash/components/audio", "+chromeos/ash/components/cryptohome", "+chromeos/ash/components/feature_usage", "+chromeos/ash/components/human_presence", "+chromeos/ash/components/local_search_service", "+chromeos/components/quick_answers", "+chromeos/components/security_token_pin", "+chromeos/components/sensors", "+chromeos/components/webauthn", "+chromeos/constants", # crosapi is an API to support lacros. "+chromeos/crosapi", # //ash can access all D-Bus client libraries. The mustash project previously # limit D-Bus communication to a subset of OS daemons, but that project # stopped in 2019. See //ash/README.md. "+chromeos/ash/components/dbus", # TODO(https://crbug.com/1164001): removed after all clients have migrated. "+chromeos/dbus", # //ash should use code in //ash/session to get login state. The state in # //ash/session and the state in //chromeos/login/login_state are both # derived from the canonical state in the browser. Using both sources could # create subtle inconsistencies based on when observers are called. "-chromeos/login/login_state", "+chromeos/ash/components/network", # //ash can use the public interfaces of various services. "+chromeos/ash/services/assistant/public/cpp" , "+chromeos/ash/services/assistant/test_support", "+chromeos/services/bluetooth_config", "+chromeos/services/libassistant/public", "+chromeos/services/machine_learning/public", "+chromeos/services/network_config/public", "+chromeos/services/power/public", "+chromeos/strings", "+chromeos/system", "+chromeos/ui", # ui/base/idle depends on SessionManagerClient so disallow it. "-ui/base/idle", # user_manager::UserManager and session_manager::SessionManager lives in the # browser process. Use SessionController to access user or user session info # so that ash code depends on a single source of truth. If the info is not # available, add new interface to SessionControllerClient and friends to # bridge data from user_manager::UserManager or # session_manager::SessionManager. "-components/session_manager", "+components/session_manager/session_manager_types.h", "-components/user_manager", "+components/user_manager/known_user.h", "+components/user_manager/user_names.h", "+components/user_manager/user_type.h", "+components/user_manager/user.h", ] specific_include_rules = { "policy_recommendation_restorer_unittest.cc": [ "+components/sync_preferences/testing_pref_service_syncable.h" ], "root_window_controller\.*": [ "+ash/host" ], "shell.cc": [ "+ash/host/ash_window_tree_host_init_params.h" ], "window_manager.cc": [ "+ash/host/ash_window_tree_host.h" ], }