# 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 = [
    "content_handler.mojom",
  ]

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

  if (defined(network_service_root)) {
    import_dirs += [ network_service_root ]
  } else {
    network_service_root = "../../.."
  }

  deps = [
    "$network_service_root/network/public/interfaces",
  ]

  mojo_sdk_deps = [ "mojo/public/interfaces/application" ]
}
