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

mojom("interfaces") {
  sources = [
    "cookie_store.mojom",
    "net_address.mojom",
    "network_error.mojom",
    "network_service.mojom",
    "tcp_bound_socket.mojom",
    "tcp_connected_socket.mojom",
    "tcp_server_socket.mojom",
    "udp_socket.mojom",
    "url_loader.mojom",
    "web_socket.mojom",
  ]

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