# Copyright 2021 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("prerender") {
  public = [
    "dse_prewarm_navigation_throttle.h",
    "prerender_manager.h",
    "prerender_utils.h",
    "prerender_web_contents_delegate.h",
    "search_preload_progress_service.h",
    "search_preload_progress_service_factory.h",
  ]

  public_deps = [
    "//base",
    "//chrome/browser/preloading",
    "//chrome/browser/profiles:profile",
    "//components/omnibox/browser",
    "//content/public/browser",
    "//url",
  ]
}

source_set("impl") {
  sources = [
    "dse_prewarm_navigation_throttle.cc",
    "prerender_manager.cc",
    "prerender_utils.cc",
    "prerender_web_contents_delegate.cc",
    "search_preload_progress_service.cc",
    "search_preload_progress_service_factory.cc",
  ]

  deps = [
    ":prerender",
    "//chrome/browser:after_startup_task_utils",
    "//chrome/browser:browser_features",
    "//chrome/browser/headless",
    "//chrome/browser/page_load_metrics",
    "//chrome/browser/preloading",
    "//chrome/browser/preloading/prefetch/search_prefetch",
    "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings",
    "//chrome/browser/search_engines",
    "//chrome/browser/task_manager",
    "//chrome/browser/ui",
    "//chrome/common:chrome_features",
    "//components/page_load_metrics/browser",
    "//components/page_load_metrics/google/browser",
    "//components/tabs:impl",
  ]

  if (is_chromeos) {
    deps += [ "//chromeos/components/kiosk" ]
  }

  if (!is_android) {
    deps += [ "//chrome/browser/ui/web_applications" ]
  }
}

source_set("test_support") {
  testonly = true

  sources = [
    "search_preload_progress_test_utils.cc",
    "search_preload_progress_test_utils.h",
  ]

  public_deps = [ ":prerender" ]

  deps = [
    "//base",
    "//chrome/browser/preloading",
  ]
}

source_set("browser_tests") {
  testonly = true

  sources = [
    "dse_prewarm_navigation_throttle_browsertest.cc",
    "omnibox_prerender_browsertest.cc",
    "prerender_browsertest.cc",
  ]

  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]

  deps = [
    ":test_support",
    "//base/test:test_support",
    "//chrome/browser:browser_features",
    "//chrome/browser/page_load_metrics",
    "//chrome/browser/preloading",
    "//chrome/browser/preloading:prefs",
    "//chrome/browser/preloading:test_support",
    "//chrome/browser/preloading/new_tab_page_preload",
    "//chrome/browser/preloading/prefetch/search_prefetch",
    "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings",
    "//chrome/browser/search_engines",
    "//chrome/test:test_support",
    "//components/page_load_metrics/browser",
    "//third_party/blink/public/common:preloading_headers",
  ]

  data = [ "//chrome/test/data/" ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "prerender_manager_unittest.cc",
    "search_preload_progress_service_unittest.cc",
  ]

  deps = [
    ":test_support",
    "//chrome/browser:after_startup_task_utils",
    "//chrome/browser/preloading",
    "//chrome/browser/preloading:test_support",
    "//chrome/test:test_support",
    "//content/test:test_support",
  ]
}

if (!is_android) {
  source_set("interactive_ui_tests") {
    testonly = true

    sources = [ "prerender_omnibox_interactive_uitest.cc" ]

    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]

    deps = [
      ":prerender",
      ":test_support",
      "//base",
      "//base/test:test_support",
      "//chrome/browser/autocomplete",
      "//chrome/browser/preloading",
      "//chrome/browser/preloading/prefetch/search_prefetch",
      "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings",
      "//chrome/browser/profiles:profile",
      "//chrome/browser/safe_browsing:test_support",
      "//chrome/browser/search_engines",
      "//chrome/browser/ui",
      "//chrome/browser/ui/browser_window",
      "//chrome/common",
      "//chrome/test:test_support",
      "//chrome/test:test_support_ui",
      "//components/omnibox/browser",
      "//components/performance_manager",
      "//components/safe_browsing/core/common",
      "//components/search_engines",
      "//content/public/browser",
      "//content/public/common",
      "//content/test:test_support",
      "//net",
      "//net:test_support",
      "//services/metrics/public/cpp:ukm_builders",
      "//testing/gtest",
      "//third_party/blink/public/common",
    ]
  }
}
