Platforms expose methods to retrieve devices that have connected outside the user agent and their UUIDs: Android: BluetoothManager#getConnectedDevices[1] and getUuids()[2] macOS: CBCentralManager:retrieveConnectedPeripheralsWithServices:[3] Windows: DeviceInformation::FindAllAsync[4] with GattDeviceService::GetDeviceSelectorFromUuid()[5] We need to allow tests to provide known_service_uuids that would cause the returned devices from the platform functions to change. [1] https://developer.android.com/reference/android/bluetooth/BluetoothManager.html#getConnectedDevices(int) [2] https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#getUuids() [3] https://developer.apple.com/reference/corebluetooth/cbcentralmanager/1518924-retrieveconnectedperipheralswith?language=objc [4] https://docs.microsoft.com/en-us/uwp/api/windows.devices.enumeration.deviceinformation#Windows_Devices_Enumeration_DeviceInformation_FindAllAsync_System_String_ [5] https://docs.microsoft.com/en-us/uwp/api/windows.devices.bluetooth.genericattributeprofile.gattdeviceservice#Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceService_GetDeviceSelectorFromUuid_System_Guid_
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/46a4de44f2d04ac212c55fbc08fe17fd2da63845 commit 46a4de44f2d04ac212c55fbc08fe17fd2da63845 Author: ortuno <ortuno@chromium.org> Date: Fri May 12 02:54:16 2017 bluetooth: Implement known_service_uuids for Peripherals. Platforms expose methods to retrieve devices that have connected outside the user agent and their UUIDs: Android: BluetoothManager#getConnectedDevices[1] and getUuids()[2] macOS: CBCentralManager:retrieveConnectedPeripheralsWithServices:[3] Windows: DeviceInformation::FindAllAsync[4] with GattDeviceService::GetDeviceSelectorFromUuid()[5] Allows tests to provide known_service_uuids that would cause the returned devices from the platform functions to change. [1] https://developer.android.com/reference/android/bluetooth/BluetoothManager.html#getConnectedDevices(int) [2] https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#getUuids() [3] https://developer.apple.com/reference/corebluetooth/cbcentralmanager/1518924-retrieveconnectedperipheralswith?language=objc [4] https://docs.microsoft.com/en-us/uwp/api/windows.devices.enumeration.deviceinformation#Windows_Devices_Enumeration_DeviceInformation_FindAllAsync_System_String_ [5] https://docs.microsoft.com/en-us/uwp/api/windows.devices.bluetooth.genericattributeprofile.gattdeviceservice#Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceService_GetDeviceSelectorFromUuid_System_Guid_ BUG= 719813 Review-Url: https://codereview.chromium.org/2867713008 Cr-Commit-Position: refs/heads/master@{#471197} [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/device/bluetooth/public/interfaces/BUILD.gn [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/device/bluetooth/public/interfaces/test/fake_bluetooth.mojom [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/device/bluetooth/test/fake_central.cc [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/device/bluetooth/test/fake_central.h [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/device/bluetooth/test/fake_peripheral.cc [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/device/bluetooth/test/fake_peripheral.h [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/third_party/WebKit/LayoutTests/bluetooth/idl/idl-BluetoothDevice.html [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/third_party/WebKit/LayoutTests/bluetooth/requestDevice/blocklisted-service-in-filter.html [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/third_party/WebKit/LayoutTests/bluetooth/requestDevice/consumes-user-gesture.html [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/third_party/WebKit/LayoutTests/bluetooth/requestDevice/not-processing-user-gesture.html [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/third_party/WebKit/LayoutTests/bluetooth/requestDevice/request-from-iframe.html [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/third_party/WebKit/LayoutTests/bluetooth/requestDevice/same-device.html [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/third_party/WebKit/LayoutTests/bluetooth/requestDevice/single-filter-single-service.html [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/third_party/WebKit/LayoutTests/resources/bluetooth/bluetooth-helpers.js [modify] https://crrev.com/46a4de44f2d04ac212c55fbc08fe17fd2da63845/third_party/WebKit/LayoutTests/resources/bluetooth/web-bluetooth-test.js
Comment 1 by bugdroid1@chromium.org
, May 12 2017