# Copyright 2019 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

group("installer_policies") {
  public_deps = [
    ":installer_policies_no_content_deps",
    ":installer_policies_with_content_deps",
  ]
}

# Installer policies that can be used in targets that can't depend on
# //content/ such as //android_webview:nonembedded.
# Prefer adding installer policies here.
static_library("installer_policies_no_content_deps") {
  sources = [
    "actor_safety_lists_component_installer.cc",
    "actor_safety_lists_component_installer.h",
    "amount_extraction_heuristic_regexes_component_installer.cc",
    "amount_extraction_heuristic_regexes_component_installer.h",
    "first_party_sets_component_installer_policy.cc",
    "first_party_sets_component_installer_policy.h",
    "origin_trials_component_installer.cc",
    "origin_trials_component_installer.h",
    "private_verification_tokens_installer_policy.cc",
    "private_verification_tokens_installer_policy.h",
    "safety_tips_component_installer.cc",
    "safety_tips_component_installer.h",
    "trust_token_key_commitments_component_installer_policy.cc",
    "trust_token_key_commitments_component_installer_policy.h",
  ]

  deps = [
    "//base",
    "//components/actor/core",
    "//components/autofill/core/browser",
    "//components/component_updater",
    "//components/lookalikes/core:proto",
    "//components/lookalikes/core:safety_tips",
    "//components/prefs",
    "//components/private_verification_tokens/common:private_verification_tokens_issuer_config",
    "//components/update_client",
    "//mojo/public/cpp/base:protobuf_support",
    "//services/network/public/cpp",
  ]

  # Disallow depending on content.
  assert_no_deps = [ "//content/public" ]
}

static_library("installer_policies_with_content_deps") {
  sources = [
    "history_search_strings_component_installer.cc",
    "history_search_strings_component_installer.h",
    "on_device_head_suggest_component_installer.cc",
    "on_device_head_suggest_component_installer.h",
    "optimization_hints_component_installer.cc",
    "optimization_hints_component_installer.h",
    "prediction_model_component_installer.cc",
    "prediction_model_component_installer.h",
  ]

  deps = [
    "//base",
    "//components/component_updater",
    "//components/history_embeddings/core",
    "//components/omnibox/browser",
    "//components/omnibox/common",
    "//components/optimization_guide/core",
    "//components/update_client",
  ]

  if (is_chromeos || is_win || is_mac || is_linux) {
    sources += [
      "iwa_key_distribution_component_installer_policy.cc",
      "iwa_key_distribution_component_installer_policy.h",
    ]
    deps += [
      "//components/crx_file",
      "//components/webapps/isolated_web_apps",
    ]
  }
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "actor_safety_lists_component_installer_policy_unittest.cc",
    "amount_extraction_heuristic_regexes_component_installer_unittest.cc",
    "first_party_sets_component_installer_policy_unittest.cc",
    "history_search_strings_component_installer_unittest.cc",
    "optimization_hints_component_installer_unittest.cc",
    "prediction_model_component_installer_unittest.cc",
    "private_verification_tokens_installer_policy_unittest.cc",
    "trust_token_key_commitments_component_installer_policy_unittest.cc",
  ]

  deps = [
    ":installer_policies",
    "//base",
    "//base/test:test_support",
    "//components/autofill/core/browser:amount_extraction_heuristic_regexes_proto",
    "//components/autofill/core/browser:test_support",
    "//components/component_updater:test_support",
    "//components/history_embeddings/core",
    "//components/optimization_guide/core",
    "//components/optimization_guide/proto:optimization_guide_proto",
    "//components/private_verification_tokens/common:private_verification_tokens_issuer_config",
    "//mojo/public/cpp/base:protobuf_support",
    "//services/network/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//url",
  ]
}
