# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/chromeos/ui_mode.gni")
import("//mojo/public/tools/bindings/mojom.gni")
assert(is_chromeos_ash)
# C++ headers and sources that can be used outside ash.
component("cpp") {
sources = [
"accelerator_configuration.cc",
"accelerator_configuration.h",
"accelerator_keycode_lookup_cache.cc",
"accelerator_keycode_lookup_cache.h",
"accelerators.cc",
"accelerators.h",
"accelerators_util.cc",
"accelerators_util.h",
"accessibility_controller_client.h",
"accessibility_controller_enums.h",
"accessibility_event_rewriter_delegate.h",
"accessibility_focus_ring_controller.cc",
"accessibility_focus_ring_controller.h",
"accessibility_focus_ring_info.cc",
"accessibility_focus_ring_info.h",
"ambient/ambient_backend_controller.cc",
"ambient/ambient_backend_controller.h",
"ambient/ambient_client.cc",
"ambient/ambient_client.h",
"ambient/ambient_mode_photo_source.h",
"ambient/ambient_prefs.cc",
"ambient/ambient_prefs.h",
"ambient/ambient_ui_model.cc",
"ambient/ambient_ui_model.h",
"ambient/common/ambient_settings.cc",
"ambient/common/ambient_settings.h",
"ambient/fake_ambient_backend_controller_impl.cc",
"ambient/fake_ambient_backend_controller_impl.h",
"ambient/weather_info.h",
"android_intent_helper.cc",
"android_intent_helper.h",
"annotator/annotations_overlay_view.cc",
"annotator/annotations_overlay_view.h",
"annotator/annotator_controller_base.cc",
"annotator/annotator_controller_base.h",
"annotator/annotator_tool.cc",
"annotator/annotator_tool.h",
"app_list/app_list_client.h",
"app_list/app_list_config.cc",
"app_list/app_list_config.h",
"app_list/app_list_config_provider.cc",
"app_list/app_list_config_provider.h",
"app_list/app_list_controller.cc",
"app_list/app_list_controller.h",
"app_list/app_list_controller_observer.h",
"app_list/app_list_features.cc",
"app_list/app_list_features.h",
"app_list/app_list_metrics.cc",
"app_list/app_list_metrics.h",
"app_list/app_list_model_delegate.h",
"app_list/app_list_notifier.h",
"app_list/app_list_types.cc",
"app_list/app_list_types.h",
"app_list/internal_app_id_constants.h",
"app_menu_constants.h",
"app_types_util.cc",
"app_types_util.h",
"arc_app_id_provider.cc",
"arc_app_id_provider.h",
"arc_compat_mode_util.cc",
"arc_compat_mode_util.h",
"arc_game_controls_flag.h",
"arc_resize_lock_type.h",
"ash_constants.h",
"ash_public_export.h",
"ash_typography.cc",
"ash_typography.h",
"ash_view_ids.h",
"ash_web_view.cc",
"ash_web_view.h",
"ash_web_view_factory.cc",
"ash_web_view_factory.h",
"assistant/assistant_interface_binder.cc",
"assistant/assistant_interface_binder.h",
"assistant/assistant_setup.cc",
"assistant/assistant_setup.h",
"assistant/assistant_state.cc",
"assistant/assistant_state.h",
"assistant/assistant_state_base.cc",
"assistant/assistant_state_base.h",
"assistant/controller/assistant_alarm_timer_controller.cc",
"assistant/controller/assistant_alarm_timer_controller.h",
"assistant/controller/assistant_controller.cc",
"assistant/controller/assistant_controller.h",
"assistant/controller/assistant_controller_observer.h",
"assistant/controller/assistant_interaction_controller.cc",
"assistant/controller/assistant_interaction_controller.h",
"assistant/controller/assistant_notification_controller.cc",
"assistant/controller/assistant_notification_controller.h",
"assistant/controller/assistant_screen_context_controller.cc",
"assistant/controller/assistant_screen_context_controller.h",
"assistant/controller/assistant_suggestions_controller.cc",
"assistant/controller/assistant_suggestions_controller.h",
"assistant/controller/assistant_ui_controller.cc",
"assistant/controller/assistant_ui_controller.h",
"audio_config_service.cc",
"audio_config_service.h",
"auth/active_session_auth_controller.cc",
"auth/active_session_auth_controller.h",
"back_gesture_contextual_nudge_controller.h",
"back_gesture_contextual_nudge_delegate.h",
"bluetooth_config_service.cc",
"bluetooth_config_service.h",
"capture_mode/capture_mode_delegate.h",
"cast_config_controller.cc",
"cast_config_controller.h",
"child_accounts/parent_access_controller.cc",
"child_accounts/parent_access_controller.h",
"clipboard_history_controller.cc",
"clipboard_history_controller.h",
"clipboard_image_model_factory.cc",
"clipboard_image_model_factory.h",
"connectivity_services.cc",
"connectivity_services.h",
"coral_util.cc",
"coral_util.h",
"debug_delegate.h",
"default_user_image.cc",
"default_user_image.h",
"desk_profiles_delegate.cc",
"desk_profiles_delegate.h",
"desk_template.cc",
"desk_template.h",
"esim_manager.cc",
"esim_manager.h",
"feature_discovery_duration_reporter.cc",
"feature_discovery_duration_reporter.h",
"feature_discovery_metric_util.cc",
"feature_discovery_metric_util.h",
"fwupd_download_client.cc",
"fwupd_download_client.h",
"gesture_action_type.h",
"hats_bluetooth_revamp_trigger.cc",
"hats_bluetooth_revamp_trigger.h",
"holding_space/holding_space_client.h",
"holding_space/holding_space_colors.cc",
"holding_space/holding_space_colors.h",
"holding_space/holding_space_constants.h",
"holding_space/holding_space_controller.cc",
"holding_space/holding_space_controller.h",
"holding_space/holding_space_controller_observer.h",
"holding_space/holding_space_file.cc",
"holding_space/holding_space_file.h",
"holding_space/holding_space_image.cc",
"holding_space/holding_space_image.h",
"holding_space/holding_space_item.cc",
"holding_space/holding_space_item.h",
"holding_space/holding_space_item_updated_fields.cc",
"holding_space/holding_space_item_updated_fields.h",
"holding_space/holding_space_metrics.cc",
"holding_space/holding_space_metrics.h",
"holding_space/holding_space_model.cc",
"holding_space/holding_space_model.h",
"holding_space/holding_space_model_observer.h",
"holding_space/holding_space_prefs.cc",
"holding_space/holding_space_prefs.h",
"holding_space/holding_space_progress.cc",
"holding_space/holding_space_progress.h",
"holding_space/holding_space_section.cc",
"holding_space/holding_space_section.h",
"holding_space/holding_space_util.cc",
"holding_space/holding_space_util.h",
"hotspot_config_service.cc",
"hotspot_config_service.h",
"image_downloader.cc",
"image_downloader.h",
"image_util.cc",
"image_util.h",
"ime_controller.cc",
"ime_controller.h",
"ime_controller_client.h",
"ime_info.cc",
"ime_info.h",
"in_session_auth_dialog_client.h",
"in_session_auth_dialog_controller.cc",
"in_session_auth_dialog_controller.h",
"in_session_auth_token_provider.h",
"input_device_settings_controller.cc",
"input_device_settings_controller.h",
"keyboard/arc/arc_input_method_bounds_tracker.cc",
"keyboard/arc/arc_input_method_bounds_tracker.h",
"keyboard/keyboard_config.h",
"keyboard/keyboard_controller.cc",
"keyboard/keyboard_controller.h",
"keyboard/keyboard_controller_observer.h",
"keyboard/keyboard_switches.cc",
"keyboard/keyboard_switches.h",
"keyboard/keyboard_types.h",
"kiosk_app_menu.cc",
"kiosk_app_menu.h",
"lobster/lobster_client.h",
"lobster/lobster_client_factory.h",
"lobster/lobster_enums.h",
"lobster/lobster_feedback_preview.cc",
"lobster/lobster_feedback_preview.h",
"lobster/lobster_image_candidate.h",
"lobster/lobster_result.h",
"lobster/lobster_session.h",
"lobster/lobster_system_state.cc",
"lobster/lobster_system_state.h",
"locale_update_controller.cc",
"locale_update_controller.h",
"lock_screen_widget_factory.cc",
"lock_screen_widget_factory.h",
"login/local_authentication_request_controller.cc",
"login/local_authentication_request_controller.h",
"login/login_utils.cc",
"login/login_utils.h",
"login_accelerators.cc",
"login_accelerators.h",
"login_screen.cc",
"login_screen.h",
"login_screen_client.h",
"login_screen_model.cc",
"login_screen_model.h",
"login_screen_test_api.h",
"login_types.cc",
"login_types.h",
"management_disclosure_client.cc",
"management_disclosure_client.h",
"media_client.h",
"media_controller.cc",
"media_controller.h",
"message_center/arc_notification_constants.h",
"message_center/arc_notification_manager_base.cc",
"message_center/arc_notification_manager_base.h",
"message_center/arc_notification_manager_delegate.h",
"message_center/arc_notifications_host_initializer.cc",
"message_center/arc_notifications_host_initializer.h",
"message_center/oobe_notification_constants.h",
"message_center_ash.cc",
"message_center_ash.h",
"metrics_util.cc",
"metrics_util.h",
"nearby_share_controller.h",
"nearby_share_delegate.h",
"network_config_service.cc",
"network_config_service.h",
"network_icon_image_source.cc",
"network_icon_image_source.h",
"new_window_delegate.cc",
"new_window_delegate.h",
"night_light_controller.cc",
"night_light_controller.h",
"note_taking_client.cc",
"note_taking_client.h",
"notification_utils.cc",
"notification_utils.h",
"notifier_metadata.cc",
"notifier_metadata.h",
"notifier_settings_controller.cc",
"notifier_settings_controller.h",
"notifier_settings_observer.h",
"oobe_dialog_util.cc",
"oobe_dialog_util.h",
"pagination/pagination_controller.cc",
"pagination/pagination_controller.h",
"pagination/pagination_model.cc",
"pagination/pagination_model.h",
"pagination/pagination_model_observer.h",
"peripherals_app_delegate.h",
"personalization_app/enterprise_policy_delegate.h",
"personalization_app/user_display_info.cc",
"personalization_app/user_display_info.h",
"picker/picker_category.h",
"picker/picker_client.cc",
"picker/picker_client.h",
"picker/picker_search_result.cc",
"picker/picker_search_result.h",
"picker/picker_web_paste_target.cc",
"picker/picker_web_paste_target.h",
"power_utils.cc",
"power_utils.h",
"presentation_time_recorder.cc",
"presentation_time_recorder.h",
"print_preview_delegate.h",
"privacy_hub_delegate.h",
"privacy_screen_dlp_helper.cc",
"privacy_screen_dlp_helper.h",
"projector/projector_client.cc",
"projector/projector_client.h",
"projector/projector_controller.cc",
"projector/projector_controller.h",
"projector/projector_new_screencast_precondition.cc",
"projector/projector_new_screencast_precondition.h",
"projector/projector_session.cc",
"projector/projector_session.h",
"projector/speech_recognition_availability.cc",
"projector/speech_recognition_availability.h",
"reauth_reason.h",
"resize_shadow_type.h",
"rounded_corner_utils.cc",
"rounded_corner_utils.h",
"rounded_image_view.cc",
"rounded_image_view.h",
"saved_desk_delegate.h",
"scale_utility.cc",
"scale_utility.h",
"schedule_enums.cc",
"schedule_enums.h",
"scoped_clipboard_history_pause.h",
"scoped_guest_button_blocker.h",
"scoped_singleton_resetter_for_test.h",
"screen_backlight.cc",
"screen_backlight.h",
"screen_backlight_observer.h",
"screen_backlight_type.h",
"select_to_speak_event_handler_delegate.h",
"session/scoped_screen_lock_blocker.h",
"session/session_activation_observer.h",
"session/session_controller.cc",
"session/session_controller.h",
"session/session_controller_client.h",
"session/session_observer.cc",
"session/session_observer.h",
"session/session_types.cc",
"session/session_types.h",
"session/user_info.cc",
"session/user_info.h",
"shelf_item.cc",
"shelf_item.h",
"shelf_item_delegate.cc",
"shelf_item_delegate.h",
"shelf_model.cc",
"shelf_model.h",
"shelf_model_observer.h",
"shelf_prefs.cc",
"shelf_prefs.h",
"shelf_types.cc",
"shelf_types.h",
"shelf_ui_info.cc",
"shelf_ui_info.h",
"shell_window_ids.cc",
"shell_window_ids.h",
"shutdown_controller.cc",
"shutdown_controller.h",
"smartlock_state.cc",
"smartlock_state.h",
"style/color_mode_observer.h",
"style/color_provider.cc",
"style/color_provider.h",
"style/dark_light_mode_controller.cc",
"style/dark_light_mode_controller.h",
"stylus_utils.cc",
"stylus_utils.h",
"system/anchored_nudge_data.cc",
"system/anchored_nudge_data.h",
"system/anchored_nudge_manager.cc",
"system/anchored_nudge_manager.h",
"system/power/power_button_controller_base.cc",
"system/power/power_button_controller_base.h",
"system/scoped_nudge_pause.cc",
"system/scoped_nudge_pause.h",
"system/scoped_toast_pause.cc",
"system/scoped_toast_pause.h",
"system/system_nudge_pause_manager.cc",
"system/system_nudge_pause_manager.h",
"system/toast_data.cc",
"system/toast_data.h",
"system/toast_manager.cc",
"system/toast_manager.h",
"system_notification_builder.cc",
"system_notification_builder.h",
"system_sounds_delegate.h",
"system_tray_client.h",
"tab_cluster/clusterer.cc",
"tab_cluster/clusterer.h",
"tab_cluster/correlation_clusterer.cc",
"tab_cluster/correlation_clusterer.h",
"tab_cluster/tab_cluster_ui_controller.cc",
"tab_cluster/tab_cluster_ui_controller.h",
"tab_cluster/tab_cluster_ui_item.cc",
"tab_cluster/tab_cluster_ui_item.h",
"tab_cluster/undirected_graph.cc",
"tab_cluster/undirected_graph.h",
"tab_strip_delegate.cc",
"tab_strip_delegate.h",
"tablet_mode.cc",
"tablet_mode.h",
"tablet_mode_observer.h",
"update_types.h",
"views_text_services_context_menu_ash.cc",
"views_text_services_context_menu_ash.h",
"vm_camera_mic_constants.cc",
"vm_camera_mic_constants.h",
"wallpaper/google_photos_wallpaper_params.cc",
"wallpaper/google_photos_wallpaper_params.h",
"wallpaper/online_wallpaper_params.cc",
"wallpaper/online_wallpaper_params.h",
"wallpaper/online_wallpaper_variant.cc",
"wallpaper/online_wallpaper_variant.h",
"wallpaper/sea_pen_image.cc",
"wallpaper/sea_pen_image.h",
"wallpaper/wallpaper_controller.cc",
"wallpaper/wallpaper_controller.h",
"wallpaper/wallpaper_controller_client.h",
"wallpaper/wallpaper_controller_observer.cc",
"wallpaper/wallpaper_controller_observer.h",
"wallpaper/wallpaper_drivefs_delegate.h",
"wallpaper/wallpaper_info.cc",
"wallpaper/wallpaper_info.h",
"wallpaper/wallpaper_types.cc",
"wallpaper/wallpaper_types.h",
"webauthn_dialog_controller.cc",
"webauthn_dialog_controller.h",
"window_animation_types.h",
"window_backdrop.cc",
"window_backdrop.h",
"window_properties.cc",
"window_properties.h",
]
defines = [ "ASH_PUBLIC_IMPLEMENTATION" ]
assert_no_deps = [
"//ash/components/arc",
"//ash/public/cpp/external_arc",
"//components/arc",
"//components/exo",
"//components/soda",
]
deps = [
":accelerator_actions",
"//ash/constants",
"//ash/public/cpp/ambient/proto",
"//ash/resources/vector_icons",
"//ash/strings",
"//base",
"//build:branding_buildflags",
"//chromeos/ash/components/audio",
"//chromeos/ash/components/audio:in_process_audio_config",
"//chromeos/ash/components/auth_panel/public",
"//chromeos/ash/components/cryptohome",
"//chromeos/ash/components/osauth/public",
"//chromeos/ash/services/assistant/public/cpp",
"//chromeos/ash/services/bluetooth_config:in_process_bluetooth_config",
"//chromeos/ash/services/cellular_setup:in_process_esim_manager",
"//chromeos/ash/services/connectivity/public/cpp",
"//chromeos/ash/services/hotspot_config:in_process_hotspot_config",
"//chromeos/ash/services/nearby/public/mojom",
"//chromeos/ash/services/network_config:in_process_instance",
"//chromeos/dbus/power:power_manager_proto",
"//chromeos/strings:strings_grit",
"//chromeos/ui/base",
"//chromeos/ui/clipboard_history",
"//chromeos/ui/frame",
"//chromeos/ui/vector_icons",
"//components/access_code_cast/common:metrics",
"//components/language/core/browser:browser",
"//components/pref_registry",
"//components/prefs",
"//components/sync/model",
"//components/sync_device_info",
"//components/tab_groups",
"//components/user_manager",
"//mojo/public/cpp/bindings",
"//net/traffic_annotation",
"//services/data_decoder/public/cpp",
"//services/network/public/cpp:cpp",
"//skia/public/mojom",
"//ui/aura",
"//ui/base",
"//ui/chromeos/strings",
"//ui/chromeos/styles:cros_tokens_color_mappings",
"//ui/compositor_extra",
"//ui/display",
"//ui/events",
"//ui/events:dom_keycode_converter",
"//ui/events/devices",
"//ui/events/ozone/layout",
"//ui/message_center/public/cpp",
"//ui/strings:ui_strings_grit",
"//ui/views",
"//ui/wm",
"//ui/wm/public",
]
public_deps = [
"//ash/components/arc/mojom:notifications",
"//ash/public/mojom",
"//ash/webui/common/mojom:sea_pen",
"//ash/webui/personalization_app/mojom:mojom_shared_cpp_sources",
"//ash/webui/personalization_app/proto",
"//base",
"//chromeos/ash/components/audio/public/mojom",
"//chromeos/ash/components/login/auth",
"//chromeos/ash/services/assistant/public/mojom",
"//chromeos/ash/services/bluetooth_config/public/mojom",
"//chromeos/ash/services/cellular_setup/public/mojom",
"//chromeos/ash/services/connectivity/public/mojom",
"//chromeos/ash/services/hotspot_config/public/mojom",
"//chromeos/components/security_token_pin",
"//chromeos/crosapi/mojom",
"//chromeos/services/network_config/public/mojom",
"//components/app_restore",
"//components/manta/proto",
"//components/session_manager:base",
"//components/user_manager",
"//components/version_info:channel",
"//ui/base/ime/ash",
"//ui/base/ime/ash:ime_types",
"//ui/chromeos/resources:resources",
"//ui/chromeos/resources:resources_grit",
"//ui/gfx",
]
if (is_chrome_branded) {
deps += [
"//chromeos/ash/resources/internal/icons:vector_icons",
"//chromeos/ash/resources/internal/strings",
]
}
output_name = "ash_public_cpp"
}
source_set("unit_tests") {
testonly = true
sources = [
"accelerator_actions_unittest.cc",
"accelerator_keycode_lookup_cache_unittest.cc",
"accelerators_util_unittest.cc",
"android_intent_helper_unittest.cc",
"app_list/app_list_config_provider_unittest.cc",
"holding_space/holding_space_controller_unittest.cc",
"holding_space/holding_space_image_unittest.cc",
"holding_space/holding_space_item_unittest.cc",
"holding_space/holding_space_metrics_unittest.cc",
"holding_space/holding_space_model_unittest.cc",
"holding_space/holding_space_progress_unittest.cc",
"holding_space/holding_space_section_unittest.cc",
"holding_space/holding_space_util_unittest.cc",
"image_util_unittest.cc",
"metrics_util_unittest.cc",
"pagination/pagination_model_unittest.cc",
"power_utils_unittest.cc",
"shelf_model_unittest.cc",
"system/toast_data_unittest.cc",
"system_notification_builder_unittest.cc",
"tab_cluster/clusterer_unittest.cc",
"tab_cluster/correlation_clusterer_unittest.cc",
"tab_cluster/undirected_graph_unittest.cc",
"wallpaper/wallpaper_info_unittest.cc",
"wallpaper/wallpaper_types_unittest.cc",
]
deps = [
":cpp",
":test_support",
"//ash:test_support",
"//ash/public/cpp/holding_space:test_support",
"//base",
"//base/test:test_support",
"//chromeos/ui/vector_icons",
"//components/prefs:test_support",
"//mojo/public/cpp/bindings",
"//services/data_decoder/public/mojom",
"//skia",
"//testing/gtest",
"//ui/aura:test_support",
"//ui/base:test_support",
"//ui/chromeos/styles:cros_styles_views",
"//ui/chromeos/styles:cros_tokens_color_mappings",
"//ui/compositor_extra",
"//ui/events",
"//ui/events:dom_keycode_converter",
"//ui/events/devices",
"//ui/events/ozone/layout",
"//ui/gfx:test_support",
"//ui/views",
"//ui/views:test_support",
]
data = [
# Needed to make commit bots run unit_tests on enums.xml changes.
"//tools/metrics/histograms/metadata/chromeos/enums.xml",
]
}
source_set("accelerator_actions") {
sources = [
"accelerator_actions.cc",
"accelerator_actions.h",
"ash_public_export.h",
]
deps = [ "//base" ]
}
source_set("test_support") {
testonly = true
sources = [
"personalization_app/time_of_day_test_utils.cc",
"personalization_app/time_of_day_test_utils.h",
"picker/mock_picker_client.cc",
"picker/mock_picker_client.h",
"test/in_process_data_decoder.cc",
"test/in_process_data_decoder.h",
"test/mock_annotator_controller.cc",
"test/mock_annotator_controller.h",
"test/mock_in_session_auth_token_provider.cc",
"test/mock_in_session_auth_token_provider.h",
"test/mock_input_device_settings_controller.cc",
"test/mock_input_device_settings_controller.h",
"test/mock_projector_client.cc",
"test/mock_projector_client.h",
"test/mock_projector_controller.cc",
"test/mock_projector_controller.h",
"test/mock_session_controller.cc",
"test/mock_session_controller.h",
"test/test_cast_config_controller.cc",
"test/test_cast_config_controller.h",
"test/test_desk_profiles_delegate.cc",
"test/test_desk_profiles_delegate.h",
"test/test_image_decoder.cc",
"test/test_image_decoder.h",
"test/test_image_downloader.cc",
"test/test_image_downloader.h",
"test/test_keyboard_controller_observer.cc",
"test/test_keyboard_controller_observer.h",
"test/test_nearby_share_delegate.cc",
"test/test_nearby_share_delegate.h",
"test/test_new_window_delegate.cc",
"test/test_new_window_delegate.h",
"test/test_saved_desk_delegate.cc",
"test/test_saved_desk_delegate.h",
"test/test_shelf_item_delegate.cc",
"test/test_shelf_item_delegate.h",
"test/test_system_tray_client.cc",
"test/test_system_tray_client.h",
"test/test_tab_strip_delegate.cc",
"test/test_tab_strip_delegate.h",
]
deps = [
":cpp",
"//base",
"//base/test:test_support",
"//chromeos/ash/services/nearby/public/mojom",
"//components/access_code_cast/common:metrics",
"//mojo/public/cpp/bindings",
"//services/data_decoder/public/cpp:service_provider",
"//services/data_decoder/public/cpp:test_support",
"//services/data_decoder/public/mojom",
"//services/device/public/cpp:test_support",
"//services/network/public/cpp:cpp",
"//skia",
"//testing/gmock",
"//testing/gtest",
"//ui/aura",
"//ui/aura:test_support",
"//ui/gfx",
"//ui/gfx:test_support",
"//ui/gfx/codec",
"//ui/views",
]
}