| 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/global_media_controls", |
| "+components/language/core/browser/pref_names.h", |
| "+components/live_caption", |
| "+components/media_message_center", |
| "+components/metrics/structured/structured_events.h", |
| "+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/user_education/common", |
| "+components/user_education/views", |
| "+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/ash/components/login/auth", |
| "+chromeos/ash/components/multidevice", |
| "+chromeos/ash/components/osauth/public", |
| "+chromeos/ash/components/peripheral_notification", |
| "+chromeos/ash/components/proximity_auth", |
| "+chromeos/ash/components/system", |
| "+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", |
| "+chromeos/dbus", |
| # //ash should use code in //ash/session to get login state. The state in |
| # //ash/session and the state in //chromeos/ash/components/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/ash/compoments/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/ash/services/bluetooth_config", |
| "+chromeos/ash/services/hotspot_config", |
| "+chromeos/ash/services/federated/public", |
| "+chromeos/ash/services/libassistant/public", |
| "+chromeos/ash/services/nearby/public", |
| "+chromeos/ash/services/multidevice_setup/public", |
| "+chromeos/ash/services/secure_channel/public", |
| "+chromeos/ash/services/network_config/public", |
| "+chromeos/services/machine_learning/public", |
| "+chromeos/services/network_config/public", |
| "+chromeos/services/power/public", |
| "+chromeos/strings", |
| "+chromeos/ui", |
| "+chromeos/utils", |
| |
| # 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/multi_user/multi_user_sign_in_policy.h", |
| "+components/user_manager/user_directory_integrity_manager.h", |
| "+components/user_manager/user_names.h", |
| "+components/user_manager/user_type.h", |
| "+components/user_manager/user.h", |
| ] |
| |
| specific_include_rules = { |
| "keyboard_capability_unittest\.cc": [ |
| "+device/udev_linux/fake_udev_loader.h", |
| ], |
| "policy_recommendation_restorer_unittest.cc": [ |
| "+components/sync_preferences/testing_pref_service_syncable.h" |
| ], |
| "root_window_controller\.(cc|h)": [ |
| "+ash/host" |
| ], |
| "shell.cc": [ |
| "+ash/host/ash_window_tree_host_init_params.h", |
| "+chromeos/ash/components/fwupd", |
| ], |
| "window_manager.cc": [ |
| "+ash/host/ash_window_tree_host.h" |
| ], |
| ".*test\.cc": [ |
| # Allowed to access user_manager in test code to set up testing environment |
| # close to the production. |
| "+components/user_manager", |
| ] |
| } |