| # Copyright 2024 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/gclient_args.gni") |
| import("//build/config/ozone.gni") |
| import("//chrome/common/features.gni") |
| import("//mojo/public/tools/bindings/mojom.gni") |
| |
| assert(enable_glic) |
| |
| # TODO(b/430371855): This target should eventually become Glic's public target, |
| # to be imported from external BUILD files. The "impl" source set below would |
| # then list resources only needed internally for the implementation. In the |
| # meantime, prefer adding new sources or dependencies only needed internally to |
| # the "impl" target. |
| source_set("glic") { |
| sources = [ |
| "browser_ui/glic_border_view.h", |
| "browser_ui/glic_button_controller.h", |
| "browser_ui/glic_button_controller_delegate.h", |
| "browser_ui/glic_iph_controller.h", |
| "browser_ui/glic_tab_indicator_helper.h", |
| "browser_ui/glic_tab_underline_view.h", |
| "browser_ui/glic_vector_icon_manager.h", |
| "browser_ui/scoped_glic_button_indicator.h", |
| "fre/glic_fre_ui.h", |
| "glic_hotkey.h", |
| "glic_metrics.h", |
| "glic_net_log.h", |
| "glic_pref_names.h", |
| "glic_profile_manager.h", |
| "glic_settings_util.h", |
| "glic_user_status_code.h", |
| "glic_user_status_fetcher.h", |
| "glic_user_status_request.h", |
| "glic_zero_state_suggestions_manager.h", |
| "host/auth_controller.h", |
| "host/context/glic_focused_tab_manager.h", |
| "host/context/glic_page_context_fetcher.h", |
| "host/context/glic_tab_data.h", |
| "host/glic_actor_controller.h", |
| "host/glic_annotation_manager.h", |
| "host/glic_cookie_synchronizer.h", |
| "host/glic_page_handler.h", |
| "host/glic_ui.h", |
| "host/glic_web_client_access.h", |
| "host/guest_util.h", |
| "host/host.h", |
| "public/context/glic_sharing_manager.h", |
| "public/glic_enabling.h", |
| "public/glic_keyed_service.h", |
| "public/glic_keyed_service_factory.h", |
| "widget/glic_side_panel_coordinator.h", |
| "widget/glic_view.h", |
| "widget/glic_window_controller.h", |
| "widget/local_hotkey_manager.h", |
| ] |
| public_deps = [ |
| ":enum", |
| ":mojo_bindings", |
| "//base", |
| "//chrome/browser:shell_integration", |
| "//chrome/browser/contextual_cueing", |
| "//chrome/browser/glic/resources:browser_resources", |
| "//chrome/browser/optimization_guide", |
| "//chrome/browser/page_content_annotations:fetcher", |
| "//chrome/browser/permissions/system", |
| "//chrome/browser/profiles:profile", |
| "//chrome/browser/ui:browser_list", |
| "//chrome/browser/ui/browser_window", |
| "//chrome/browser/ui/tabs:tab_strip_model_observer", |
| "//components/content_extraction/content/browser", |
| "//components/favicon/core", |
| "//components/metrics", |
| "//components/optimization_guide/content/browser", |
| "//components/prefs", |
| "//components/signin/public/identity_manager", |
| "//components/variations", |
| "//content/public/browser", |
| "//google_apis/common", |
| "//ui/base/unowned_user_data", |
| "//ui/views", |
| "//ui/views/controls/webview", |
| "//ui/webui", |
| ] |
| deps = [ |
| "//chrome/browser/actor:types", |
| "//chrome/common", |
| "//components/user_education/common", |
| ] |
| } |
| |
| source_set("enum") { |
| sources = [ "glic_enums.h" ] |
| } |
| |
| # TODO(b/430371855): This is the better target for resources only needed |
| # by the Glic implementation. Prefer adding to this target any new sources or |
| # dependencies that are only needed internally. |
| source_set("impl") { |
| sources = [ |
| "glic_hotkey.cc", |
| "glic_metrics.cc", |
| "glic_metrics_provider.cc", |
| "glic_metrics_provider.h", |
| "glic_net_log.cc", |
| "glic_occlusion_notifier.cc", |
| "glic_occlusion_notifier.h", |
| "glic_pref_names.cc", |
| "glic_profile_manager.cc", |
| "glic_settings_util.cc", |
| "glic_user_status_fetcher.cc", |
| "glic_user_status_request.cc", |
| "glic_zero_state_suggestions_manager.cc", |
| "host/auth_controller.cc", |
| "host/context/glic_focused_browser_manager.cc", |
| "host/context/glic_focused_browser_manager.h", |
| "host/context/glic_focused_tab_manager.cc", |
| "host/context/glic_page_context_fetcher.cc", |
| "host/context/glic_pin_candidate_comparator.cc", |
| "host/context/glic_pin_candidate_comparator.h", |
| "host/context/glic_pinned_tab_manager.cc", |
| "host/context/glic_pinned_tab_manager.h", |
| "host/context/glic_screenshot_capturer.cc", |
| "host/context/glic_screenshot_capturer.h", |
| "host/context/glic_sharing_manager_impl.cc", |
| "host/context/glic_sharing_manager_impl.h", |
| "host/context/glic_sharing_utils.cc", |
| "host/context/glic_sharing_utils.h", |
| "host/context/glic_tab_data.cc", |
| "host/glic_actor_controller.cc", |
| "host/glic_annotation_manager.cc", |
| "host/glic_cookie_synchronizer.cc", |
| "host/glic_page_handler.cc", |
| "host/glic_synthetic_trial_manager.cc", |
| "host/glic_synthetic_trial_manager.h", |
| "host/glic_ui.cc", |
| "host/guest_util.cc", |
| "host/host.cc", |
| "host/page_metadata_manager.cc", |
| "host/page_metadata_manager.h", |
| "host/webui_contents_container.cc", |
| "host/webui_contents_container.h", |
| "public/glic_enabling.cc", |
| "public/glic_keyed_service.cc", |
| "public/glic_keyed_service_factory.cc", |
| "widget/application_hotkey_delegate.cc", |
| "widget/application_hotkey_delegate.h", |
| "widget/browser_conditions.cc", |
| "widget/browser_conditions.h", |
| "widget/glic_side_panel_coordinator.cc", |
| "widget/glic_view.cc", |
| "widget/glic_widget.cc", |
| "widget/glic_widget.h", |
| "widget/glic_window_animator.cc", |
| "widget/glic_window_animator.h", |
| "widget/glic_window_config.cc", |
| "widget/glic_window_config.h", |
| "widget/glic_window_controller_impl.cc", |
| "widget/glic_window_controller_impl.h", |
| "widget/glic_window_hotkey_delegate.cc", |
| "widget/glic_window_hotkey_delegate.h", |
| "widget/glic_window_resize_animation.cc", |
| "widget/glic_window_resize_animation.h", |
| "widget/local_hotkey_manager.cc", |
| ] |
| public_deps = [ "//chrome/browser:browser_public_dependencies" ] |
| deps = [ |
| ":glic", |
| "//chrome/browser:browser_process", |
| "//chrome/browser:global_features", |
| "//chrome/browser/actor", |
| "//chrome/browser/actor/ui", |
| "//chrome/browser/background/glic", |
| "//chrome/browser/contextual_cueing", |
| "//chrome/browser/feedback", |
| "//chrome/browser/glic/browser_ui", |
| "//chrome/browser/glic/fre", |
| "//chrome/browser/glic/media", |
| "//chrome/browser/glic/shared", |
| "//chrome/browser/lifetime:termination_notification", |
| "//chrome/browser/media/webrtc", |
| "//chrome/browser/picture_in_picture", |
| "//chrome/browser/profiles:profile_util", |
| "//chrome/browser/profiles/keep_alive", |
| "//chrome/browser/resources/glic:resources", |
| "//chrome/browser/resources/glic/fre:resources", |
| "//chrome/browser/signin", |
| "//chrome/browser/themes", |
| "//chrome/browser/ui:browser_element_identifiers", |
| "//chrome/browser/ui:browser_list", |
| "//chrome/browser/ui:browser_navigator_params_headers", |
| "//chrome/browser/ui:browser_tab_strip", |
| "//chrome/browser/ui:layout_constants", |
| "//chrome/browser/ui:ui_features", |
| "//chrome/browser/ui/browser_window", |
| "//chrome/browser/ui/profiles", |
| "//chrome/browser/ui/tabs:tab_strip", |
| "//chrome/browser/ui/user_education", |
| "//chrome/browser/ui/views", |
| "//chrome/browser/ui/views/frame/", |
| "//chrome/browser/ui/views/side_panel", |
| "//chrome/common", |
| "//components/favicon/content", |
| "//components/feature_engagement/public:feature_constants", |
| "//components/feedback/content", |
| "//components/guest_view/browser", |
| "//components/language/core/common", |
| "//components/metrics", |
| "//components/metrics_services_manager", |
| "//components/pref_registry", |
| "//components/prefs", |
| "//components/sessions", |
| "//components/variations/service", |
| "//extensions/browser", |
| "//third_party/metrics_proto", |
| "//ui/webui", |
| "//url", |
| ] |
| |
| if (is_mac) { |
| deps += [ "//ui/accelerated_widget_mac" ] |
| } |
| if (use_ozone) { |
| deps += [ "//ui/ozone" ] |
| } |
| if (enable_pdf) { |
| deps += [ |
| "//components/pdf/browser", |
| "//components/pdf/common:constants", |
| ] |
| } |
| } |
| |
| mojom("mojo_bindings") { |
| sources = [ |
| "host/glic.mojom", |
| "host/glic_features.mojom", |
| ] |
| webui_module_path = "/" |
| |
| public_deps = [ |
| "//chrome/browser/glic/fre:mojo_bindings", |
| "//components/content_settings/core/common:content_settings_types", |
| "//components/optimization_guide/content/mojom:mojo_interfaces", |
| "//mojo/public/mojom/base", |
| "//mojo/public/mojom/base:protobuf_support", |
| "//skia/public/mojom", |
| "//third_party/blink/public/mojom:mojom_platform", |
| "//ui/gfx/geometry/mojom", |
| "//url/mojom:url_mojom_gurl", |
| "//url/mojom:url_mojom_origin", |
| ] |
| |
| overridden_deps = [ "//third_party/blink/public/mojom:mojom_platform" ] |
| |
| component_deps = [ "//content/public/common" ] |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ |
| "glic_metrics_unittest.cc", |
| "host/context/glic_pin_candidate_comparator_unittest.cc", |
| "host/context/glic_screenshot_capturer_unittest.cc", |
| "host/context/glic_tab_data_unittest.cc", |
| "host/glic_cookie_synchronizer_unittest.cc", |
| "host/guest_util_unittest.cc", |
| "public/glic_enabling_unittest.cc", |
| "widget/local_hotkey_manager_unittest.cc", |
| ] |
| deps = [ |
| ":glic", |
| ":impl", |
| "//base/test:test_support", |
| "//chrome/browser:global_features", |
| "//chrome/browser/background", |
| "//chrome/browser/background/glic", |
| "//chrome/browser/glic/browser_ui:unit_tests", |
| "//chrome/browser/glic/fre:unit_tests", |
| "//chrome/browser/glic/media:unit_tests", |
| "//chrome/browser/glic/test_support", |
| "//chrome/browser/prefs", |
| "//chrome/browser/status_icons", |
| "//chrome/browser/ui", |
| "//chrome/browser/ui:ui_features", |
| "//chrome/common:chrome_features", |
| "//chrome/test:test_support", |
| "//components/live_caption", |
| "//components/live_caption:constants", |
| "//testing/gmock", |
| "//testing/gtest", |
| ] |
| } |
| |
| source_set("browser_tests") { |
| testonly = true |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| sources = [ |
| "glic_browsertest.cc", |
| "glic_keyed_service_browsertest.cc", |
| "glic_net_log_browsertest.cc", |
| "glic_policy_browsertest.cc", |
| "glic_profile_manager_browsertest.cc", |
| "glic_user_status_browsertest.cc", |
| "host/context/glic_pinned_tab_manager_browsertest.cc", |
| "host/glic_api_browsertest.cc", |
| "host/guest_util_browsertest.cc", |
| "public/glic_enabling_browsertest.cc", |
| "widget/application_hotkey_delegate_browsertest.cc", |
| ] |
| deps = [ |
| ":glic", |
| ":impl", |
| "//chrome/browser", |
| "//chrome/browser:browser_process", |
| "//chrome/browser:global_features", |
| "//chrome/browser/actor", |
| "//chrome/browser/actor:test_support", |
| "//chrome/browser/actor/ui", |
| "//chrome/browser/actor/ui:test_support", |
| "//chrome/browser/background/glic", |
| "//chrome/browser/contextual_cueing:test_support", |
| "//chrome/browser/extensions", |
| "//chrome/browser/glic/fre:browser_tests", |
| "//chrome/browser/glic/test_support", |
| "//chrome/browser/permissions:test_support", |
| "//chrome/browser/policy:test_support", |
| "//chrome/browser/prefs", |
| "//chrome/browser/ui", |
| "//chrome/browser/ui:ui_features", |
| "//chrome/browser/ui/profiles", |
| "//chrome/browser/ui/toasts", |
| "//chrome/common:constants", |
| "//chrome/test:test_support", |
| "//chrome/test:test_support_ui", |
| "//components/tabs:test_support", |
| "//components/variations/service", |
| "//content/test:test_support", |
| "//extensions/browser", |
| "//extensions/browser/api:extensions_api_client", |
| "//net:test_support", |
| "//ui/base:ozone_buildflags", |
| "//ui/events:test_support", |
| ] |
| data_deps = [ "//chrome/test/data/webui/glic:generate_test_files" ] |
| |
| # TODO(crbug.com/432285114): Fix code that adds exit-time destructors and |
| # enable the diagnostic by removing this line. |
| configs += [ "//build/config/compiler:no_exit_time_destructors" ] |
| } |
| |
| source_set("interactive_ui_tests") { |
| testonly = true |
| defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] |
| sources = [ |
| "glic_profile_manager_interactive_uitest.cc", |
| "glic_settings_util_interactive_uitest.cc", |
| "glic_user_status_interactive_uitest.cc", |
| "host/glic_actor_controller_interactive_uitest.cc", |
| "host/glic_annotation_manager_interactive_uitest.cc", |
| "host/glic_api_interactive_uitest.cc", |
| "host/glic_permission_enforcement_interactive_uitest.cc", |
| "host/glic_ui_interactive_uitest.cc", |
| "widget/glic_window_controller_interactive_uitest.cc", |
| "widget/glic_window_resize_animation_interactive_uitest.cc", |
| ] |
| deps = [ |
| ":glic", |
| ":impl", |
| "//chrome/browser", |
| "//chrome/browser:global_features", |
| "//chrome/browser/actor", |
| "//chrome/browser/actor:test_support", |
| "//chrome/browser/background/glic", |
| "//chrome/browser/contextual_cueing", |
| "//chrome/browser/contextual_cueing:test_support", |
| "//chrome/browser/devtools:test_support", |
| "//chrome/browser/glic/browser_ui:interactive_ui_tests", |
| "//chrome/browser/glic/fre", |
| "//chrome/browser/glic/fre:interactive_ui_tests", |
| "//chrome/browser/glic/test_support", |
| "//chrome/browser/optimization_guide", |
| "//chrome/browser/permissions:test_support", |
| "//chrome/browser/ui", |
| "//chrome/browser/user_education", |
| "//chrome/common", |
| "//chrome/test:test_support", |
| "//components/optimization_guide/core", |
| "//content/test:test_support", |
| "//ui/display:test_support", |
| ] |
| if (enable_pdf) { |
| deps += [ |
| "//chrome/browser/pdf:pdf_extension_test_utils", |
| "//components/pdf/browser", |
| "//pdf:features", |
| ] |
| } |
| if (use_ozone) { |
| deps += [ "//ui/ozone" ] |
| } |
| data_deps = [ "//chrome/test/data/webui/glic:generate_test_files" ] |
| |
| # TODO(crbug.com/432285114): Fix code that adds exit-time destructors and |
| # enable the diagnostic by removing this line. |
| configs += [ "//build/config/compiler:no_exit_time_destructors" ] |
| } |
| |
| # To make the targets e2e_test/ discoverable in gn. |
| group("internal_tests") { |
| testonly = true |
| deps = [ "e2e_test:glic_internal_e2e_interactive_ui_tests" ] |
| } |