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

import("//build/config/ozone.gni")
import("//build/config/ui.gni")

assert(toolkit_views)

source_set("performance_controls") {
  sources = [
    "battery_saver_bubble_view.h",
    "battery_saver_button.h",
    "memory_saver_bubble_view.h",
    "memory_saver_resource_view.h",
    "performance_intervention_bubble.h",
    "performance_intervention_button.h",
    "tab_list_row_view.h",
    "tab_list_view.h",
  ]

  public_deps = [
    "//base",
    "//chrome/browser/ui/performance_controls",
    "//chrome/browser/ui/views/toolbar",
    "//ui/base",
    "//ui/gfx/geometry",
    "//ui/views",
  ]
}

source_set("impl") {
  sources = [
    "battery_saver_bubble_view.cc",
    "battery_saver_button.cc",
    "memory_saver_bubble_view.cc",
    "memory_saver_resource_view.cc",
    "performance_intervention_bubble.cc",
    "performance_intervention_button.cc",
    "tab_list_row_view.cc",
    "tab_list_view.cc",
  ]

  deps = [
    ":performance_controls",
    "//base",
    "//chrome/app:generated_resources",
    "//chrome/browser/ui:browser_element_identifiers",
    "//chrome/browser/ui:ui_features",
    "//chrome/browser/ui/performance_controls",
    "//chrome/browser/ui/user_education",
    "//chrome/browser/ui/views:layout_provider",
    "//components/strings:components_strings",
    "//ui/base",
    "//ui/strings:ui_strings",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "battery_saver_button_unittest.cc",
    "tab_list_view_unittest.cc",
  ]
  deps = [
    ":performance_controls",
    "//base/test:test_support",
    "//chrome/browser/ui:browser_element_identifiers",
    "//chrome/browser/ui:test_support",
    "//chrome/browser/ui/performance_controls",
    "//chrome/browser/ui/views/toolbar",
    "//chrome/test:test_support",
    "//chrome/test/user_education:impl",
    "//components/performance_manager/test_support:test_support_common",
    "//components/prefs:test_support",
    "//ui/events:test_support",
  ]
}

source_set("browser_tests") {
  testonly = true
  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
  sources = [
    "memory_saver_bubble_view_browsertest.cc",
    "memory_saver_exclusion_list_browsertest.cc",
  ]
  deps = [
    ":performance_controls",
    "//base",
    "//base/test:test_support",
    "//chrome/browser/performance_manager:test_support",
    "//chrome/browser/performance_manager/public/user_tuning",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/resource_coordinator",
    "//chrome/browser/resource_coordinator:utils",
    "//chrome/browser/ui/actions:actions_headers",
    "//chrome/browser/ui/performance_controls/test_support",
    "//chrome/browser/ui/views/frame:toolbar_button_provider",
    "//chrome/browser/ui/views/location_bar",
    "//chrome/browser/ui/views/page_action",
    "//chrome/browser/ui/views/page_action:page_action_test_support",
    "//chrome/test:test_support_ui",
    "//components/performance_manager/test_support:test_support_common",
    "//content/test:test_support",
    "//net:test_support",
    "//ui/events",
    "//ui/events:test_support",
    "//ui/views",
    "//ui/views:test_support",
  ]

  if (!is_chromeos) {
    sources += [ "battery_saver_button_browsertest.cc" ]
    deps += [
      "//chrome/browser/ui:browser_element_identifiers",
      "//chrome/browser/ui:chrome_pages",
      "//chrome/browser/user_education",
      "//chrome/test/user_education:impl",
      "//components/user_education/views",
    ]
  }
}

source_set("interactive_ui_tests") {
  testonly = true
  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
  sources = [
    "memory_saver_interactive_ui_test.cc",
    "memory_saver_iph_interactive_uitest.cc",
    "performance_intervention_interactive_ui_test.cc",
    "webui_performance_intervention_interactive_uitest.cc",
  ]
  deps = [
    ":performance_controls",
    "//base",
    "//base/test:test_support",
    "//chrome/app:command_ids",
    "//chrome/browser:browser_process",
    "//chrome/browser/performance_manager/public/user_tuning",
    "//chrome/browser/resource_coordinator:utils",
    "//chrome/browser/ui",
    "//chrome/browser/ui:browser_element_identifiers",
    "//chrome/browser/ui:chrome_pages",
    "//chrome/browser/ui:recently_audible_helper",
    "//chrome/browser/ui:ui_features",
    "//chrome/browser/ui/navigator",
    "//chrome/browser/ui/performance_controls/test_support",
    "//chrome/browser/ui/toolbar",
    "//chrome/browser/ui/views/tabs/tab",
    "//chrome/test:test_support",
    "//chrome/test:test_support_ui",
    "//chrome/test/user_education:impl",
    "//components/feature_engagement/test:test_support",
    "//components/user_education/views",
    "//content/test:test_support",
    "//ui/base:ozone_buildflags",
    "//ui/views/interaction:test_support",
  ]
  if (use_ozone) {
    deps += [ "//ui/ozone" ]
  }
}
