chromium/chrome/browser/ui/webui/top_chrome/BUILD.gn

# 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.

assert(!is_android)

source_set("top_chrome") {
  sources = [
    "per_profile_webui_tracker.h",
    "preload_candidate_selector.h",
    "preload_context.h",
    "profile_preload_candidate_selector.h",
    "top_chrome_web_ui_controller.h",
    "top_chrome_webui_config.h",
    "untrusted_top_chrome_web_ui_controller.h",
    "webui_contents_preload_manager.h",
    "webui_contents_warmup_level.h",
    "webui_contents_warmup_level_recorder.h",
    "webui_contents_wrapper.h",
    "webui_contents_wrapper_service.h",
    "webui_contents_wrapper_service_factory.h",
  ]

  public_deps = [
    "//base",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/ui:webui_name_variants",
    "//components/keyed_service/core",
    "//content/public/browser",
    "//ui/base",
    "//ui/webui",
    "//url",
  ]
}

# The implementation must be linked into the same binary as the public
# interface. This does have circular dependencies with //chrome/browser and
# //chrome/browser/ui.
source_set("impl") {
  public_deps = [ "//chrome/browser:browser_public_dependencies" ]

  sources = [
    "per_profile_webui_tracker.cc",
    "preload_candidate_selector.h",
    "preload_context.cc",
    "profile_preload_candidate_selector.cc",
    "top_chrome_web_ui_controller.cc",
    "top_chrome_webui_config.cc",
    "untrusted_top_chrome_web_ui_controller.cc",
    "webui_contents_preload_manager.cc",
    "webui_contents_warmup_level.cc",
    "webui_contents_warmup_level_recorder.cc",
    "webui_contents_wrapper.cc",
    "webui_contents_wrapper_service.cc",
    "webui_contents_wrapper_service_factory.cc",
  ]

  deps = [
    ":top_chrome",
    "//base",
    "//chrome/app:generated_resources",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/task_manager",
    "//chrome/browser/ui:ui_features",
    "//chrome/common",
    "//components/site_engagement/content:content",
    "//content/public/browser",
    "//ui/base",
    "//ui/webui",
  ]
}

source_set("test_support") {
  testonly = true
  sources = [
    "webui_contents_preload_manager_test_api.cc",
    "webui_contents_preload_manager_test_api.h",
  ]

  deps = [
    ":top_chrome",
    "//url",
  ]
}