blob: 8a649a6398b6065b46e6213bce59e0456ca461c8 [file] [log] [blame]
# 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("//pdf/features.gni")
# Contained Lens dependencies are currently for desktop platforms only
assert(!is_android, "Lens Overlay is for desktop platforms only")
source_set("lens") {
# The public interface is intentionally minimal. There should be a small
# number of entry points and publicly used headers.
public = [
"lens_composebox_controller.h",
"lens_keyed_service.h",
"lens_keyed_service_factory.h",
"lens_overlay_controller.h",
"lens_overlay_entry_point_controller.h",
"lens_overlay_gen204_controller.h",
"lens_overlay_image_helper.h",
"lens_overlay_side_panel_navigation_throttle.h",
"lens_overlay_untrusted_ui.h",
"lens_search_controller.h",
"lens_search_feature_flag_utils.h",
"lens_searchbox_controller.h",
"lens_side_panel_untrusted_ui.h",
"lens_string_utils.h",
]
friend = [ ":*" ]
sources = [
"lens_composebox_handler.h",
"lens_help_menu_utils.h",
"lens_keyed_service.cc",
"lens_keyed_service.h",
"lens_keyed_service_factory.cc",
"lens_keyed_service_factory.h",
"lens_media_link_handler.h",
"lens_overlay_blur_layer_delegate.h",
"lens_overlay_colors.h",
"lens_overlay_event_handler.h",
"lens_overlay_image_helper.h",
"lens_overlay_languages_controller.h",
"lens_overlay_proto_converter.h",
"lens_overlay_query_controller.h",
"lens_overlay_side_panel_coordinator.h",
"lens_overlay_side_panel_web_view.h",
"lens_overlay_theme_utils.h",
"lens_overlay_translate_options.h",
"lens_overlay_url_builder.h",
"lens_permission_bubble_controller.h",
"lens_preselection_bubble.h",
"lens_search_contextualization_controller.h",
"lens_session_metrics_logger.h",
"lens_url_matcher.h",
"page_content_type_conversions.h",
]
public_deps = [
"//base",
"//chrome/browser/companion/text_finder",
"//chrome/browser/content_extraction",
"//chrome/browser/lens/core/mojom:mojo_bindings",
"//chrome/browser/search_engines",
"//chrome/browser/themes",
"//chrome/browser/ui/exclusive_access",
"//chrome/browser/ui/omnibox",
"//chrome/browser/ui/promos:service",
"//chrome/browser/ui/views/frame:immersive_mode_controller",
"//chrome/browser/ui/views/side_panel",
"//chrome/browser/ui/webui/new_tab_page/composebox",
"//chrome/browser/ui/webui/searchbox",
"//chrome/browser/ui/webui/top_chrome",
"//components/content_extraction/content/browser",
"//components/endpoint_fetcher",
"//components/find_in_page",
"//components/lens",
"//components/optimization_guide/content/browser",
"//components/optimization_guide/content/browser:page_context_eligibility",
"//components/sharing_message",
"//components/sync_preferences",
"//components/user_education/webui",
"//content/public/browser",
"//third_party/lens_server_proto:lens_overlay_proto",
"//ui/base/mojom:ui_base_types",
"//ui/base/unowned_user_data",
"//ui/views",
]
if (enable_pdf) {
public_deps += [
"//components/pdf/browser",
"//pdf/mojom",
]
}
}
source_set("impl") {
sources = [
"lens_composebox_controller.cc",
"lens_composebox_handler.cc",
"lens_help_menu_utils.cc",
"lens_media_link_handler.cc",
"lens_overlay_blur_layer_delegate.cc",
"lens_overlay_controller.cc",
"lens_overlay_entry_point_controller.cc",
"lens_overlay_event_handler.cc",
"lens_overlay_gen204_controller.cc",
"lens_overlay_image_helper.cc",
"lens_overlay_languages_controller.cc",
"lens_overlay_proto_converter.cc",
"lens_overlay_query_controller.cc",
"lens_overlay_side_panel_coordinator.cc",
"lens_overlay_side_panel_navigation_throttle.cc",
"lens_overlay_side_panel_web_view.cc",
"lens_overlay_theme_utils.cc",
"lens_overlay_untrusted_ui.cc",
"lens_overlay_url_builder.cc",
"lens_permission_bubble_controller.cc",
"lens_preselection_bubble.cc",
"lens_search_contextualization_controller.cc",
"lens_search_controller.cc",
"lens_search_feature_flag_utils.cc",
"lens_searchbox_controller.cc",
"lens_session_metrics_logger.cc",
"lens_side_panel_untrusted_ui.cc",
"lens_string_utils.cc",
"lens_url_matcher.cc",
"page_content_type_conversions.cc",
]
deps = [
":lens",
"//build:branding_buildflags",
"//chrome/app:generated_resources_grit",
"//chrome/app/theme:theme_resources_grit",
"//chrome/app/vector_icons",
"//chrome/browser:browser_process",
"//chrome/browser:global_features",
"//chrome/browser:primitives",
"//chrome/browser/autocomplete:aim_eligibility_service",
"//chrome/browser/feedback",
"//chrome/browser/lens/region_search",
"//chrome/browser/media/webrtc",
"//chrome/browser/profiles",
"//chrome/browser/resources/lens/overlay:resources",
"//chrome/browser/resources/lens/overlay:resources_grit",
"//chrome/browser/resources/lens/shared:resources",
"//chrome/browser/resources/lens/shared:resources_grit",
"//chrome/browser/search",
"//chrome/browser/task_manager",
"//chrome/browser/ui:browser_element_identifiers",
"//chrome/browser/ui/browser_window",
"//chrome/browser/ui/color:color_headers",
"//chrome/browser/ui/hats",
"//chrome/browser/ui/omnibox",
"//chrome/browser/ui/search",
"//chrome/browser/ui/user_education",
"//chrome/browser/ui/views/bubble",
"//chrome/browser/ui/views/interaction",
"//chrome/browser/ui/views/page_action",
"//chrome/browser/ui/views/toolbar",
"//chrome/browser/ui/webui",
"//chrome/browser/ui/webui:webui_util",
"//chrome/browser/ui/webui/util",
"//chrome/common",
"//chrome/common:channel_info",
"//components/application_locale_storage",
"//components/base32",
"//components/constrained_window",
"//components/feature_engagement/public",
"//components/input",
"//components/language/core/common",
"//components/lens:enterprise_policy",
"//components/lens:features",
"//components/lens/proto/server:proto",
"//components/metrics_services_manager",
"//components/optimization_guide/content/browser",
"//components/optimization_guide/content/browser:page_context_eligibility",
"//components/prefs",
"//components/sessions",
"//components/signin/public/identity_manager",
"//components/strings:components_strings_grit",
"//components/sync/service",
"//components/sync_preferences",
"//components/unified_consent",
"//components/variations",
"//components/variations:variations_mojom",
"//components/version_info:channel",
"//components/web_modal",
"//components/zoom",
"//google_apis",
"//google_apis/common",
"//google_apis/common:request_util",
"//mojo/public/cpp/bindings",
"//net",
"//net/traffic_annotation",
"//pdf:buildflags",
"//services/metrics/public/cpp:ukm_builders",
"//services/network/public/cpp",
"//skia",
"//third_party/farmhash",
"//third_party/lens_server_proto:lens_overlay_proto",
"//third_party/omnibox_proto",
"//third_party/zlib/google:compression_utils",
"//ui/base:types",
"//ui/gfx",
"//ui/gfx/codec",
"//ui/gfx/geometry",
"//ui/menus",
"//ui/webui",
"//url",
]
if (enable_pdf) {
deps += [
"//chrome/browser/pdf",
"//components/pdf/browser",
]
}
}
source_set("test_support") {
testonly = true
sources = [
"test_lens_overlay_controller.cc",
"test_lens_overlay_controller.h",
"test_lens_overlay_query_controller.cc",
"test_lens_overlay_query_controller.h",
"test_lens_overlay_side_panel_coordinator.cc",
"test_lens_overlay_side_panel_coordinator.h",
"test_lens_search_contextualization_controller.cc",
"test_lens_search_contextualization_controller.h",
"test_lens_search_controller.cc",
"test_lens_search_controller.h",
]
deps = [
":lens",
"//base/test:test_support",
"//google_apis/common",
"//testing/gtest",
"//third_party/lens_server_proto:lens_overlay_proto",
]
}
source_set("browser_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [
"lens_composebox_controller_browsertest.cc",
"lens_overlay_controller_browsertest.cc",
"lens_overlay_live_test.cc",
"lens_search_feature_flag_utils_browsertest.cc",
]
deps = [
":lens",
":test_support",
"//base",
"//base/test:test_support",
"//chrome/browser",
"//chrome/browser/autocomplete:aim_eligibility_service",
"//chrome/browser/lens/core/mojom:mojo_bindings",
"//chrome/browser/profiles:profile",
"//chrome/browser/signin/e2e_tests:test_support",
"//chrome/browser/sync",
"//chrome/browser/themes",
"//chrome/browser/ui",
"//chrome/browser/ui:browser_element_identifiers",
"//chrome/browser/ui:ui_features",
"//chrome/browser/ui/browser_window",
"//chrome/browser/ui/exclusive_access",
"//chrome/browser/ui/find_bar",
"//chrome/browser/ui/hats",
"//chrome/browser/ui/hats:test_support",
"//chrome/browser/ui/location_bar",
"//chrome/browser/ui/tabs:tabs_public",
"//chrome/browser/ui/views/location_bar",
"//chrome/browser/ui/views/page_action",
"//chrome/browser/ui/views/side_panel",
"//chrome/browser/ui/webui/searchbox:searchbox_test_utils",
"//chrome/test:test_support",
"//chrome/test:test_support_ui",
"//components/base32",
"//components/constrained_window",
"//components/feature_engagement/public",
"//components/lens:enterprise_policy",
"//components/lens:features",
"//components/lens/proto/server:proto",
"//components/permissions:test_support",
"//components/prefs",
"//components/renderer_context_menu",
"//components/signin/public/identity_manager:test_support",
"//components/ukm:test_support",
"//content/public/browser",
"//content/public/common",
"//content/test:test_support",
"//mojo/public/cpp/bindings",
"//net",
"//pdf:features",
"//third_party/lens_server_proto:lens_overlay_proto",
"//ui/base",
"//ui/base:types",
"//ui/base/unowned_user_data",
"//ui/compositor",
"//ui/events:events_base",
"//ui/events:test_support",
"//ui/views",
"//ui/views:test_support",
"//ui/views/controls/webview",
"//url",
]
if (enable_pdf) {
deps += [ "//chrome/browser/pdf" ]
}
# 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" ]
}
source_set("interactive_ui_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
sources = [
"lens_overlay_controller_interactive_uitest.cc",
"lens_permission_bubble_controller_interactive_uitest.cc",
]
deps = [
":lens",
":test_support",
"//base/test:test_support",
"//chrome/browser",
"//chrome/browser/profiles:profile",
"//chrome/browser/search_engines",
"//chrome/browser/signin",
"//chrome/browser/sync",
"//chrome/browser/themes",
"//chrome/browser/ui",
"//chrome/browser/ui:browser_element_identifiers",
"//chrome/browser/ui/tabs:tabs_public",
"//chrome/browser/ui/views/location_bar",
"//chrome/test:test_support",
"//chrome/test:test_support_ui",
"//components/feature_engagement/public",
"//components/lens:enterprise_policy",
"//components/lens:features",
"//components/prefs",
"//components/search_engines",
"//components/user_education/views",
"//content/test:test_support",
"//testing/gtest",
]
if (enable_pdf) {
deps += [ "//components/pdf/browser" ]
}
}
source_set("unit_tests") {
testonly = true
sources = [
"lens_media_link_handler_unittest.cc",
"lens_overlay_gen204_controller_unittest.cc",
"lens_overlay_image_helper_unittest.cc",
"lens_overlay_languages_controller_unittest.cc",
"lens_overlay_proto_converter_unittest.cc",
"lens_overlay_query_controller_unittest.cc",
"lens_overlay_side_panel_navigation_throttle_unittest.cc",
"lens_overlay_url_builder_unittest.cc",
"lens_url_matcher_unittest.cc",
]
deps = [
":lens",
":test_support",
"//base",
"//base/test:test_support",
"//chrome/browser",
"//chrome/browser:browser_process",
"//chrome/browser/lens/core/mojom:mojo_bindings",
"//chrome/browser/search_engines",
"//chrome/browser/signin",
"//chrome/browser/themes",
"//chrome/test:test_support",
"//components/base32",
"//components/endpoint_fetcher",
"//components/lens:features",
"//components/optimization_guide/content/browser:page_context_eligibility",
"//content/public/browser",
"//content/test:test_support",
"//google_apis/common",
"//net",
"//net/traffic_annotation",
"//testing/gtest",
"//third_party/icu:icui18n",
"//third_party/icu:icuuc_public",
"//third_party/lens_server_proto:lens_overlay_proto",
"//third_party/omnibox_proto",
"//third_party/zlib/google:compression_utils",
"//third_party/zstd:compress",
"//ui/gfx",
"//ui/gfx/codec",
"//ui/gfx/geometry",
"//url",
]
# 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" ]
}