# 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("//components/enterprise/buildflags/buildflags.gni") import("//components/guest_view/buildflags/buildflags.gni") import("//mojo/public/tools/bindings/mojom.gni") # 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 = [ "common/local_hotkey_manager.h", "experimental_triggering/actor_log.h", "experimental_triggering/glic_experimental_triggering_converters.h", "experimental_triggering/glic_experimental_triggering_coordinator.h", "experimental_triggering/glic_experimental_triggering_manager.h", "experimental_triggering/glic_experimental_triggering_metrics.h", "experimental_triggering/glic_experimental_triggering_transport_handler.h", "experimental_triggering/glic_experimental_triggering_types.h", "gemini_act_on_web_settings_policy_handler.h", "glic_hotkey.h", "glic_metrics.h", "glic_metrics_provider.h", "glic_net_log.h", "glic_pref_names.h", "glic_profile_manager.h", "glic_settings_util.h", "glic_tab_restore_data.h", "glic_tab_restore_helper.h", "glic_user_status_code.h", "glic_user_status_fetcher.h", "glic_user_status_request.h", "glic_warming_checks.h", "glic_zero_state_suggestions_manager.h", "host/auth_controller.h", "host/context/glic_focused_tab_manager_interface.h", "host/context/glic_page_context_fetcher.h", "host/context/glic_page_features_manager.h", "host/context/glic_pin_candidate_provider.h", "host/context/glic_pinned_tab_manager.h", "host/context/glic_sharing_manager_provider.h", "host/glic_annotation_manager.h", "host/glic_cookie_synchronizer.h", "host/glic_drag_and_drop_util.cc", "host/glic_drag_and_drop_util.h", "host/glic_internals_page_handler.h", "host/glic_page_handler.h", "host/glic_skills_manager.h", "host/glic_ui.h", "host/glic_web_client_access.h", "host/glic_web_client_manager.h", "host/glic_web_client_responsiveness_monitor.h", "host/guest_source.h", "host/guest_util.h", "host/host.h", "public/glic_api_metrics.cc", "public/glic_api_metrics.h", "public/glic_close_options.h", "public/glic_context_menu_invocation_helper.cc", "public/glic_context_menu_invocation_helper.h", "public/glic_cui_tracker.cc", "public/glic_cui_tracker.h", "public/glic_enabling.h", "public/glic_instance.cc", "public/glic_instance.h", "public/glic_instance_id.h", "public/glic_instance_metrics_backwards_compatibility.h", "public/glic_invoke_options.h", "public/glic_keyed_service.h", "public/glic_keyed_service_factory.h", "public/glic_passkeys.h", "public/glic_perf_traits_tracker.h", "public/glic_side_panel_coordinator.cc", "public/glic_side_panel_coordinator.h", "public/glic_submit_query_cui_tracker.cc", "public/glic_submit_query_cui_tracker.h", "public/glic_window_invocation_tracker.cc", "public/glic_window_invocation_tracker.h", "public/service/glic_instance_coordinator.h", "service/glic_instance_helper.h", "service/metrics/metrics_types.cc", "service/metrics/metrics_types.h", ] public_deps = [ ":enum", ":mojo_bindings", ":public_types", "//base", "//chrome/browser:shell_integration", "//chrome/browser/glic/public:features", "//chrome/browser/glic/resources:browser_resources", "//chrome/browser/glic/suggestions", "//chrome/browser/optimization_guide", "//chrome/browser/page_content_annotations:fetcher", "//chrome/browser/permissions/system", "//chrome/browser/profiles:profile", "//chrome/browser/subscription_eligibility", "//chrome/browser/ui/browser_window", "//components/autofill/core/browser/integrators/actor:actor_form_filling_types", "//components/browser_actuator/public", "//components/content_extraction/content/browser", "//components/favicon/core", "//components/feature_engagement/public", "//components/glic:glic_pref_names", "//components/metrics", "//components/optimization_guide/content/browser", "//components/optimization_guide/content/browser:page_context_eligibility", "//components/policy/core/browser", "//components/prefs", "//components/sharing_message/proto", "//components/signin/public/identity_manager", "//components/skills/public", "//components/tabs:public", "//components/variations", "//content/public/browser", "//google_apis/common", "//ui/base/unowned_user_data", "//ui/webui", ] deps = [ ":private_types", "//chrome/browser/ui/side_panel", "//chrome/browser/ui/tabs:page_context_eligibility_helper", "//chrome/common", "//components/actor/core:task_id", "//components/performance_manager", "//components/skills/public:mojo_bindings", "//components/tabs:public", "//components/user_education/common", "//ui/base/interaction", ] if (!is_android) { # TODO(b/470059315): Make these work on Android, or move them to the # desktop-only section. sources += [ "gemini_spark_settings_policy_handler.h", "glic_selection_observer.h", "host/context/glic_focused_tab_manager.h", "public/widget/glic_side_panel_coordinator_impl.h", "widget/glic_view.h", "widget/glic_widget.h", ] public_deps += [ "//chrome/browser/glic/resources:browser_resources", "//chrome/browser/optimization_guide", "//chrome/browser/themes", "//chrome/browser/ui/tabs:tab_strip_model_observer", "//chrome/browser/ui/tabs:tabs_public", "//ui/views", "//ui/views/controls/webview", ] deps += [ "//chrome/browser:primitives", "//chrome/browser/actor:types", "//chrome/browser/ui/tabs", ] } else { # is_android sources += [ "public/widget/glic_side_panel_coordinator_android.h", "public/widget/glic_side_panel_coordinator_desktop_android.h", "service/glic_instance_helper_android.cc", ] deps += [ ":actor_types_for_migration", "//chrome/browser/android:tabs_public", "//chrome/browser/context_sharing/tab_bottom_sheet/android", "//chrome/browser/glic/android:jni_headers", ] } if (use_aura) { public_deps += [ "//ui/wm" ] } if (is_chromeos) { public_deps += [ "//chromeos/ash/components/browser_context_helper" ] } if (!enable_extensions_core) { public_deps += [ "//components/guest_view/browser/slim_web_view:page_handler" ] } } if (is_android) { java_cpp_strings("glic_pref_names_srcjar") { sources = [ "glic_pref_names.h" ] class_name = "org.chromium.chrome.browser.glic.GlicPrefNames" } android_library("public_java") { resources_package = "org.chromium.chrome.browser.glic" sources = [ "public/android/java/src/org/chromium/chrome/browser/glic/GlicEnabling.java", "public/android/java/src/org/chromium/chrome/browser/glic/GlicKeyedService.java", "public/android/java/src/org/chromium/chrome/browser/glic/GlicKeyedServiceFactory.java", "public/android/java/src/org/chromium/chrome/browser/glic/GlicKeyedServiceHandler.java", "public/android/java/src/org/chromium/chrome/browser/glic/GlicUiHelper.java", ] deps = [ "//base:callback_java", "//base:log_java", "//base:resetters_java", "//base:supplier_java", "//chrome/browser/flags:java", "//chrome/browser/glic/android:java_resources", "//chrome/browser/glic/android:jni_headers_java", "//chrome/browser/profiles/android:java", "//chrome/browser/tab:java", "//chrome/browser/tabmodel:java", "//chrome/browser/ui/browser_window/public/android:java", "//components/cached_flags:java", "//third_party/android_deps:com_airbnb_android_lottie_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/jni_zero:jni_zero_java", ] srcjar_deps = [ ":glic_pref_names_srcjar" ] } android_library("metrics_java") { sources = [ "android/java/src/org/chromium/chrome/browser/glic/GlicMetrics.java" ] deps = [ ":public_java", "//base:base_java", "//build/android:build_java", "//third_party/androidx:androidx_annotation_annotation_java", ] } } source_set("enum") { sources = [ "glic_enums.h" ] } source_set("public_types") { sources = [ "host/context/glic_tab_data.h", "public/context/glic_sharing_manager.h", # These files shouldn't actually be public: "host/context/glic_focused_browser_manager.h", ] public_deps = [ ":enum" ] deps = [ ":mojo_bindings", "//base", "//chrome/browser/ui/browser_window", "//components/favicon/content", "//components/tabs:public", ] } # Definitions used broadly internal to glic, but shouldn't be used externally. source_set("private_types") { sources = [ "service/glic_ui_types.h" ] public_deps = [ ":public_types" ] deps = [ ":enum", ":mojo_bindings", "//base", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/side_panel", "//chrome/browser/ui/tabs:tabs_public", ] } source_set("glic_metrics") { sources = [ "service/glic_state_tracker.cc", "service/glic_state_tracker.h", "service/metrics/glic_instance_helper_metrics.cc", "service/metrics/glic_instance_helper_metrics.h", "service/metrics/glic_instance_metrics.cc", "service/metrics/glic_instance_metrics.h", "service/metrics/glic_invoke_metrics.cc", "service/metrics/glic_invoke_metrics.h", "service/metrics/glic_metrics_session_manager.cc", "service/metrics/glic_metrics_session_manager.h", ] deps = [ ":enum", ":glic", ":mojo_bindings", ":private_types", "//base", "//chrome/browser/glic/public:features", "//components/metrics", "//components/prefs", "//components/skills/public", "//content/public/browser", "//services/metrics/public/cpp:ukm_builders", ] if (!is_android) { deps += [ "//chrome/browser/glic/selection" ] } } # 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 = [ "common/application_hotkey_delegate.cc", "common/application_hotkey_delegate.h", "common/instance_independent_hotkey_manager.cc", "common/instance_independent_hotkey_manager.h", "common/local_hotkey_manager.cc", "common/panel_focus_dependent_hotkey_manager.cc", "common/panel_focus_dependent_hotkey_manager.h", "common/panel_visibility_dependent_hotkey_manager.cc", "common/panel_visibility_dependent_hotkey_manager.h", "common/view_scoped_registration_delegate.h", "experimental_opt_in/glic_experimental_opt_in_controller.cc", "experimental_opt_in/glic_experimental_opt_in_controller.h", "experimental_opt_in/glic_experimental_opt_in_metrics.cc", "experimental_opt_in/glic_experimental_opt_in_metrics.h", "experimental_opt_in/glic_experimental_opt_in_page_handler.cc", "experimental_opt_in/glic_experimental_opt_in_page_handler.h", "experimental_opt_in/glic_experimental_opt_in_ui.cc", "experimental_opt_in/glic_experimental_opt_in_ui.h", "experimental_opt_in/glic_experimental_opt_in_ui_host.h", "experimental_opt_in/glic_experimental_opt_in_util.cc", "experimental_opt_in/glic_experimental_opt_in_util.h", "experimental_triggering/actor_log.cc", "experimental_triggering/glic_experimental_triggering_converters.cc", "experimental_triggering/glic_experimental_triggering_coordinator.cc", "experimental_triggering/glic_experimental_triggering_manager.cc", "experimental_triggering/glic_experimental_triggering_metrics.cc", "experimental_triggering/glic_experimental_triggering_transport_handler.cc", "gemini_act_on_web_settings_policy_handler.cc", "glic_hotkey.cc", "glic_marketing_page_tab_helper.cc", "glic_marketing_page_tab_helper.h", "glic_metrics.cc", "glic_metrics_provider.cc", "glic_navigation_throttle.cc", "glic_navigation_throttle.h", "glic_net_log.cc", "glic_pref_names.cc", "glic_profile_manager.cc", "glic_settings_util.cc", "glic_tab_restore_data.cc", "glic_tab_restore_helper.cc", "glic_user_status_fetcher.cc", "glic_user_status_request.cc", "glic_warming_checks.cc", "glic_zero_state_suggestions_manager.cc", "host/auth_controller.cc", "host/auth_controller.h", "host/context/favicon_impl/glic_tab_favicon_adapter.cc", "host/context/favicon_impl/glic_tab_favicon_adapter.h", "host/context/glic_active_instance_sharing_manager.cc", "host/context/glic_active_instance_sharing_manager.h", "host/context/glic_active_pinned_focused_tab_manager.cc", "host/context/glic_active_pinned_focused_tab_manager.h", "host/context/glic_delegating_sharing_manager.cc", "host/context/glic_delegating_sharing_manager.h", "host/context/glic_empty_focused_browser_manager.cc", "host/context/glic_empty_focused_browser_manager.h", "host/context/glic_empty_focused_tab_manager.cc", "host/context/glic_empty_focused_tab_manager.h", "host/context/glic_empty_pinned_tab_manager.cc", "host/context/glic_empty_pinned_tab_manager.h", "host/context/glic_page_context_fetcher.cc", "host/context/glic_page_features_manager.cc", "host/context/glic_pin_candidate_comparator.cc", "host/context/glic_pin_candidate_comparator.h", "host/context/glic_pinned_tab_manager_impl.cc", "host/context/glic_pinned_tab_manager_impl.h", "host/context/glic_screenshot_capturer.cc", "host/context/glic_screenshot_capturer.h", "host/context/glic_share_image_handler.cc", "host/context/glic_share_image_handler.h", "host/context/glic_sharing_manager_coordinator.cc", "host/context/glic_sharing_manager_coordinator.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/context/glic_tab_data_observer.cc", "host/context/glic_tab_data_observer.h", "host/context/glic_tab_favicon_observer.cc", "host/context/glic_tab_favicon_observer.h", "host/glic_annotation_manager.cc", "host/glic_cookie_synchronizer.cc", "host/glic_cookie_synchronizer.h", "host/glic_guest_navigation_throttle.cc", "host/glic_guest_navigation_throttle.h", "host/glic_guest_observer.cc", "host/glic_guest_observer.h", "host/glic_internals_page_handler.cc", "host/glic_local_storage_migration.cc", "host/glic_local_storage_migration.h", "host/glic_page_handler.cc", "host/glic_skills_manager_impl.cc", "host/glic_skills_manager_impl.h", "host/glic_synthetic_trial_manager.cc", "host/glic_synthetic_trial_manager.h", "host/glic_ui.cc", "host/glic_web_client_handler.cc", "host/glic_web_client_handler.h", "host/glic_web_client_manager.cc", "host/glic_web_client_responsiveness_monitor.cc", "host/glic_web_contents_warming_pool.cc", "host/glic_web_contents_warming_pool.h", "host/guest_source.cc", "host/guest_util.cc", "host/guest_util_internal.h", "host/host.cc", "host/page_metadata_manager.cc", "host/page_metadata_manager.h", "host/webui_contents_container.cc", "host/webui_contents_container.h", "public/context/glic_sharing_manager.cc", "public/glic_enabling.cc", "public/glic_invoke_options.cc", "public/glic_keyed_service.cc", "public/glic_keyed_service_factory.cc", "public/glic_perf_traits_tracker.cc", "service/glic_instance_coordinator_impl.cc", "service/glic_instance_coordinator_impl.h", "service/glic_instance_helper.cc", "service/glic_instance_impl.cc", "service/glic_instance_impl.h", "service/glic_invoke_handler.cc", "service/glic_invoke_handler.h", "service/glic_invoke_task.cc", "service/glic_invoke_task.h", "service/glic_onboarding_status.cc", "service/glic_onboarding_status.h", "service/glic_onboarding_tracker.cc", "service/glic_onboarding_tracker.h", "service/glic_tab_contents_swapper.cc", "service/glic_tab_contents_swapper.h", "service/glic_tab_group_utils.cc", "service/glic_tab_group_utils.h", "service/glic_ui_embedder.h", "service/glic_ui_types.cc", "service/metrics/glic_instance_coordinator_metrics.cc", "service/metrics/glic_instance_coordinator_metrics.h", "suggestions/caching_zero_state_suggestions_manager.cc", "suggestions/caching_zero_state_suggestions_manager.h", "widget/browser_conditions.cc", "widget/browser_conditions.h", "widget/conversions.cc", "widget/conversions.h", "widget/glic_inactive_tab_ui.cc", "widget/glic_inactive_tab_ui.h", "widget/glic_tab_ui.cc", "widget/glic_tab_ui.h", ] public_deps = [ ":private_types", "//chrome/browser:browser_public_dependencies", "//chrome/browser/actor", ] deps = [ ":glic", ":glic_metrics", "//chrome/browser:browser_process", "//chrome/browser:file_select_helper", "//chrome/browser:global_features", "//chrome/browser:startup_data", "//chrome/browser/actor", "//chrome/browser/actor/ui", "//chrome/browser/background/glic", "//chrome/browser/browser_actuator:factory", "//chrome/browser/content_settings:content_settings_factory", "//chrome/browser/feedback", "//chrome/browser/glic/actor", "//chrome/browser/glic/browser_ui", "//chrome/browser/glic/common", "//chrome/browser/glic/media", "//chrome/browser/glic/suggestions", "//chrome/browser/lifetime", "//chrome/browser/lifetime:termination_notification", "//chrome/browser/media", "//chrome/browser/media/webrtc", "//chrome/browser/metrics", "//chrome/browser/page_content_annotations", "//chrome/browser/picture_in_picture", "//chrome/browser/profiles:profile_manager", "//chrome/browser/profiles:profile_util", "//chrome/browser/profiles/keep_alive", "//chrome/browser/resources/glic:resources", "//chrome/browser/resources/glic/experimental_opt_in:resources", "//chrome/browser/safe_browsing", "//chrome/browser/signin", "//chrome/browser/skills", "//chrome/browser/skills:public", "//chrome/browser/skills:ui", "//chrome/browser/subscription_eligibility", "//chrome/browser/sync", "//chrome/browser/tab_list", "//chrome/browser/ui:browser_element_identifiers", "//chrome/browser/ui:layout_constants", "//chrome/browser/ui:ui_features", "//chrome/browser/ui/browser_window:create_browser_window", "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/navigator", "//chrome/browser/ui/passwords", "//chrome/browser/ui/prefs", "//chrome/browser/ui/profiles", "//chrome/browser/ui/tabs:page_context_eligibility_helper", "//chrome/browser/ui/tabs:tabs_public", "//chrome/common", "//components/actor/core:journal", "//components/application_locale_storage", "//components/autofill/core/browser/integrators/actor:actor_form_filling_types", "//components/browser_actuator/public", "//components/content_settings/core/browser", "//components/content_settings/core/common", "//components/enterprise", "//components/favicon/content", "//components/feature_engagement/public:feature_constants", "//components/feedback", "//components/feedback/content", "//components/gcm_driver/crypto", "//components/google/core/common", "//components/guest_view/buildflags", "//components/language/core/common", "//components/metrics", "//components/metrics_services_manager", "//components/origin_matcher", "//components/pdf/common:constants", "//components/pref_registry", "//components/prefs", "//components/services/storage/public/mojom", "//components/sessions", "//components/skills:features", "//components/skills/public", "//components/skills/public:mojo_bindings", "//components/startup_metric_utils", "//components/url_formatter", "//components/variations/service", "//components/webui/chrome_urls", "//extensions/buildflags", "//net", "//third_party/blink/public/common", "//third_party/metrics_proto", "//ui/base", "//ui/base/clipboard:file_info", "//ui/base/interaction", "//ui/content_accelerators", "//ui/gfx", "//ui/snapshot", "//ui/webui", "//url", ] if (!is_android) { # TODO(b/470059315): Make these work on Android, or move them to the # desktop-only section. public_deps += [ "//chrome/browser/glic/selection" ] sources += [ "common/view_scoped_registration_delegate_impl.cc", "experimental_opt_in/glic_experimental_opt_in_dialog_view.cc", "experimental_opt_in/glic_experimental_opt_in_dialog_view.h", "experimental_opt_in/glic_experimental_opt_in_ui_host_desktop.cc", "gemini_spark_settings_policy_handler.cc", "glic_selection_observer.cc", "glic_settings_util_desktop.cc", "host/context/favicon_impl/glic_tab_favicon_adapter_desktop.cc", "host/context/favicon_impl/glic_tab_favicon_adapter_desktop.h", "host/context/glic_focused_browser_manager_impl.cc", "host/context/glic_focused_browser_manager_impl.h", "host/context/glic_focused_tab_manager.cc", "host/context/glic_focused_tab_manager.h", "host/context/glic_screenshot_capturer_impl.cc", "host/context/glic_screenshot_capturer_impl.h", "widget/glic_floating_ui.cc", "widget/glic_floating_ui.h", "widget/glic_inactive_side_panel_ui.cc", "widget/glic_inactive_side_panel_ui.h", "widget/glic_side_panel_coordinator_impl.cc", "widget/glic_side_panel_ui.cc", "widget/glic_side_panel_ui.h", "widget/glic_view.cc", "widget/glic_widget.cc", "widget/glic_window_animator.cc", "widget/glic_window_animator.h", "widget/glic_window_resize_animation.cc", "widget/glic_window_resize_animation.h", "widget/inactive_view_controller.cc", "widget/inactive_view_controller.h", ] deps += [ "//chrome/browser/actor/ui", "//chrome/browser/glic/browser_ui:impl", "//chrome/browser/glic/selection", "//chrome/browser/lens/region_search", "//chrome/browser/themes", "//chrome/browser/ui:browser_tab_strip", "//chrome/browser/ui:chrome_pages", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/side_panel", "//chrome/browser/ui/side_panel:side_panel_views_dependent", "//chrome/browser/ui/tabs:tab_strip", "//chrome/browser/ui/tabs:tabs_public", "//chrome/browser/ui/toasts", "//chrome/browser/ui/user_education", "//chrome/browser/ui/views", "//chrome/browser/ui/views/frame/", "//chrome/browser/ui/views/glic", "//chrome/browser/ui/views/interaction", "//chrome/browser/ui/views/side_panel", "//chrome/browser/ui/views/tabs/glic", "//components/password_manager/core/browser/actor_login:common", "//components/web_modal", "//extensions/browser", ] } else { # is_android sources += [ "common/view_scoped_registration_delegate_android.cc", "experimental_opt_in/glic_experimental_opt_in_ui_host_android.cc", "experimental_opt_in/glic_experimental_opt_in_ui_host_android.h", "glic_settings_util_android.cc", "host/context/favicon_impl/glic_tab_favicon_adapter_android.cc", "host/context/favicon_impl/glic_tab_favicon_adapter_android.h", "host/context/glic_screenshot_capturer_android.cc", "host/context/glic_screenshot_capturer_android.h", "widget/glic_floating_ui_android.cc", "widget/glic_floating_ui_android.h", "widget/glic_inactive_side_panel_ui_android.cc", "widget/glic_inactive_side_panel_ui_android.h", "widget/glic_side_panel_coordinator_android.cc", "widget/glic_side_panel_coordinator_desktop_android.cc", "widget/glic_side_panel_ui_android.cc", "widget/glic_side_panel_ui_android.h", ] deps += [ ":actor_types_for_migration", "//chrome/browser/context_sharing/tab_bottom_sheet/android", "//chrome/browser/glic/android", "//chrome/browser/glic/browser_ui:impl", "//chrome/browser/ui/side_panel", "//chrome/browser/ui/side_panel:side_panel_ui_provider", "//chrome/browser/ui/side_panel/android", "//components/embedder_support/android:web_contents_delegate", "//components/password_manager/core/browser/features:password_features", "//ui/android", ] } if (!is_android || enable_extensions_core) { deps += [ "//chrome/browser/ui/webui:theme_source" ] } if (enable_guest_view) { deps += [ "//components/guest_view/browser" ] if (!enable_extensions_core) { deps += [ "//chrome/browser/resources/guest_view_shared:resources" ] } } if (!enable_extensions_core) { deps += [ "//components/guest_view/browser/slim_web_view" ] } if (is_mac) { deps += [ "//ui/accelerated_widget_mac" ] } if (is_linux) { deps += [ "//chrome/browser:shell_integration_linux" ] } if (is_chromeos) { deps += [ "//ash", "//chromeos/ui/wm", ] } if (use_ozone) { deps += [ "//ui/ozone" ] } if (enable_pdf) { deps += [ "//components/pdf/browser" ] } if (enable_printing) { deps += [ "//chrome/browser/printing" ] } } mojom("mojo_bindings") { disable_variants = true sources = [ "experimental_opt_in/glic_experimental_opt_in.mojom", "host/glic.mojom", "host/glic_features.mojom", "host/glic_internals.mojom", "host/glic_webui.mojom", ] webui_module_path = "/" public_deps = [ "//chrome/common:actor_webui_mojom", "//chrome/common:glic_enums_mojom", "//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" ] cpp_typemaps = [ { types = [ { mojom = "glic.mojom.ScreenshotCollectionOptions" cpp = "::page_content_annotations::ScreenshotOptions::ScreenshotCollectionOptions" }, { mojom = "glic.mojom.ScreenshotImageFormat" cpp = "::page_content_annotations::ScreenshotOptions::ScreenshotImageFormat" }, { mojom = "glic.mojom.ScreenshotCompressionQuality" cpp = "::page_content_annotations::ScreenshotOptions::ScreenshotCompressionQuality" }, ] traits_headers = [ "//components/page_content_annotations/content/page_context_fetcher.h", "host/glic_mojom_traits.h", ] traits_sources = [ "host/glic_mojom_traits.cc" ] traits_public_deps = [ "//components/page_content_annotations/content" ] }, ] } source_set("unit_tests") { testonly = true sources = [ "experimental_triggering/glic_experimental_triggering_converters_unittest.cc", "experimental_triggering/glic_experimental_triggering_coordinator_unittest.cc", "experimental_triggering/glic_experimental_triggering_transport_handler_unittest.cc", "glic_settings_util_unittest.cc", "host/auth_controller_unittest.cc", "host/context/glic_sharing_utils_unittest.cc", "host/glic_local_storage_migration_unittest.cc", "host/glic_web_client_responsiveness_monitor_unittest.cc", "host/glic_web_contents_warming_pool_unittest.cc", "host/guest_util_unittest.cc", "public/glic_cui_tracker_unittest.cc", "public/glic_enabling_unittest.cc", "service/glic_invoke_handler_unittest.cc", "service/glic_invoke_task_unittest.cc", ] deps = [ ":glic", ":glic_metrics", ":impl", "//base/test:test_support", "//chrome/browser:global_features", "//chrome/browser/background/glic", "//chrome/browser/content_settings:content_settings_factory", "//chrome/browser/glic/actor", "//chrome/browser/glic/test_support", "//chrome/browser/sync", "//chrome/browser/ui:ui_features", "//components/content_settings/core/browser", "//components/content_settings/core/common", "//components/prefs", "//components/services/storage:test_support", "//components/services/storage/public/mojom", "//components/skills:features", "//components/skills/public", "//components/tabs:test_support", "//testing/gmock", "//testing/gtest", "//ui/base/clipboard:clipboard_test_support", ] if (!is_android) { sources += [ "common/local_hotkey_manager_unittest.cc", "glic_metrics_provider_unittest.cc", "glic_metrics_unittest.cc", "glic_selection_observer_unittest.cc", "host/context/glic_page_features_manager_unittest.cc", "host/context/glic_pin_candidate_comparator_unittest.cc", "host/context/glic_screenshot_capturer_unittest.cc", "host/context/glic_share_image_handler_unittest.cc", "host/context/glic_tab_data_unittest.cc", "host/glic_cookie_synchronizer_unittest.cc", "public/glic_context_menu_invocation_helper_unittest.cc", "public/glic_enabling_metrics_unittest.cc", "service/glic_instance_helper_unittest.cc", "service/glic_onboarding_tracker_unittest.cc", "service/metrics/glic_instance_coordinator_metrics_unittest.cc", "service/metrics/glic_instance_metrics_unittest.cc", "service/metrics/glic_invoke_metrics_unittest.cc", "service/metrics/glic_metrics_session_manager_unittest.cc", "service/metrics/metrics_types_unittest.cc", "suggestions/caching_zero_state_suggestions_manager_unittest.cc", "widget/glic_view_unittest.cc", "widget/glic_widget_unittest.cc", ] deps += [ "//chrome/browser/background", "//chrome/browser/glic/browser_ui:unit_tests", "//chrome/browser/glic/media:unit_tests", "//chrome/browser/glic/suggestions:test_support", "//chrome/browser/prefs", "//chrome/browser/status_icons", "//chrome/common:chrome_features", "//chrome/test:test_support", "//components/live_caption", "//components/live_caption:constants", "//components/skills:features", "//components/skills/public", "//components/skills/public:metrics", ] } else { sources += [ "common/glic_tab_observer_android_unittest.cc", "widget/glic_side_panel_ui_android_unittest.cc", ] deps += [ "//chrome/browser/glic/common", "//chrome/browser/ui/android/tab_model", "//chrome/browser/ui/android/tab_model:test_support", "//chrome/test:test_support", "//content/test:test_support", ] } if (is_chromeos) { deps += [ "//chrome/browser/ash/test:test_support" ] } } source_set("browser_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "actor/glic_actor_policy_checker_browsertest.cc", "common/instance_independent_hotkey_manager_browsertest.cc", "common/panel_focus_dependent_hotkey_manager_browsertest.cc", "common/panel_visibility_dependent_hotkey_manager_browsertest.cc", "glic_tab_restore_helper_browsertest.cc", "glic_warming_checks_browsertest.cc", "host/context/glic_active_instance_sharing_manager_browsertest.cc", "host/context/glic_active_pinned_focused_tab_manager_browsertest.cc", "host/context/glic_delegating_sharing_manager_browsertest.cc", "host/context/glic_pinned_tab_manager_browsertest.cc", "host/glic_api_browsertest.cc", "host/glic_permission_enforcement_browsertest.cc", "host/glic_web_contents_warming_pool_browsertest.cc", "service/glic_instance_coordinator_browsertest.cc", "service/glic_instance_helper_browsertest.cc", "service/glic_invoke_browsertest.cc", "service/glic_tab_group_browsertest.cc", "service/metrics/glic_instance_coordinator_metrics_browsertest.cc", "suggestions/contextual_cueing_helper_browsertest.cc", ] deps = [ ":glic", ":glic_metrics", ":impl", "//chrome/app:command_ids", "//chrome/browser:browser_features", "//chrome/browser/actor", "//chrome/browser/actor:test_support", "//chrome/browser/background/glic", "//chrome/browser/contextual_tasks:ui", "//chrome/browser/glic/actor", "//chrome/browser/glic/actor:test_support", "//chrome/browser/glic/common", "//chrome/browser/glic/common:browser_tests", "//chrome/browser/glic/test_support", "//chrome/browser/performance_manager", "//chrome/browser/permissions:test_support", "//chrome/browser/preloading", "//chrome/browser/profiles:profile", "//chrome/browser/skills", "//chrome/browser/skills:public", "//chrome/browser/tab_list", "//chrome/browser/ui:browser_element_identifiers", "//chrome/browser/ui/browser_window:create_browser_window", "//chrome/browser/ui/navigator", "//chrome/common:chrome_features", "//chrome/test:test_support", "//components/actor/core", "//components/actor/public/mojom:mojo_bindings", "//components/contextual_tasks/public:feature_list", "//components/enterprise/buildflags", "//components/enterprise/connectors/core", "//components/favicon/content", "//components/optimization_guide/content/browser:test_support", "//components/prefs", "//components/skills:features", "//components/skills/public", "//components/sync_device_info:test_support", "//components/ukm:test_support", "//content/test:test_support", "//third_party/blink/public/common:headers", "//ui/gfx/geometry", ] if (!is_android) { sources += [ "experimental_opt_in/glic_experimental_opt_in_dialog_browsertest.cc", "experimental_triggering/glic_experimental_triggering_browsertest.cc", "glic_browsertest.cc", "glic_context_menu_browsertest.cc", "glic_marketing_page_tab_helper_browsertest.cc", "glic_metrics_browsertest.cc", "glic_navigation_throttle_browsertest.cc", "glic_net_log_browsertest.cc", "glic_policy_browsertest.cc", "glic_profile_manager_browsertest.cc", "glic_user_status_browsertest.cc", "glic_zoom_browsertest.cc", "host/context/glic_tab_data_browsertest.cc", "host/glic_focus_browsertest.cc", "host/glic_webui_browsertest.cc", "host/guest_util_browsertest.cc", "public/glic_enabling_browsertest.cc", "suggestions/contextual_cueing_service_browsertest.cc", "suggestions/glic_cue_target_browsertest.cc", "suggestions/zero_state_suggestions_browsertest.cc", "widget/glic_side_panel_coordinator_browsertest.cc", ] if (!is_mac && enterprise_cloud_content_analysis) { sources += [ "host/glic_drag_and_drop_browsertest.cc" ] } deps += [ ":glic", ":impl", "//base/test:test_support", "//chrome/browser:browser_process", "//chrome/browser:chrome_browser_main", "//chrome/browser:global_features", "//chrome/browser:main_extra_parts", "//chrome/browser/actor:test_support", "//chrome/browser/actor/ui", "//chrome/browser/actor/ui:test_support", "//chrome/browser/autocomplete:aim_eligibility_service", "//chrome/browser/background/glic:browser_tests", "//chrome/browser/enterprise/connectors/test:test_support", "//chrome/browser/extensions", "//chrome/browser/glic/browser_ui:browser_tests", "//chrome/browser/glic/common", "//chrome/browser/glic/common:browser_tests", "//chrome/browser/glic/selection", "//chrome/browser/glic/selection:browser_tests", "//chrome/browser/glic/suggestions:impl", "//chrome/browser/glic/suggestions:test_support", "//chrome/browser/glic/test_support", "//chrome/browser/optimization_guide:test_support", "//chrome/browser/permissions:test_support", "//chrome/browser/policy:test_support", "//chrome/browser/prefs", "//chrome/browser/skills", "//chrome/browser/skills:ui", "//chrome/browser/subscription_eligibility", "//chrome/browser/sync", "//chrome/browser/ui:chrome_pages", "//chrome/browser/ui:ui_features", "//chrome/browser/ui/profiles", "//chrome/browser/ui/side_panel", "//chrome/browser/ui/side_panel:side_panel_views_dependent", "//chrome/browser/ui/toasts", "//chrome/browser/ui/views/glic", "//chrome/browser/ui/views/tabs:tab_strip", "//chrome/browser/ui/views/tabs/glic", "//chrome/common:constants", "//chrome/test:test_support", "//chrome/test:test_support_ui", "//components/skills:features", "//components/skills/public", "//components/sync/service", "//components/tabs:test_support", "//components/variations/service", "//content/test:browsertest_support", "//content/test:test_support", "//extensions/browser", "//extensions/browser/api:extensions_api_client", "//net:test_support", "//ui/base:ozone_buildflags", "//ui/events:test_support", ] } if (is_chromeos) { deps += [ "//components/account_id:test_support" ] } if (is_android) { sources += [ "android/glic_android_browsertest.cc", "android/glic_tab_picker_bridge_browsertest.cc", "browser_ui/glic_nudge_controller_android_browsertest.cc", ] deps += [ "//chrome/browser/glic/android", "//chrome/browser/glic/browser_ui", "//chrome/browser/glic/browser_ui:impl", "//chrome/browser/ui/omnibox", "//chrome/browser/ui/side_panel", "//chrome/browser/ui/side_panel/android", "//chrome/test:test_support_ui_android", "//chrome/test/data/webui/glic:generate_test_files", "//components/messages/android:test_support", ] } if (is_android && !is_desktop_android) { sources += [ "experimental_opt_in/glic_experimental_opt_in_ui_host_android_browsertest.cc", "service/glic_android_peek_browsertest.cc", "widget/glic_side_panel_coordinator_android_browsertest.cc", ] } if (is_desktop_android) { sources += [ "widget/glic_side_panel_coordinator_desktop_android_browsertest.cc" ] } if (use_ozone) { deps += [ "//ui/ozone" ] } if (enable_print_preview) { deps += [ "//chrome/browser/printing" ] } 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" ] } if (!is_android) { source_set("interactive_ui_tests") { testonly = true defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] sources = [ "glic_selection_observer_interactive_uitest.cc", "glic_settings_util_interactive_uitest.cc", "glic_user_status_interactive_uitest.cc", "host/glic_actor_attempt_form_filling_interactive_ui_test.cc", "host/glic_actor_autofill_interactive_uitest.cc", "host/glic_actor_click_tool_interactive_uitest.cc", "host/glic_actor_drag_and_release_tool_interactive_uitest.cc", "host/glic_actor_general_interactive_uitest.cc", "host/glic_actor_interactive_uitest_common.cc", "host/glic_actor_interactive_uitest_common.h", "host/glic_actor_media_control_tool_interactive_uitest.cc", "host/glic_actor_mouse_move_tool_interactive_uitest.cc", "host/glic_actor_navigation_tool_interactive_uitest.cc", "host/glic_actor_popup_interactive_uitest.cc", "host/glic_actor_script_tool_interactive_uitest.cc", "host/glic_actor_scroll_to_tool_interactive_uitest.cc", "host/glic_actor_scroll_tool_interactive_uitest.cc", "host/glic_actor_select_tool_interactive_uitest.cc", "host/glic_actor_task_management_interactive_uitest.cc", "host/glic_actor_toctou_interactive_uitest.cc", "host/glic_actor_type_tool_interactive_uitest.cc", "host/glic_actor_window_management_tool_interactive_uitest.cc", "host/glic_annotation_manager_interactive_uitest.cc", "host/glic_ui_interactive_uitest.cc", "service/metrics/glic_instance_metrics_interactive_uitest.cc", "widget/glic_instance_coordinator_interactive_uitest.cc", ] # ChromeOS disallows multi profile. So, ProfileManager is not supported. # See also crbug.com/450679848. if (!is_chromeos) { sources += [ "glic_profile_manager_interactive_uitest.cc" ] } deps = [ ":glic", ":glic_metrics", ":impl", "//chrome/browser:global_features", "//chrome/browser/actor", "//chrome/browser/actor:test_support", "//chrome/browser/actor:tools_test_support", "//chrome/browser/autofill", "//chrome/browser/background/glic", "//chrome/browser/compose", "//chrome/browser/contextual_tasks:ui", "//chrome/browser/devtools:test_support", "//chrome/browser/download:test_support", "//chrome/browser/enterprise/connectors/test:test_support", "//chrome/browser/glic:mojo_bindings", "//chrome/browser/glic/actor:test_support", "//chrome/browser/glic/browser_ui:interactive_ui_tests", "//chrome/browser/glic/public:features", "//chrome/browser/glic/selection:interactive_ui_tests", "//chrome/browser/glic/suggestions", "//chrome/browser/glic/suggestions:test_support", "//chrome/browser/glic/test_support", "//chrome/browser/lifetime", "//chrome/browser/optimization_guide", "//chrome/browser/permissions:test_support", "//chrome/browser/ui:chrome_pages", "//chrome/browser/ui/user_education", "//chrome/browser/ui/views/frame:contents_web_view", "//chrome/browser/ui/views/glic", "//chrome/browser/ui/views/tabs:tab_strip", "//chrome/browser/ui/views/tabs/glic", "//chrome/browser/ui/zoom", "//chrome/common", "//chrome/test:test_support", "//chrome/test/user_education:impl", "//components/autofill/core/browser/actor: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" ] } } if (is_android) { source_set("actor_types_for_migration") { sources = [ "//chrome/browser/actor/actor_task_delegate.h", "//components/actor/core/task_id.h", ] deps = [ "//base", "//chrome/common:actor_webui_mojom", "//components/autofill/core/browser/integrators/actor:actor_form_filling_types", "//components/password_manager/core/browser/actor_login:common", "//components/tabs:public", "//ui/gfx", "//url", ] } }