# Copyright 2018 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_component("mojom") {
  # We don't want Blink variants of these bindings to be generated, because they
  # will end up having a dependency on KURL and thus be required to link into
  # the same Blink component target. This should be removed once it's possible
  # for a non-Blink target to depend on KURL.
  disable_variants = true

  sources = [
    "constants.mojom",
    "navigable_contents.mojom",
    "navigable_contents_factory.mojom",
  ]

  public_deps = [
    "//mojo/public/mojom/base",
    "//services/network/public/mojom:websocket_mojom",
    "//ui/accessibility/mojom",
    "//ui/base/mojom",
    "//ui/gfx/geometry/mojom",
    "//url/mojom:url_mojom_gurl",
  ]

  output_prefix = "content_service_mojom"
  macro_prefix = "CONTENT_SERVICE_MOJOM"
}
