# 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("//extensions/buildflags/buildflags.gni")

assert(is_win || is_mac || is_linux || is_chromeos || is_android || is_ohos)

source_set("prefs") {
  sources = [
    "pref_watcher.h",
    "prefs_tab_helper.h",
  ]

  public_deps = [
    "//base",
    "//chrome/browser:font_pref",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/ui/zoom",
    "//components/keyed_service/core",
    "//components/prefs",
    "//components/privacy_sandbox:tracking_protection_settings",
    "//content/public/browser",
    "//mojo/public/cpp/bindings",
    "//third_party/blink/public/common",
    "//ui/native_theme",
  ]

  if (!is_android) {
    public_deps += [ "//chrome/browser/themes" ]
  }
}

source_set("impl") {
  public_deps = [ "//chrome/browser:browser_public_dependencies" ]

  sources = [
    "pref_watcher.cc",
    "prefs_tab_helper.cc",
  ]

  deps = [
    ":prefs",
    "//chrome/app/resources:platform_locale_settings",
    "//chrome/browser:browser_process",
    "//chrome/browser:font_pref",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/ui/zoom",
    "//components/language/core/browser",
    "//components/live_caption:constants",
    "//components/pref_registry",
    "//components/privacy_sandbox:tracking_protection_settings",
    "//components/proxy_config",
  ]

  if (is_android) {
    deps += [
      "//chrome/browser/flags:flags_android",
      "//components/browser_ui/accessibility/android",
    ]
  } else {
    deps += [ "//chrome/browser/themes" ]
  }

  if (is_linux) {
    deps += [ "//ui/linux:linux_ui" ]
  }
}

if (!is_android || enable_desktop_android_extensions) {
  source_set("browser_tests") {
    testonly = true
    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
    sources = [ "prefs_tab_helper_browsertest.cc" ]

    deps = [
      "//base",
      "//chrome/browser/profiles:profile",
      "//chrome/browser/ui",
      "//chrome/common:constants",
      "//chrome/common:non_code_constants",
      "//chrome/test:test_support",
      "//components/prefs",
      "//content/test:test_support",
      "//third_party/blink/public/common:headers",
    ]

    if (enable_desktop_android_extensions) {
      deps += [ "//chrome/test:test_support_ui_android" ]
    } else {
      deps += [ "//chrome/test:test_support_ui" ]
    }
  }
}