// 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. module chromecast.mojom; // When WebBluetooth is enabled for a Cast Activity, this interface must be // provided by the Activity's host, which may be running in a remote service. // This interface is responsible for granting the Activity access to Bluetooth // devices. interface BluetoothDeviceAccessProvider { // Request that the host begin granting |client| access to approved devices. RequestDeviceAccess(BluetoothDeviceAccessProviderClient client); }; // The client for BluetoothDeviceAccessProvider, provided by the Activity, // and passed to the host via RequestDeviceAccess(). interface BluetoothDeviceAccessProviderClient { // Grant the Activity access to the device at |address|. This is a Bluetooth // mac address in canonical format. This method may be invoked multiple times, // or zero times, during this object's lifetime. GrantAccess(string address); // Grant the Activity access to any device discovered by the WebBluetooth // stack. GrantAccess() will not be called on this interface after this method // is called. GrantAccessToAllDevices(); };