| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module content.mojom; |
| |
| import "url/mojom/origin.mojom"; |
| |
| // This interface is being developed to support Web Platform Tests for Web |
| // Bluetooth. |
| // https://docs.google.com/document/d/1Nhv_oVDCodd1pEH_jj9k8gF4rPGb_84VYaZ9IG8M_WY |
| // |
| // These interfaces are not intended to be used directly. |
| // `web-bluetooth-test.js` makes the Fake Bluetooth interface easier to work |
| // with. |
| // * Calls are synchronous. |
| // * IDs are cached. |
| // |
| // If another C++ client intends to use FakeBluetooth a C++ wrapper similar to |
| // `web-bluetooth-test.js` should be created. |
| // |
| // The implementation details of FakeBluetoothChooser can be found in the Web |
| // Bluetooth Test Scanning design document. |
| // https://docs.google.com/document/d/1XFl_4ZAgO8ddM6U53A9AfUuZeWgJnlYD5wtbXqEpzeg |
| |
| // Indicates the types of Bluetooth chooser events. |
| enum ChooserEventType { |
| CHOOSER_OPENED, |
| CHOOSER_CLOSED, |
| ADAPTER_REMOVED, |
| ADAPTER_DISABLED, |
| ADAPTER_ENABLED, |
| DISCOVERY_FAILED_TO_START, |
| DISCOVERING, |
| DISCOVERY_IDLE, |
| ADD_OR_UPDATE_DEVICE, |
| UNAUTHORIZED, |
| }; |
| |
| // FakeBluetoothChooser allows clients to control the global state of the |
| // Bluetooth chooser during a web test. |
| interface FakeBluetoothChooser { |
| // Simulates a user selecting the given |peripheral_address| in the Bluetooth |
| // chooser. |
| SelectPeripheral(string peripheral_address); |
| |
| // Calls the event handler function with the CANCELLED event. |
| Cancel(); |
| |
| // Calls the event handler function with the RESCAN event. |
| Rescan(); |
| }; |
| |
| // FakeBluetoothChooserFactory ensures that FakeBluetoothChoosers are created |
| // with an associated FakeBluetoothChooserClient. |
| interface FakeBluetoothChooserFactory { |
| CreateFakeBluetoothChooser( |
| pending_receiver<FakeBluetoothChooser> fake_chooser, |
| pending_associated_remote<FakeBluetoothChooserClient> client) => (); |
| }; |
| |
| // FakeBluetoothChooserEvent describes the type of chooser event that has been |
| // produced by the FakeBluetoothChooser. |
| struct FakeBluetoothChooserEvent { |
| ChooserEventType type; |
| |
| // Describes the origin the chooser is currently displaying. |
| // This field will be used by the |CHOOSER_OPENED| event type. |
| url.mojom.Origin? origin; |
| |
| // Describes the MAC address of the Bluetooth device. |
| string? peripheral_address; |
| }; |
| |
| // Classes that implement this interface will be notified of chooser events. |
| interface FakeBluetoothChooserClient { |
| OnEvent(FakeBluetoothChooserEvent event); |
| }; |