# Copyright 2017 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("//mojo/public/tools/bindings/mojom.gni")

mojom("mojom") {
  sources = [
    "payment_request.mojom",
  ]

  # TODO(crbug.com/699569): Convert to use the new JS bindings.
  use_new_js_bindings = false
}

mojom("mojom_parser") {
  sources = [
    "payment_manifest_parser.mojom",
  ]

  public_deps = [
    "//url/mojo:url_mojom_gurl",
  ]
}

mojom("mojom_payment_app") {
  sources = [
    "payment_app.mojom",
  ]

  public_deps = [
    ":mojom",
    "//mojo/common:common_custom_types",
    "//url/mojo:url_mojom_gurl",
  ]
}
