blob: dda52f7140a435ae315cb095bd11277021e2b711 [file] [log] [blame]
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/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/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/components/feature_usage",
"+chromeos/components/human_presence",
"+chromeos/components/quick_answers",
"+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/network",
# //ash can use the public interfaces of various services.
"+chromeos/services/assistant/public" ,
"+chromeos/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"
],
}