Implement BluetoothRemoteGattCharacteristic::WriteWithoutResponse on all supporting platforms |
|||
Issue descriptionhttps://crrev.com/c/1000859 introduces WriteWithoutResponse to BluetoothRemoteGattCharacteristic and implements it for macOS. However, other platforms provide the necessary APIs as well, and so we should try to implement WriteWithoutResponse on all supporting platforms.
,
Apr 12 2018
From ortuno@ [1]: """ Remember how we implemented SetPowered()? We had a common implementation in the base class and a Impl method implemented in each platform. We should follow that pattern here and have WriteWithoutResponse() in the base class check if the characteristic is writeable without response and then call the WriteWithoutResponseImpl. """ [1] https://crrev.com/c/1000859/6/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm#221
,
Apr 12 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a7786fe58397c2087caee44e80e3ac36bbee49b4 commit a7786fe58397c2087caee44e80e3ac36bbee49b4 Author: Jan Wilken Dörrie <jdoerrie@chromium.org> Date: Thu Apr 12 12:31:05 2018 [bluetooth] Introduce WriteWithoutResponse() This change introduces WriteWithoutResponse() on BluetoothRemoteGattCharacteristic. In contrast to the regular WriteRemoteCharacteristic() this method does not wait for a response from the operating system. For now it is only implemented on Mac, where it can result in a speedup of 8x for sending data (see https://crbug.com/808175#c9 ). Bug: 808175 , 831524 Change-Id: If2012ac8e19d17fe218e273d8d0e300a2b06a19a Reviewed-on: https://chromium-review.googlesource.com/1000859 Commit-Queue: Jan Wilken Dörrie <jdoerrie@chromium.org> Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org> Reviewed-by: Conley Owens <cco3@chromium.org> Cr-Commit-Position: refs/heads/master@{#550157} [modify] https://crrev.com/a7786fe58397c2087caee44e80e3ac36bbee49b4/device/bluetooth/bluetooth_remote_gatt_characteristic.cc [modify] https://crrev.com/a7786fe58397c2087caee44e80e3ac36bbee49b4/device/bluetooth/bluetooth_remote_gatt_characteristic.h [modify] https://crrev.com/a7786fe58397c2087caee44e80e3ac36bbee49b4/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.h [modify] https://crrev.com/a7786fe58397c2087caee44e80e3ac36bbee49b4/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm [modify] https://crrev.com/a7786fe58397c2087caee44e80e3ac36bbee49b4/device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc [modify] https://crrev.com/a7786fe58397c2087caee44e80e3ac36bbee49b4/device/bluetooth/test/fake_remote_gatt_characteristic.cc [modify] https://crrev.com/a7786fe58397c2087caee44e80e3ac36bbee49b4/device/bluetooth/test/fake_remote_gatt_characteristic.h [modify] https://crrev.com/a7786fe58397c2087caee44e80e3ac36bbee49b4/device/fido/fido_ble_connection.cc
,
Apr 25 2018
,
Dec 26
jdoerrie@ is no longer working on this stuff. Support for WriteWithoutResponse() has been requested in the Web Bluetooth API[1]. It looks like every platform other than BlueZ supports an operation like this. An open question however is whether this operation should still be asynchronous. On macOS it looks like we don't get a callback when the write is sent to the device but on Windows it looks like we could (when calling WriteValueWithResultAndOptionsAsync()). On Android it is unclear. [1]: https://github.com/WebBluetoothCG/web-bluetooth/issues/238 |
|||
►
Sign in to add a comment |
|||
Comment 1 by reillyg@chromium.org
, Apr 11 2018Status: Assigned (was: Untriaged)