bluetooth: IsPaired returns true for any connected device even those that don't support pairing. |
|||||||||||
Issue descriptionIsPaired() returns true if the device is paired or if the device is trusted. But any device for which we've called BluetoothDevice::Connect is marked as trusted[1] so we basically return true if we've connected to the device in the past even if the device doesn't support pairing. This was done because in terms of UI there was no point in separating the concepts and at that point there were no other users of the API so it made sense. Now that there are other clients we should probably separate those two concepts. When separating these two concepts we need to make sure clients that rely on this behavior e.g. System tray, are refactored as well. Regarding security: According to Luiz the Trusted property does not affect interactions with LE devices so we should be good on the Web Bluetooth side. But he advised that we should stop doing this. profiles/input/device.c (for classic HID devices) and profiles/input/hog.c (for le HID devices) require authorization and the Trusted property only affects authentication. [1] https://cs.chromium.org/chromium/src/device/bluetooth/bluez/bluetooth_device_bluez.cc?sq=package:chromium&dr=C&rcl=1474586563&l=740
,
Sep 25 2016
,
Feb 3 2017
Is anyone actively working on this issue as of now? This bug is blocking us (crbug.com/672263).
,
Feb 3 2017
Noup. Feel free to send patches though :)
,
Feb 3 2017
,
Feb 7 2017
Miao, please take a look when you get a chance.
,
Feb 27 2017
Hi Miao, have you had a chance to look at this bug yet? We need it for M59.
,
Mar 3 2017
Hi Miao, can you please provide a quick status update on this bug and when you roughly expect to resolve it? Thanks!
,
Mar 3 2017
,
Mar 3 2017
,
Mar 3 2017
,
Mar 4 2017
The "trusted" is a BlueZ specific property that allows the remote device to be connected without authentication, and it is rw property in BlueZ, but currently we do not expose the write op to Chrome API. The add "trusted" property is easy, but the hard part would be going through each clients of CrOS BT and make sure the change is adopted accordingly in their code. Here are the action items for this issue: 0) Add IsTrusted to BlueZ device APIs. The implementation of other platforms should not be changed. 1) Modify existing unittests to address the change of excepted behavior. 2) Coordinate with function clients to make sure the above changes won't change the current behaviors. The clients include Web Bluetooth API, Chrome UI, ARC++ BT, Proximity. 0) and 1) should be in the same CL, and 2) should be taken care of separately.
,
Mar 6 2017
fwiw: Web Bluetooth doesn't user IsPaired or IsTrusted but please make sure that DisconnectGATT keeps working as it is now.
,
Mar 7 2017
Re#13, Yes. Once separating Paired and Trusted, DisconnectGATT should call IsPaired instead, and nothing should change from Web Bluetooth perspective.
,
Mar 16 2017
,
Mar 16 2017
,
Mar 28 2017
Is 2) in #12 also done? |
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by jyasskin@chromium.org
, Sep 23 2016