chromium/components/payments/content/BUILD.gn

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

import("//build/config/chromeos/ui_mode.gni")

static_library("content") {
  sources = [
    "android_app_communication.cc",
    "android_app_communication.h",
    "android_payment_app.cc",
    "android_payment_app.h",
    "android_payment_app_factory.cc",
    "android_payment_app_factory.h",
    "has_enrolled_instrument_query_factory.cc",
    "has_enrolled_instrument_query_factory.h",
    "initialization_task.cc",
    "initialization_task.h",
    "payment_app.cc",
    "payment_app.h",
    "payment_app_factory.cc",
    "payment_app_factory.h",
    "payment_app_service.cc",
    "payment_app_service.h",
    "payment_credential.cc",
    "payment_credential.h",
    "payment_credential_factory.cc",
    "payment_credential_factory.h",
    "payment_details_converter.cc",
    "payment_details_converter.h",
    "payment_event_response_util.cc",
    "payment_event_response_util.h",
    "payment_handler_host.cc",
    "payment_handler_host.h",
    "payment_handler_navigation_throttle.cc",
    "payment_handler_navigation_throttle.h",
    "payment_request_converter.cc",
    "payment_request_converter.h",
    "payment_request_spec.cc",
    "payment_request_spec.h",
    "payment_request_web_contents_manager.cc",
    "payment_request_web_contents_manager.h",
    "payment_ui_observer.h",
    "payments_userdata_key.cc",
    "payments_userdata_key.h",
    "secure_payment_confirmation_app.cc",
    "secure_payment_confirmation_app.h",
    "secure_payment_confirmation_app_factory.cc",
    "secure_payment_confirmation_app_factory.h",
    "secure_payment_confirmation_model.cc",
    "secure_payment_confirmation_model.h",
    "secure_payment_confirmation_no_creds.cc",
    "secure_payment_confirmation_no_creds.h",
    "secure_payment_confirmation_no_creds_model.cc",
    "secure_payment_confirmation_no_creds_model.h",
    "secure_payment_confirmation_no_creds_view.cc",
    "secure_payment_confirmation_no_creds_view.h",
    "secure_payment_confirmation_view.h",
    "service_worker_payment_app.cc",
    "service_worker_payment_app.h",
    "service_worker_payment_app_factory.cc",
    "service_worker_payment_app_factory.h",
  ]

  deps = [
    ":content_common",
    ":utils",
    "//base",
    "//build:chromeos_buildflags",
    "//components/autofill/core/browser",
    "//components/keyed_service/content",
    "//components/payments/content/utility",
    "//components/payments/core",
    "//components/payments/core:error_strings",
    "//components/payments/core:method_strings",
    "//components/payments/mojom",
    "//components/prefs",
    "//components/strings:components_strings_grit",
    "//components/ukm/content",
    "//components/url_formatter",
    "//components/webauthn/core/browser",
    "//components/webdata/common",
    "//components/webdata_services:webdata_services",
    "//content/public/browser",
    "//crypto",
    "//device/fido",
    "//services/data_decoder/public/cpp",
    "//third_party/blink/public:blink_headers",
    "//url",
  ]

  if (is_chromeos) {
    sources += [
      "android_app_communication_helpers.cc",
      "android_app_communication_helpers.h",
    ]

    deps += [ "//chromeos/components/payments/mojom" ]
  }

  if (is_chromeos_ash) {
    sources += [ "android_app_communication_ash.cc" ]

    deps += [
      "//ash/components/arc",
      "//ash/public/cpp/external_arc",
    ]
  }

  if (is_chromeos_lacros) {
    sources += [ "android_app_communication_lacros.cc" ]

    deps += [ "//chromeos/lacros" ]
  }

  if (!is_chromeos) {
    sources += [ "android_app_communication_stub.cc" ]
  }

  if (is_android) {
    sources += [
      "secure_payment_confirmation_no_creds_view_stub.cc",
      "secure_payment_confirmation_view_stub.cc",
    ]
  } else {
    sources += [
      "content_payment_request_delegate.cc",
      "content_payment_request_delegate.h",
      "payment_request.cc",
      "payment_request.h",
      "payment_request_dialog.h",
      "payment_request_display_manager.cc",
      "payment_request_display_manager.h",
      "payment_request_state.cc",
      "payment_request_state.h",
      "payment_response_helper.cc",
      "payment_response_helper.h",
      "secure_payment_confirmation_controller.cc",
      "secure_payment_confirmation_controller.h",
    ]
  }
}

# Files used by content and utility.
static_library("content_common") {
  sources = [
    "web_app_manifest.cc",
    "web_app_manifest.h",
  ]

  deps = [
    "//content/public/browser",
    "//skia",
  ]
}

static_library("utils") {
  sources = [
    "developer_console_logger.cc",
    "developer_console_logger.h",
    "installable_payment_app_crawler.cc",
    "installable_payment_app_crawler.h",
    "manifest_verifier.cc",
    "manifest_verifier.h",
    "payment_manifest_web_data_service.cc",
    "payment_manifest_web_data_service.h",
    "payment_method_manifest_table.cc",
    "payment_method_manifest_table.h",
    "service_worker_payment_app_finder.cc",
    "service_worker_payment_app_finder.h",
    "ssl_validity_checker.cc",
    "ssl_validity_checker.h",
    "web_app_manifest_section_table.cc",
    "web_app_manifest_section_table.h",
  ]

  deps = [
    ":content_common",
    "//base",
    "//components/autofill/core/browser",
    "//components/network_session_configurator/common",
    "//components/payments/content/icon",
    "//components/payments/content/utility",
    "//components/payments/core",
    "//components/payments/core:error_strings",
    "//components/payments/core:method_strings",
    "//components/security_state/content",
    "//components/security_state/core",
    "//components/strings",
    "//components/webdata/common",
    "//content/public/browser",
    "//net",
    "//sql",
    "//third_party/blink/public:blink_headers",
    "//ui/base",
  ]

  public_deps = [
    "//third_party/icu",
    "//third_party/libaddressinput",
  ]
}

static_library("test_support") {
  testonly = true
  sources = [
    "mock_payment_manifest_web_data_service.cc",
    "mock_payment_manifest_web_data_service.h",
  ]
  deps = [
    ":utils",
    "//base/test:test_support",
    "//components/webdata/common",
    "//components/webdata_services",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/blink/public:blink_headers",
  ]
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "android_app_communication_test_support.h",
    "android_app_communication_unittest.cc",
    "android_payment_app_factory_unittest.cc",
    "android_payment_app_unittest.cc",
    "mock_android_app_communication.cc",
    "mock_android_app_communication.h",
    "mock_payment_app_factory_delegate.cc",
    "mock_payment_app_factory_delegate.h",
    "payment_event_response_util_unittest.cc",
    "payment_method_manifest_table_unittest.cc",
    "secure_payment_confirmation_model_unittest.cc",
    "secure_payment_confirmation_no_creds_model_unittest.cc",
    "service_worker_payment_app_finder_unittest.cc",
    "web_app_manifest_section_table_unittest.cc",
  ]

  if (!is_android) {
    sources += [
      "mock_content_payment_request_delegate.cc",
      "mock_content_payment_request_delegate.h",
      "payment_app_unittest.cc",
      "payment_request_display_manager_unittest.cc",
      "payment_request_spec_unittest.cc",
      "payment_request_state_unittest.cc",
      "payment_request_web_contents_manager_unittest.cc",
      "payment_response_helper_unittest.cc",
      "secure_payment_confirmation_app_factory_unittest.cc",
      "secure_payment_confirmation_app_unittest.cc",
      "service_worker_payment_app_unittest.cc",
      "test_content_payment_request_delegate.cc",
      "test_content_payment_request_delegate.h",
      "test_payment_app.cc",
      "test_payment_app.h",
    ]
  }

  deps = [
    ":content",
    ":test_support",
    ":utils",
    "//base",
    "//base/test:test_support",
    "//components/autofill/core/browser",
    "//components/autofill/core/browser:test_support",
    "//components/payments/core",
    "//components/payments/core:error_strings",
    "//components/payments/core:method_strings",
    "//components/payments/core:test_support",
    "//components/strings:components_strings_grit",
    "//components/webauthn/core/browser",
    "//components/webauthn/core/browser:test_support",
    "//components/webdata/common",
    "//content/test:test_support",
    "//net:test_support",
    "//services/metrics/public/cpp:metrics_cpp",
    "//services/network:test_support",
    "//sql",
    "//testing/gtest",
    "//third_party/blink/public:blink_headers",
    "//third_party/icu",
    "//third_party/libaddressinput:test_support",
  ]

  if (is_chromeos) {
    sources += [
      "android_app_communication_test_support_chrome_os.cc",
      "android_app_communication_test_support_chrome_os.h",
    ]
    deps += [
      "//chromeos/components/payments:test_support",
      "//chromeos/components/payments/mojom",
    ]
  } else {
    sources += [ "android_app_communication_test_support_stub.cc" ]
  }

  if (is_chromeos_ash) {
    sources += [ "android_app_communication_test_support_ash.cc" ]

    deps += [
      "//ash/components/arc",
      "//ash/components/arc:arc_test_support",
      "//ash/components/arc/mojom",
      "//ash/public/cpp/external_arc:test_support",
      "//components/arc",
    ]
  }

  if (is_chromeos_lacros) {
    sources += [ "android_app_communication_test_support_lacros.cc" ]
    deps += [
      "//chromeos/lacros",
      "//chromeos/lacros:test_support",
    ]
  }
}