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

  # This mojom interface is exposed publicly to layout tests which use
  # prepackaged redistributable JS bindings. It is therefore not desirable to
  # scramble these messages.
  scramble_message_ids = false
}

mojom("fake_bluetooth_interfaces") {
  sources = [
    "test/fake_bluetooth.mojom",
  ]

  public_deps = [
    ":mojom",
  ]

  # This mojom interface is exposed publicly to layout tests which use
  # prepackaged redistributable JS bindings. It is therefore not desirable to
  # scramble these messages.
  scramble_message_ids = false
}

# Experimental interfaces are not ready for production use yet. See README.md
mojom("deprecated_experimental_interfaces") {
  sources = [
    "adapter.mojom",
    "device.mojom",
  ]

  public_deps = [
    ":mojom",
  ]

  visibility = [
    # Experimental interfaces are not ready for production use yet. See
    # README.md

    # Implementation of the mojom interfaces:
    "//device/bluetooth:deprecated_experimental_mojo",

    # Single approved client of the interfaces:
    "//chrome/browser/ui/webui/bluetooth_internals:*",
  ]
}
