# Copyright 2026 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("contextual_cueing") {
  sources = [
    "contextual_cueing_controller.h",
    "contextual_cueing_metrics.h",
    "contextual_cueing_service.h",
    "contextual_cueing_service_factory.h",
    "contextual_cueing_web_contents_observer.h",
    "cue_target.h",
    "cueing_log.h",
    "features.h",
    "prefs.h",
  ]

  public_deps = [
    "//base",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/tab_list",
    "//chrome/browser/ui/actions:actions_headers",
    "//components/contextual_cueing",
    "//components/favicon_base",
    "//components/optimization_guide/proto:optimization_guide_proto",
    "//components/page_content_annotations/core",
    "//components/prefs",
    "//components/private_insights/events:contextual_cue_log_event_proto",
    "//components/sessions",
    "//components/tabs:public",
    "//url",
  ]

  if (!is_android) {
    public_deps += [
      "//chrome/browser/contextual_cueing/internals:mojo_bindings",
      "//chrome/browser/ui/page_action",
    ]
  }
}

source_set("impl") {
  visibility = [
    ":*",
    "//chrome/browser",
  ]

  sources = [
    "contextual_cueing_controller.cc",
    "contextual_cueing_menu_model.cc",
    "contextual_cueing_menu_model.h",
    "contextual_cueing_metrics.cc",
    "contextual_cueing_service.cc",
    "contextual_cueing_service_factory.cc",
    "contextual_cueing_web_contents_observer.cc",
    "cue_target.cc",
    "features.cc",
    "prefs.cc",
  ]

  deps = [
    ":contextual_cueing",
    "//chrome/browser:primitives",
    "//chrome/browser/favicon",
    "//chrome/browser/optimization_guide",
    "//chrome/browser/page_content_annotations",
    "//chrome/browser/private_insights",
    "//chrome/browser/search_engines",
    "//chrome/browser/sync",
    "//chrome/browser/tab_list",
    "//chrome/browser/ui",
    "//chrome/browser/ui/browser_window",
    "//chrome/browser/ui/side_panel",
    "//chrome/browser/ui/side_panel:side_panel_ui_provider",
    "//chrome/browser/ui/side_panel:side_panel_views_dependent",
    "//chrome/browser/ui/tabs:tabs_public",
    "//components/favicon/core",
    "//components/infobars/content",
    "//components/keyed_service/core",
    "//components/optimization_guide/proto:optimization_guide_proto",
    "//components/pdf/common:constants",
    "//components/pref_registry",
    "//components/private_insights",
    "//components/private_insights:private_insights_logger",
    "//components/private_insights/events:contextual_cue_log_event_proto",
    "//components/strings:components_strings",
    "//components/sync/service",
    "//components/variations/service",
    "//components/vector_icons",
    "//components/version_info",
    "//content/public/browser",
    "//ui/menus",
  ]

  if (!is_android) {
    deps += [
      "//chrome/browser/ui:browser_actions",
      "//chrome/browser/ui:chrome_pages",
      "//chrome/browser/ui/page_action",
      "//chrome/browser/ui/user_education",
    ]
  }
}

if (!is_android) {
  source_set("browser_tests") {
    testonly = true
    sources = [
      "contextual_cueing_controller_browsertest.cc",
      "contextual_cueing_service_browsertest.cc",
      "test_cue_target.cc",
      "test_cue_target.h",
    ]
    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
    deps = [
      ":contextual_cueing",
      "//base/test:test_support",
      "//chrome/browser/optimization_guide:test_support",
      "//chrome/browser/private_insights",
      "//chrome/browser/signin:signin_browser_test_base",
      "//chrome/browser/sync",
      "//chrome/browser/ui:browser_actions",
      "//chrome/browser/ui/browser_window",
      "//chrome/browser/ui/page_action",
      "//chrome/browser/ui/side_panel",
      "//chrome/browser/ui/side_panel:side_panel_ui_provider",
      "//chrome/browser/ui/side_panel:side_panel_views_dependent",
      "//chrome/browser/ui/user_education",
      "//chrome/browser/ui/views/infobars",
      "//chrome/test:test_support",
      "//chrome/test/user_education:impl",
      "//components/infobars/content",
      "//components/private_insights",
      "//content/public/browser",
      "//pdf:buildflags",
      "//testing/gmock",
      "//testing/gtest",
    ]
  }
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "contextual_cueing_menu_model_unittest.cc",
    "contextual_cueing_metrics_unittest.cc",
    "contextual_cueing_service_unittest.cc",
  ]
  deps = [
    ":contextual_cueing",
    ":impl",
    "//base/test:test_support",
    "//components/prefs:test_support",
    "//components/strings:components_strings",
    "//components/tabs:test_support",
    "//testing/gtest",
  ]
}
