# Copyright 2014 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("//build/module_args/mojo.gni")
import("//third_party/mojo/src/mojo/public/tools/bindings/mojom.gni")

mojom("interfaces") {
  sources = [
    "cookie_store.mojom",
    "host_resolver.mojom",
    "http_connection.mojom",
    "http_message.mojom",
    "http_server.mojom",
    "net_address.mojom",
    "network_service.mojom",
    "tcp_bound_socket.mojom",
    "tcp_connected_socket.mojom",
    "tcp_server_socket.mojom",
    "udp_socket.mojom",
    "url_loader.mojom",
    "url_loader_interceptor.mojom",
    "web_socket.mojom",
  ]

  deps = [
    "//third_party/mojo/src/mojo/public/interfaces/network",
  ]

  import_dirs = [
    get_path_info("../../", "abspath"),
    "//third_party/mojo/src",
  ]
}
