# 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("isolated_web_apps_no_pwa_core_deps") {
  sources = [
    "install/isolated_web_app_install_source.cc",
    "install/isolated_web_app_install_source.h",
    "install/non_installed_bundle_inspection_context.cc",
    "install/non_installed_bundle_inspection_context.h",
    "isolated_web_app_features.cc",
    "isolated_web_app_features.h",
    "isolated_web_app_url_info.cc",
    "isolated_web_app_url_info.h",
    "key_rotation_util.cc",
    "key_rotation_util.h",
    "remove_isolated_web_app_data.cc",
    "remove_isolated_web_app_data.h",
    "storage_util.cc",
    "storage_util.h",
    "update/version_change_validator.cc",
    "update/version_change_validator.h",
    "update_manifest/update_manifest.cc",
    "update_manifest/update_manifest.h",
    "update_manifest/update_manifest_fetcher.cc",
    "update_manifest/update_manifest_fetcher.h",
    "window_management/window_management_content_setting_observer.cc",
    "window_management/window_management_content_setting_observer.h",
  ]

  public_deps = [
    "//base",
    "//chrome/browser/web_applications:iwa_types",
    "//components/content_settings/core/browser",
    "//components/web_package",
    "//components/webapps/browser",
    "//components/webapps/common",
    "//components/webapps/isolated_web_apps",
    "//content/public/browser",
    "//net",
    "//services/network/public/cpp",
    "//services/network/public/mojom",
    "//url",
  ]

  deps = [
    "//chrome/browser/browsing_data:constants",
    "//chrome/browser/content_settings:content_settings_factory",
    "//chrome/browser/policy",
    "//chrome/browser/profiles:profile",
    "//chrome/browser/web_applications:app_id_helpers",
    "//chrome/common",
    "//chrome/common:buildflags",
    "//components/base32",
    "//components/webapps/isolated_web_apps",
    "//crypto",
  ]

  assert_no_deps = [ "//chrome/browser/web_applications" ]

  if (is_chromeos) {
    public_deps += [ "//ash/constants" ]
    deps += [
      "//chromeos/components/kiosk",
      "//chromeos/components/mgs",
    ]
    sources += [
      "policy/isolated_web_app_cache_client.cc",
      "policy/isolated_web_app_cache_client.h",
    ]
  }
}

source_set("isolated_web_apps") {
  sources = [
    "chrome_content_browser_client_isolated_web_apps_part.cc",
    "chrome_content_browser_client_isolated_web_apps_part.h",
    "chrome_iwa_client.cc",
    "chrome_iwa_client.h",
    "commands/get_isolated_web_app_browsing_data_command.cc",
    "commands/get_isolated_web_app_browsing_data_command.h",
    "get_isolated_web_app_browsing_data.cc",
    "get_isolated_web_app_browsing_data.h",
    "isolated_web_app_error_page.cc",
    "isolated_web_app_error_page.h",
    "isolated_web_app_throttle.cc",
    "isolated_web_app_throttle.h",
    "iwa_permissions_policy_cache.cc",
    "iwa_permissions_policy_cache.h",
    "jobs/get_isolated_web_app_size_job.cc",
    "jobs/get_isolated_web_app_size_job.h",
    "runtime_init.cc",
    "runtime_init.h",
    "web_app_isolation_delegate_impl.cc",
    "web_app_isolation_delegate_impl.h",
  ]

  public_deps = [
    "//base",
    "//chrome/browser:chrome_content_browser_client_parts",
    "//chrome/browser/web_applications",
    "//components/web_package",
    "//components/webapps/isolated_web_apps",
    "//content/public/browser",
    "//content/public/common",
    "//mojo/public/cpp/bindings",
    "//services/network/public/mojom",
    "//third_party/blink/public/common",
    "//url",
  ]

  deps = [
    ":isolated_web_apps_no_pwa_core_deps",
    "//chrome/browser/browsing_data",
    "//chrome/browser/profiles:profile",
    "//chrome/common",
    "//components/browsing_data/content",
    "//components/strings:components_strings_grit",
    "//components/webapps/common",
    "//components/webapps/isolated_web_apps",
    "//net",
    "//services/network/public/cpp",
    "//ui/base",
  ]

  if (is_chromeos) {
    deps += [ "//chromeos/ash/components/browser_context_helper" ]
  }
}
