# Copyright 2025 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/ozone.gni") import("//chrome/common/features.gni") import("//mojo/public/tools/bindings/mojom.gni") if (is_android) { import("//build/config/android/rules.gni") # Target to generate Java enums from C++ headers java_cpp_enum("enums_java") { sources = [ "states/handoff_button_state.h", "states/tab_indicator_state.h", ] } } source_set("states") { public = [ "states/actor_overlay_state.h", "states/actor_task_nudge_state.h", "states/handoff_button_state.h", "states/tab_indicator_state.h", ] public_deps = [ "//chrome/browser/actor:types", "//components/actor/core", ] } source_set("dom_node_geometry_types") { sources = [ "dom_node_geometry_types.h" ] } source_set("metrics") { sources = [ "actor_ui_metrics.cc", "actor_ui_metrics.h", "actor_ui_metrics_types.h", ] public_deps = [ ":dom_node_geometry_types", ":states", "//base", ] } source_set("dom_node_geometry") { sources = [ "dom_node_geometry.cc", "dom_node_geometry.h", ] deps = [ ":dom_node_geometry_types", ":metrics", "//chrome/browser/actor:types", "//chrome/common:chrome_features", "//components/actor/core", "//components/optimization_guide/proto:optimization_guide_proto", ] } mojom("mojo_bindings") { disable_variants = true public_deps = [ "//mojo/public/mojom/base" ] deps = [ "//skia/public/mojom", "//ui/gfx/geometry/mojom", ] sources = [ "actor_overlay.mojom" ] webui_module_path = "/" } if (!is_android) { source_set("actor_overlay_web_view") { sources = [ "actor_overlay_web_view.cc", "actor_overlay_web_view.h", ] deps = [ ":actor_overlay", "//base", "//chrome/browser/profiles", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/webui", "//chrome/browser/ui/webui:webui_util", "//chrome/common:chrome_features", "//components/tabs:public", "//content/public/browser", "//ui/views", "//ui/views/controls/webview", ] } } source_set("actor_overlay") { sources = [ "actor_overlay_handler.cc", "actor_overlay_handler.h", "actor_overlay_ui.cc", "actor_overlay_ui.h", ] deps = [ ":mojo_bindings", ":ui", "//base", "//chrome/browser/actor/resources:grit_grit", "//chrome/browser/profiles", "//chrome/browser/resources/actor_overlay:resources", "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/tabs:tabs_public", "//chrome/browser/ui/webui", "//chrome/browser/ui/webui:webui_util", "//chrome/common", "//components/tabs:public", "//content/public/browser", "//mojo/public/cpp/bindings", "//skia", "//ui/color", "//ui/native_theme", "//ui/webui", ] if (!is_android) { deps += [ "//chrome/browser/themes" ] } } if (!skip_android_unmigrated_actor_files) { source_set("window_controller_impl") { sources = [ "actor_ui_window_controller.cc" ] deps = [ ":actor_overlay", ":actor_overlay_web_view", ":metrics", ":ui", "//chrome/browser/actor", "//chrome/browser/profiles:profile", "//chrome/browser/ui", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/tabs:tab_strip", "//chrome/common", "//ui/views", "//ui/views/controls/webview", ] } source_set("actor_ui_interactive_base") { sources = [ "actor_ui_interactive_browser_test.cc", "actor_ui_interactive_browser_test.h", ] testonly = true deps = [ "//base/test:test_support", "//chrome/browser/actor", "//chrome/browser/actor:test_support", "//chrome/browser/actor:types", "//chrome/test:test_support_ui", ] } } source_set("test_support") { sources = [ "test_support/fake_actor_overlay_page.cc", "test_support/fake_actor_overlay_page.h", "test_support/mock_actor_ui_state_manager.cc", "test_support/mock_actor_ui_state_manager.h", "test_support/mock_actor_ui_tab_controller.cc", "test_support/mock_actor_ui_tab_controller.h", "test_support/mock_event_dispatcher.cc", "test_support/mock_event_dispatcher.h", ] if (!skip_android_unmigrated_actor_files) { sources += [ "test_support/mock_handoff_button_controller.cc", "test_support/mock_handoff_button_controller.h", ] } testonly = true public_deps = [ "//base", "//chrome/browser/ui:test_support", "//components/tabs:test_support", "//testing/gmock", ] deps = [ ":event_dispatcher", ":ui", "//chrome/browser/actor", ] # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] } if (!skip_android_unmigrated_actor_files) { source_set("browser_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "actor_overlay_browsertest.cc", "actor_overlay_ui_browsertest.cc", "actor_popup_browsertest.cc", "actor_ui_tab_controller_browsertest.cc", "dom_node_geometry_browsertest.cc", "handoff_button_controller_pixel_test.cc", ] deps = [ ":actor_overlay", ":actor_overlay_web_view", ":dom_node_geometry", ":ui", ":ui_event_types", "//base/test:test_support", "//chrome/browser/actor", "//chrome/browser/actor:test_support", "//chrome/browser/profiles:profile", "//chrome/browser/ui", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/tabs:tab_strip", "//chrome/browser/ui/tabs/alert:tab_alert", "//chrome/browser/ui/views/frame", "//chrome/browser/ui/views/tabs/tab", "//chrome/common", "//chrome/test:test_support", "//chrome/test:test_support_ui", "//content/test:test_support", "//testing/gmock", "//testing/gtest", "//ui/views:view_pixel_diff_test_support", ] } source_set("interactive_ui_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "handoff_button_controller_interactive_uitest.cc" ] deps = [ ":actor_ui_interactive_base", ":ui", "//base/test:test_support", "//chrome/browser/actor", "//chrome/browser/glic", "//chrome/browser/glic/test_support", "//chrome/browser/profiles:profile", "//chrome/browser/ui", "//chrome/browser/ui:ui_features", "//chrome/browser/ui/side_panel:side_panel_views_dependent", "//chrome/common", "//chrome/test:test_support", "//chrome/test:test_support_ui", "//content/test:test_support", "//ui/base:ozone_buildflags", "//ui/base/interaction", ] if (use_ozone) { deps += [ "//ui/ozone" ] } } } source_set("ui") { sources = [ "actor_ui_state_manager.cc", "actor_ui_state_manager.h", "actor_ui_state_manager_interface.h", "actor_ui_tab_controller_interface.cc", "actor_ui_tab_controller_interface.h", ] deps = [ ":ui_event_types", ":ui_event_utils", "//base", "//chrome/browser/ui/tabs:tabs_public", "//chrome/common", ] public_deps = [ ":metrics", ":mojo_bindings", "//ui/base/unowned_user_data", ] if (!is_android) { sources += [ "../actor_tab_strip_tracker_desktop.cc", "../actor_tab_strip_tracker_desktop.h", "actor_task_unload_handler.cc", "actor_task_unload_handler.h", ] deps += [ "//chrome/app/theme:chrome_unscaled_resources", "//chrome/browser/actor", "//chrome/browser/glic", "//chrome/browser/lifetime", "//chrome/browser/ui:browser_tab_strip", "//components/constrained_window", "//components/vector_icons", "//ui/strings:ui_strings", ] } if (!skip_android_unmigrated_actor_files) { sources += [ "actor_border_view_controller.cc", "actor_border_view_controller.h", "actor_ui_state_manager_prefs.cc", "actor_ui_state_manager_prefs.h", "actor_ui_tab_controller.cc", "actor_ui_tab_controller.h", "actor_ui_window_controller.h", "handoff_button_controller.cc", "handoff_button_controller.h", ] deps += [ "//chrome/app/vector_icons", "//chrome/browser/actor", "//chrome/browser/actor/resources:browser_resources", "//chrome/browser/glic", "//chrome/browser/profiles:profile", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/immersive:immersive_mode_controller", "//chrome/browser/ui/tabs:tab_strip", "//chrome/browser/ui/toasts", "//chrome/browser/ui/toasts/api:toasts", "//components/prefs", "//components/tabs:public", "//third_party/abseil-cpp:absl", "//ui/views", ] # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] } if (!is_android) { deps += [ "//chrome/browser/ui:browser_tab_strip_tracker" ] } } source_set("event_dispatcher") { sources = [ "event_dispatcher.cc", "event_dispatcher.h", "event_dispatcher_computations.cc", ] public_deps = [ ":ui", "//base", "//chrome/browser/actor:types", ] deps = [ ":dom_node_geometry", ":ui_event_types", ":ui_event_utils", "//chrome/browser/actor", "//chrome/browser/actor:variants", "//chrome/browser/actor/ui", "//third_party/abseil-cpp:absl", ] } source_set("ui_event_types") { sources = [ "ui_event.cc", "ui_event.h", ] public_deps = [ "//base", "//components/actor/core:task_id", # ActorTask::State isn't in actor:types "//chrome/browser/actor", "//chrome/browser/actor:types", ] deps = [ "//components/tabs:public" ] } source_set("ui_event_utils") { sources = [ "ui_event_debugstring.cc", "ui_event_debugstring.h", ] deps = [ ":ui_event_types", "//base", "//third_party/abseil-cpp:absl", ] } source_set("unit_tests") { testonly = true sources = [ "dom_node_geometry_unittest.cc" ] deps = [ ":dom_node_geometry", "//chrome/test:test_support", "//testing/gtest", ] if (!skip_android_unmigrated_actor_files) { sources += [ "actor_border_view_controller_unittest.cc", "actor_overlay_handler_unittest.cc", "actor_overlay_web_view_unittest.cc", "actor_ui_metrics_unittest.cc", "actor_ui_state_manager_unittest.cc", "actor_ui_tab_controller_unittest.cc", "actor_ui_window_controller_unittest.cc", "event_dispatcher_unittest.cc", "handoff_button_controller_unittest.cc", "ui_event_debugstring_unittest.cc", ] deps += [ ":actor_overlay", ":actor_overlay_web_view", ":event_dispatcher", ":test_support", ":ui", ":ui_event_types", ":ui_event_utils", "//chrome/browser/actor", "//chrome/browser/actor:impl", "//chrome/browser/actor:test_support", "//chrome/browser/ui/tabs:tabs_public", "//chrome/browser/ui/tabs:test_support", "//chrome/browser/ui/views/frame:test_support", "//chrome/browser/ui/webui:webui_util", "//chrome/common", "//components/tabs:public", "//components/tabs:test_support", "//content/test:test_support", "//testing/gmock", "//ui/base/unowned_user_data", ] data = [ "//tools/metrics/actions/actions.xml" ] # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] } }