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

import("//third_party/blink/renderer/modules/modules.gni")

blink_modules_sources("payments") {
  sources = [
    "abort_payment_event.cc",
    "abort_payment_event.h",
    "abort_payment_respond_with_observer.cc",
    "abort_payment_respond_with_observer.h",
    "basic_card_helper.cc",
    "basic_card_helper.h",
    "can_make_payment_event.cc",
    "can_make_payment_event.h",
    "can_make_payment_respond_with_observer.cc",
    "can_make_payment_respond_with_observer.h",
    "html_iframe_element_payments.cc",
    "html_iframe_element_payments.h",
    "merchant_validation_event.cc",
    "merchant_validation_event.h",
    "payment_address.cc",
    "payment_address.h",
    "payment_app_service_worker_global_scope.h",
    "payment_app_service_worker_registration.cc",
    "payment_app_service_worker_registration.h",
    "payment_event_data_conversion.cc",
    "payment_event_data_conversion.h",
    "payment_handler_utils.cc",
    "payment_handler_utils.h",
    "payment_instruments.cc",
    "payment_instruments.h",
    "payment_manager.cc",
    "payment_manager.h",
    "payment_method_change_event.cc",
    "payment_method_change_event.h",
    "payment_request.cc",
    "payment_request.h",
    "payment_request_delegate.h",
    "payment_request_event.cc",
    "payment_request_event.h",
    "payment_request_respond_with_observer.cc",
    "payment_request_respond_with_observer.h",
    "payment_request_update_event.cc",
    "payment_request_update_event.h",
    "payment_response.cc",
    "payment_response.h",
    "payment_state_resolver.h",
    "payments_validators.cc",
    "payments_validators.h",
    "update_payment_details_function.cc",
    "update_payment_details_function.h",
  ]

  if (is_android) {
    sources += [
      "skip_to_gpay_utils.cc",
      "skip_to_gpay_utils.h",
    ]
  }

  deps = [
    "//components/payments/mojom:mojom_blink",
  ]
}
