New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 653310 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Oct 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Fitbit won't work on ARC++ devices

Project Member Reported by puthik@chromium.org, Oct 5 2016

Issue description

Open the bugs here also to track chrome patches.

See also http://b/28670943

We need to
- Expose service data from BlueZ (Also  Issue 618442 )
- Send update to Android when device changed (Also http://b/31916649)
- Deal with 128 bit uuid make advertise data buffer overflow


 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0dd82b1c975662a10f34a53b3df56d98526b36d0

commit 0dd82b1c975662a10f34a53b3df56d98526b36d0
Author: puthik <puthik@chromium.org>
Date: Thu Oct 06 05:03:03 2016

bluetooth: Expose service data from BlueZ

BlueZ exposed Bluetooth device's ServiceData as a{sv} property[1]
where the dict value variant is an array of byte.

This CL exposes that to upper layer by
- Add support to map<string, vector<uint8_t>> in dbus::Property
- Add new service_data property in BluetoothDeviceClient
- Implement GetServiceDataUUIDs() and GetServiceDataForUUID()
  in BluetoothDeviceBlueZ
- Fix misc style issues in original code to make linter happy

[1] http://git.kernel.org/cgit/bluetooth/bluez.git/tree/src/device.c#n2551

BUG= 618442 , 653310 ,b:28670943
TEST=Manually tested.

Review-Url: https://codereview.chromium.org/2369423003
Cr-Commit-Position: refs/heads/master@{#423434}

[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/dbus/property.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/dbus/property.h
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/dbus/property_unittest.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/bluetooth_device.h
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/bluez/bluetooth_adapter_bluez.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/bluez/bluetooth_bluez_unittest.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/bluez/bluetooth_device_bluez.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/bluez/bluetooth_device_bluez.h
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/dbus/bluetooth_device_client.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/dbus/bluetooth_device_client.h

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/81711b78e78640b9ec45cd25cb8c0dbeb252030f

commit 81711b78e78640b9ec45cd25cb8c0dbeb252030f
Author: puthik <puthik@chromium.org>
Date: Thu Oct 06 20:07:17 2016

arc: bluetooth: Use uuid 128 bit for service uuid

We used 128 bit uuid for service uuid before. However this
caused buffer overflow problem when encounter with multiple
16 bit uuid for this field as the length of advertising data
would exceed the limit.

We mitigated that by forcing the service uuid to be 16 bit.
But this break the device that decide to advertised custom
128 bit uuids.

This CL properly fixes the above problems by send 128 bit
uuid to Android and let Android side deal with the overflow
problem.

BUG= 653310 ,b:28670943
TEST=Android side can see 128 bit service uuid

Review-Url: https://codereview.chromium.org/2376873002
Cr-Commit-Position: refs/heads/master@{#423641}

[modify] https://crrev.com/81711b78e78640b9ec45cd25cb8c0dbeb252030f/components/arc/bluetooth/arc_bluetooth_bridge.cc
[modify] https://crrev.com/81711b78e78640b9ec45cd25cb8c0dbeb252030f/components/arc/bluetooth/arc_bluetooth_bridge_unittest.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d3ea5c2b19cc8e59566037206cff597f685dea6e

commit d3ea5c2b19cc8e59566037206cff597f685dea6e
Author: puthik <puthik@chromium.org>
Date: Thu Oct 06 23:19:07 2016

arc: bluetooth: Send update to Android when got DeviceChanged event

Currently we only send device properties and advertising data to
Android only when we first found a new device. We should also
update Android when we got DeviceChanged event.

Also refactor the code to
- Add new SendDevice() for common code related to this.
- Filter invalid data out from data that will send to Android.

BUG= 653310 ,b:31916649
TEST=nRF Connect app in minnie correctly show rssi graph

Review-Url: https://codereview.chromium.org/2391973003
Cr-Commit-Position: refs/heads/master@{#423726}

[modify] https://crrev.com/d3ea5c2b19cc8e59566037206cff597f685dea6e/components/arc/bluetooth/arc_bluetooth_bridge.cc
[modify] https://crrev.com/d3ea5c2b19cc8e59566037206cff597f685dea6e/components/arc/bluetooth/arc_bluetooth_bridge.h
[modify] https://crrev.com/d3ea5c2b19cc8e59566037206cff597f685dea6e/components/arc/bluetooth/arc_bluetooth_bridge_unittest.cc
[modify] https://crrev.com/d3ea5c2b19cc8e59566037206cff597f685dea6e/device/bluetooth/dbus/fake_bluetooth_device_client.h

Status: Fixed (was: Started)
Android side patches are also landed.

http://ag/1490339
http://ag/1494171
http://ag/1512179
http://ag/1512180
http://ag/1512231
Status: Verified (was: Fixed)
b/ bug is verified so marking this verified too 
Project Member

Comment 6 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0dd82b1c975662a10f34a53b3df56d98526b36d0

commit 0dd82b1c975662a10f34a53b3df56d98526b36d0
Author: puthik <puthik@chromium.org>
Date: Thu Oct 06 05:03:03 2016

bluetooth: Expose service data from BlueZ

BlueZ exposed Bluetooth device's ServiceData as a{sv} property[1]
where the dict value variant is an array of byte.

This CL exposes that to upper layer by
- Add support to map<string, vector<uint8_t>> in dbus::Property
- Add new service_data property in BluetoothDeviceClient
- Implement GetServiceDataUUIDs() and GetServiceDataForUUID()
  in BluetoothDeviceBlueZ
- Fix misc style issues in original code to make linter happy

[1] http://git.kernel.org/cgit/bluetooth/bluez.git/tree/src/device.c#n2551

BUG= 618442 , 653310 ,b:28670943
TEST=Manually tested.

Review-Url: https://codereview.chromium.org/2369423003
Cr-Commit-Position: refs/heads/master@{#423434}

[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/dbus/property.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/dbus/property.h
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/dbus/property_unittest.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/bluetooth_device.h
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/bluez/bluetooth_adapter_bluez.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/bluez/bluetooth_bluez_unittest.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/bluez/bluetooth_device_bluez.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/bluez/bluetooth_device_bluez.h
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/dbus/bluetooth_device_client.cc
[modify] https://crrev.com/0dd82b1c975662a10f34a53b3df56d98526b36d0/device/bluetooth/dbus/bluetooth_device_client.h

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/81711b78e78640b9ec45cd25cb8c0dbeb252030f

commit 81711b78e78640b9ec45cd25cb8c0dbeb252030f
Author: puthik <puthik@chromium.org>
Date: Thu Oct 06 20:07:17 2016

arc: bluetooth: Use uuid 128 bit for service uuid

We used 128 bit uuid for service uuid before. However this
caused buffer overflow problem when encounter with multiple
16 bit uuid for this field as the length of advertising data
would exceed the limit.

We mitigated that by forcing the service uuid to be 16 bit.
But this break the device that decide to advertised custom
128 bit uuids.

This CL properly fixes the above problems by send 128 bit
uuid to Android and let Android side deal with the overflow
problem.

BUG= 653310 ,b:28670943
TEST=Android side can see 128 bit service uuid

Review-Url: https://codereview.chromium.org/2376873002
Cr-Commit-Position: refs/heads/master@{#423641}

[modify] https://crrev.com/81711b78e78640b9ec45cd25cb8c0dbeb252030f/components/arc/bluetooth/arc_bluetooth_bridge.cc
[modify] https://crrev.com/81711b78e78640b9ec45cd25cb8c0dbeb252030f/components/arc/bluetooth/arc_bluetooth_bridge_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d3ea5c2b19cc8e59566037206cff597f685dea6e

commit d3ea5c2b19cc8e59566037206cff597f685dea6e
Author: puthik <puthik@chromium.org>
Date: Thu Oct 06 23:19:07 2016

arc: bluetooth: Send update to Android when got DeviceChanged event

Currently we only send device properties and advertising data to
Android only when we first found a new device. We should also
update Android when we got DeviceChanged event.

Also refactor the code to
- Add new SendDevice() for common code related to this.
- Filter invalid data out from data that will send to Android.

BUG= 653310 ,b:31916649
TEST=nRF Connect app in minnie correctly show rssi graph

Review-Url: https://codereview.chromium.org/2391973003
Cr-Commit-Position: refs/heads/master@{#423726}

[modify] https://crrev.com/d3ea5c2b19cc8e59566037206cff597f685dea6e/components/arc/bluetooth/arc_bluetooth_bridge.cc
[modify] https://crrev.com/d3ea5c2b19cc8e59566037206cff597f685dea6e/components/arc/bluetooth/arc_bluetooth_bridge.h
[modify] https://crrev.com/d3ea5c2b19cc8e59566037206cff597f685dea6e/components/arc/bluetooth/arc_bluetooth_bridge_unittest.cc
[modify] https://crrev.com/d3ea5c2b19cc8e59566037206cff597f685dea6e/device/bluetooth/dbus/fake_bluetooth_device_client.h

Comment 9 by dimu@google.com, Nov 4 2016

Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840

Sign in to add a comment