| // 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(); |
| }; |