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

source_set("installable") {
  sources = [ "installable_utils.h" ]
}

source_set("impl") {
  sources = [ "installable_utils.cc" ]

  deps = [
    ":installable",
    "//url",
  ]

  if (is_android) {
    deps += [
      "//chrome/browser:browser_public_dependencies",
      "//chrome/browser/android:shortcut_helper",
    ]
  } else {
    deps += [
      "//chrome/browser/profiles:profile",
      "//chrome/browser/web_applications",
      "//chrome/browser/web_applications/proto",
    ]
  }
}

if (is_android) {
  source_set("android") {
    sources = [
      "installed_webapp_bridge.h",
      "installed_webapp_geolocation_bridge.h",
      "installed_webapp_geolocation_context.h",
      "installed_webapp_provider.h",
    ]

    deps = [
      "//base",
      "//chrome/android:jni_headers",
      "//components/content_settings/core/browser",
      "//components/content_settings/core/common",
      "//components/permissions",
      "//mojo/public/cpp/bindings",
      "//services/device/public/mojom",
      "//url",
    ]
  }

  source_set("android_impl") {
    sources = [
      "installed_webapp_bridge.cc",
      "installed_webapp_geolocation_bridge.cc",
      "installed_webapp_geolocation_context.cc",
      "installed_webapp_provider.cc",
    ]

    deps = [
      ":android",
      "//base",
      "//chrome/android:jni_headers",
      "//components/content_settings/core/browser",
      "//components/content_settings/core/common",
      "//components/permissions",
      "//services/device/public/cpp/geolocation",
      "//url",
    ]
  }
}

source_set("browser_tests") {
  testonly = true
  defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]

  sources = [ "installable_manager_browsertest.cc" ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//chrome/browser:browser_public_dependencies",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/ssl",
    "//chrome/test:test_support",
    "//components/favicon/content",
    "//components/favicon/core",
    "//components/webapps/browser",
    "//content/test:test_support",
    "//net:test_support",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/blink/public/common",
  ]

  if (!is_android) {
    sources += [ "ml_promotion_browsertest.cc" ]

    deps += [
      ":test_support",
      "//chrome/app:command_ids",
      "//chrome/browser/banners:test_support",
      "//chrome/browser/ui",
      "//chrome/browser/ui/browser_window",
      "//chrome/browser/user_education",
      "//chrome/browser/web_applications",
      "//chrome/browser/web_applications:web_applications_test_support",
      "//chrome/common",
      "//chrome/test:test_support_ui",
      "//components/segmentation_platform/public",
      "//components/segmentation_platform/public:test_support",
      "//components/ukm:test_support",
      "//components/user_education/common",
      "//components/webapps/browser:test_support",
      "//content/public/browser",
      "//services/metrics/public/cpp:ukm_builders",
      "//ui/gfx",
      "//ui/views:test_support",
      "//url",
    ]
  }
}

if (!is_android) {
  source_set("test_support") {
    testonly = true
    sources = [
      "ml_promotion_browsertest_base.cc",
      "ml_promotion_browsertest_base.h",
    ]

    deps = [
      "//base",
      "//base/test:test_support",
      "//chrome/browser/banners:test_support",
      "//chrome/browser/ui",
      "//chrome/browser/ui/browser_window",
      "//chrome/browser/web_applications",
      "//chrome/browser/web_applications:web_applications_test_support",
      "//chrome/test:test_support",
      "//components/segmentation_platform/public",
      "//components/segmentation_platform/public:test_support",
      "//components/webapps/browser",
      "//content/public/browser",
      "//content/test:test_support",
      "//net:test_support",
      "//testing/gmock",
      "//ui/views:test_support",
    ]
  }

  source_set("unit_tests") {
    testonly = true
    sources = [ "installable_utils_unittest.cc" ]

    deps = [
      ":impl",
      ":installable",
      "//chrome/browser/web_applications:web_app_test",
      "//chrome/browser/web_applications:web_applications_test_support",
      "//testing/gmock",
      "//testing/gtest",
    ]
  }
}
