# 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("//chrome/common/features.gni")
import("//pdf/features.gni")

source_set("suggestions") {
  sources = [
    "contextual_cueing_enums.h",
    "contextual_cueing_features.h",
    "contextual_cueing_helper.h",
    "contextual_cueing_prefs.h",
    "contextual_cueing_service.h",
    "contextual_cueing_service_factory.h",
    "glic_cue_tab_state.h",
    "glic_cue_target.h",
  ]
  public_deps = [
    "//base",
    "//chrome/browser/contextual_cueing",
    "//chrome/browser/profiles:profile",
    "//components/contextual_cueing",
    "//components/optimization_guide/core",
    "//components/page_content_annotations/content",
    "//components/page_content_annotations/core",
    "//components/prefs",
    "//content/public/browser",
    "//ui/base/unowned_user_data",
  ]
  deps = [ "//chrome/common:buildflags" ]
}

source_set("impl") {
  sources = [
    "contextual_cueing_features.cc",
    "contextual_cueing_helper.cc",
    "contextual_cueing_page_data.cc",
    "contextual_cueing_page_data.h",
    "contextual_cueing_prefs.cc",
    "contextual_cueing_service.cc",
    "contextual_cueing_service_factory.cc",
    "glic_cue_tab_state.cc",
    "glic_cue_target.cc",
    "zero_state_suggestions_page_data.cc",
    "zero_state_suggestions_page_data.h",
    "zero_state_suggestions_request.cc",
    "zero_state_suggestions_request.h",
  ]
  deps = [
    ":suggestions",
    "//chrome/browser:browser_process",
    "//chrome/browser/actor",
    "//chrome/browser/contextual_cueing",
    "//chrome/browser/glic",
    "//chrome/browser/glic/browser_ui",
    "//chrome/browser/optimization_guide",
    "//chrome/browser/page_content_annotations",
    "//chrome/browser/page_content_annotations:extraction_service",
    "//chrome/browser/predictors",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/search_engines",
    "//chrome/browser/sync",
    "//chrome/browser/ui",
    "//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/content_extraction/content/browser",
    "//components/keyed_service/core",
    "//components/optimization_guide/content/browser",
    "//components/optimization_guide/content/browser:page_context_eligibility",
    "//components/optimization_guide/core",
    "//components/optimization_guide/proto:optimization_guide_proto",
    "//components/page_content_annotations/core",
    "//components/pdf/common:constants",
    "//components/prefs",
    "//components/sync/service",
    "//components/variations/service",
    "//pdf:buildflags",
    "//services/metrics/public/cpp:metrics_cpp",
    "//services/metrics/public/cpp:ukm_builders",
    "//url",
  ]
  if (!is_android) {
    deps += [
      "//chrome/browser/contextual_tasks:ui",
      "//chrome/browser/ui/browser_window",
      "//chrome/browser/ui/user_education",
      "//chrome/browser/ui/views/glic",
    ]
  }
  if (enable_pdf) {
    deps += [ "//components/pdf/browser" ]
  }
}

source_set("test_support") {
  testonly = true
  sources = [
    "mock_contextual_cueing_service.cc",
    "mock_contextual_cueing_service.h",
  ]
  deps = [
    ":suggestions",
    "//chrome/test:test_support",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "contextual_cueing_helper_unittest.cc",
    "contextual_cueing_page_data_unittest.cc",
    "contextual_cueing_service_unittest.cc",
    "glic_cue_target_unittest.cc",
  ]
  deps = [
    ":impl",
    ":suggestions",
    ":test_support",
    "//base/test:test_support",
    "//chrome/browser:global_features",
    "//chrome/browser/actor:test_support",
    "//chrome/browser/content_extraction",
    "//chrome/browser/glic",
    "//chrome/browser/glic/test_support",
    "//chrome/browser/optimization_guide:test_support",
    "//chrome/browser/page_content_annotations",
    "//chrome/browser/page_content_annotations:extraction_service",
    "//chrome/browser/sync",
    "//chrome/browser/ui:ui_features",
    "//chrome/common:buildflags",
    "//chrome/test:test_support",
    "//components/page_content_annotations/core:test_support",
    "//components/pdf/common:constants",
    "//components/sync:test_support",
    "//components/sync_preferences:test_support",
    "//components/tabs:test_support",
    "//pdf:buildflags",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/base/unowned_user_data",
  ]
  if (is_chromeos) {
    deps += [ "//chrome/browser/ash/test:test_support" ]
  }
  if (!is_android) {
    deps += [ "//chrome/browser/ui/browser_window/test:test_support" ]
  }
}
