6 "+components/access_code_cast",
7 "+components/account_id",
8 "+components/app_constants",
9 "+components/app_restore",
10 "+components/desks_storage",
11 "+components/discardable_memory/public",
12 "+components/discardable_memory/service/discardable_shared_memory_manager.h",
13 "+components/fullscreen_control",
14 "+components/global_media_controls",
15 "+components/language/core/browser/pref_names.h",
16 "+components/live_caption",
17 "+components/media_message_center",
18 "+components/pref_registry",
21 "+components/services/app_service/public",
23 "+components/strings",
25 "+components/ui_devtools",
26 "+components/url_matcher",
27 "+components/user_education/common",
28 "+components/user_education/views",
29 "+components/vector_icons",
30 "+components/version_info",
31 "+components/viz/common",
32 "+components/viz/host",
33 "+components/wallpaper",
36 "+extensions/common/constants.h",
40 "+services/device/public",
41 "+services/data_decoder/public",
42 "+services/media_session/public",
43 "+services/video_capture/public/mojom",
44 "+services/network/public",
45 "+services/network/test",
46 "+services/preferences/public",
47 "+services/viz/public",
49 "+third_party/cros_system_api",
51 "+third_party/khronos/GLES2",
58 # Ash sits above content. Exceptions live in //ash/webui.
61 # Some code in //chromeos should not be used by ash, so use an allowlist.
62 # See //chromeos/README.md for details about Lacros, which is migrating some
63 # code out of //chromeos into //ash.
65 # //ash can use chromeos components that sit below it in the dependency tree.
66 "+chromeos/ash/components/audio",
67 "+chromeos/ash/components/cryptohome",
68 "+chromeos/ash/components/feature_usage",
69 "+chromeos/ash/components/human_presence",
70 "+chromeos/ash/components/local_search_service",
71 "+chromeos/ash/components/login/auth",
72 "+chromeos/ash/components/multidevice",
73 "+chromeos/ash/components/osauth/public",
74 "+chromeos/ash/components/peripheral_notification",
75 "+chromeos/ash/components/proximity_auth",
76 "+chromeos/ash/components/system",
77 "+chromeos/components/quick_answers",
78 "+chromeos/components/security_token_pin",
79 "+chromeos/components/sensors",
80 "+chromeos/components/webauthn",
81 "+chromeos/constants",
82 # crosapi is an API to support lacros.
84 # //ash can access all D-Bus client libraries. The mustash project previously
85 # limit D-Bus communication to a subset of OS daemons, but that project
86 # stopped in 2019. See //ash/README.md.
87 "+chromeos/ash/components/dbus",
89 # //ash should use code in //ash/session to get login state. The state in
90 # //ash/session and the state in //chromeos/ash/components/login/login_state
91 # are both derived from the canonical state in the browser. Using both sources
92 # could create subtle inconsistencies based on when observers are called.
93 "-chromeos/ash/compoments/login/login_state",
94 "+chromeos/ash/components/network",
95 # //ash can use the public interfaces of various services.
96 "+chromeos/ash/services/assistant/public/cpp" ,
97 "+chromeos/ash/services/assistant/test_support",
98 "+chromeos/ash/services/bluetooth_config",
99 "+chromeos/ash/services/hotspot_config",
100 "+chromeos/ash/services/federated/public",
101 "+chromeos/ash/services/libassistant/public",
102 "+chromeos/ash/services/nearby/public",
103 "+chromeos/ash/services/multidevice_setup/public",
104 "+chromeos/ash/services/secure_channel/public",
105 "+chromeos/ash/services/network_config/public",
106 "+chromeos/services/machine_learning/public",
107 "+chromeos/services/network_config/public",
108 "+chromeos/services/power/public",
113 # ui/base/idle depends on SessionManagerClient so disallow it.
116 # user_manager::UserManager and session_manager::SessionManager lives in the
117 # browser process. Use SessionController to access user or user session info
118 # so that ash code depends on a single source of truth. If the info is not
119 # available, add new interface to SessionControllerClient and friends to
120 # bridge data from user_manager::UserManager or
121 # session_manager::SessionManager.
122 "-components/session_manager",
123 "+components/session_manager/session_manager_types.h",
124 "-components/user_manager",
125 "+components/user_manager/known_user.h",
126 "+components/user_manager/multi_user/multi_user_sign_in_policy.h",
127 "+components/user_manager/user_directory_integrity_manager.h",
128 "+components/user_manager/user_names.h",
129 "+components/user_manager/user_type.h",
130 "+components/user_manager/user.h",
133 specific_include_rules = {
134 "keyboard_capability_unittest\.cc": [
135 "+device/udev_linux/fake_udev_loader.h",
137 "policy_recommendation_restorer_unittest.cc": [
138 "+components/sync_preferences/testing_pref_service_syncable.h"
140 "root_window_controller\.(cc|h)": [
144 "+ash/host/ash_window_tree_host_init_params.h",
145 "+chromeos/ash/components/fwupd",
147 "window_manager.cc": [
148 "+ash/host/ash_window_tree_host.h"
151 # Allowed to access user_manager in test code to set up testing environment
152 # close to the production.
153 "+components/user_manager",