# 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("webapps") {
  sources = [
    "chrome_webapps_client.h",
    "web_app_offline.h",
  ]

  public_deps = [
    "//components/webapps/browser",
    "//content/public/browser",
    "//content/public/common",
    "//url",
  ]
}

source_set("impl") {
  sources = [
    "chrome_webapps_client.cc",
    "web_app_offline.cc",
  ]

  deps = [
    ":webapps",
    "//base",
    "//chrome/browser/ssl",
    "//components/infobars/content",
    "//components/security_state/content",
    "//components/strings",
    "//components/webapps/browser",
    "//ui/base",
  ]

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

  if (is_mac || is_win || is_linux || is_chromeos) {
    deps += [ "//components/webapps/isolated_web_apps:scheme" ]
  }
}

if (is_android) {
  source_set("android") {
    sources = [ "webapps_client_android.h" ]

    deps = [ ":webapps" ]
  }

  source_set("android_impl") {
    sources = [
      "web_app_offline_android.cc",
      "webapps_client_android.cc",
    ]

    deps = [
      ":android",
      ":webapps",
      "//base",
      "//chrome/android:jni_headers",
      "//chrome/browser:browser_public_dependencies",
      "//chrome/browser/android:shortcut_helper",
      "//chrome/browser/android:tabs_public",
      "//chrome/browser/android/webapk:webapk_sources",
      "//chrome/browser/feature_engagement",
      "//chrome/common",
      "//components/feature_engagement/public",
      "//components/infobars/content",
      "//components/security_state/content",
      "//components/webapps/browser",
      "//components/webapps/common",
      "//content/public/browser",
      "//url",
    ]
  }
} else {
  source_set("desktop") {
    sources = [ "webapps_client_desktop.h" ]

    deps = [ ":webapps" ]
  }

  source_set("desktop_impl") {
    sources = [ "webapps_client_desktop.cc" ]

    deps = [
      ":desktop",
      ":webapps",
      "//base",
      "//chrome/browser/banners",
      "//chrome/browser/profiles:profile",
      "//chrome/browser/segmentation_platform",
      "//chrome/browser/user_education",
      "//chrome/browser/web_applications",
      "//chrome/common",
      "//components/infobars/content",
      "//components/security_state/content",
      "//components/tabs:public",
      "//components/webapps/browser",
      "//content/public/browser",
    ]
  }
}

if (!is_android) {
  source_set("interactive_ui_tests") {
    testonly = true
    defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]

    sources = [ "web_app_offline_interactive_uitest.cc" ]

    deps = [
      "//base",
      "//base/test:test_support",
      "//chrome/browser/profiles:profile",
      "//chrome/browser/ui",
      "//chrome/browser/ui/browser_window",
      "//chrome/browser/web_applications",
      "//chrome/browser/web_applications:web_applications_test_support",
      "//chrome/test:test_support",
      "//chrome/test:test_support_ui",
      "//components/metrics:content",
      "//components/webapps/browser:test_support",
      "//content/test:test_support",
      "//net",
      "//skia",
      "//testing/gmock",
      "//testing/gtest",
      "//ui/base",
      "//ui/gfx",
      "//ui/native_theme",
    ]

    if (is_chromeos) {
      deps += [ "//ash/public/cpp" ]
    }
  }
}
