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

Issue 611862 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Chrome
Pri: 1
Type: Bug

Blocked on:
issue 602465



Sign in to add a comment

Handle device information for attribute value read/write requests.

Project Member Reported by r...@chromium.org, May 13 2016

Issue description

We currently don't have a mechanism to get and forward the device that requested a read or a write on an attribute value, neither in BlueZ code, nor //device/bluetooth. This means that any read or write comes in blind, without the app knowing which device requested it. This is required for the GVC app.

 
Project Member

Comment 1 by bugdroid1@chromium.org, May 17 2016

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

commit d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8
Author: rkc <rkc@chromium.org>
Date: Tue May 17 22:42:34 2016

Remove service, add device, in BluetoothLocalGattService::Delegate.

This Delegate sends the service along with the local GATT attributes when
there really is no reason to send the service along. If a client needs the
service, they can just get it from the attribute they are handling.

However, we *are* missing the device, which is needed by clients to identify
which device is actually making the read/write/notifystate requests.

BluetoothLocalGattCharacteristicBlueZ::NotifyValueChanged now also
takes a device.

This CL fixes these issues and all current clients/tests for this code.

R=scheib@chromium.org
BUG= 611862 

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

[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_api.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.h
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/bluetooth_local_gatt_characteristic.h
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/bluetooth_local_gatt_characteristic_unittest.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/bluetooth_local_gatt_descriptor.h
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/bluetooth_local_gatt_descriptor_unittest.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/bluetooth_local_gatt_service.h
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/bluez/bluetooth_adapter_bluez.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/bluez/bluetooth_local_gatt_characteristic_bluez.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/bluez/bluetooth_local_gatt_characteristic_bluez.h
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/bluez/bluetooth_local_gatt_descriptor_bluez.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/bluez/bluetooth_local_gatt_descriptor_bluez.h
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/dbus/bluetooth_gatt_characteristic_delegate_wrapper.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/dbus/bluetooth_gatt_descriptor_delegate_wrapper.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/test/bluetooth_test.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/test/bluetooth_test.h
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/test/bluetooth_test_bluez.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/test/bluetooth_test_bluez.h
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/test/test_bluetooth_local_gatt_service_delegate.cc
[modify] https://crrev.com/d4ba1a590a3fcfee93f76ed4eb5d02235c4c8ad8/device/bluetooth/test/test_bluetooth_local_gatt_service_delegate.h

Project Member

Comment 2 by bugdroid1@chromium.org, May 17 2016

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

commit 4a98d82baaf2f5f5c2d9b09a2468e3ceff565790
Author: rkc <rkc@chromium.org>
Date: Tue May 17 22:52:11 2016

Add DBus plumbing and tests for sending devices with ATT read/writes.

This CL adds the plumbing needed to pass on the device that is read from
DBus to the //device/bluetooth delegate. This also allows us to add tests
that check the device on read/write requests to attribute values.

Reviews requested,
xiyuan@ - General review.
scheib@ - Test changes owners review.

R=scheib@chromium.org, xiyuan@chromium.org
BUG= 611862 

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

[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/BUILD.gn
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/bluetooth.gyp
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/bluetooth_local_gatt_characteristic_unittest.cc
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/bluetooth_local_gatt_descriptor_unittest.cc
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/bluez/bluetooth_local_gatt_service_bluez.h
[add] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/bluetooth_gatt_attribute_value_delegate.cc
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/bluetooth_gatt_attribute_value_delegate.h
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/bluetooth_gatt_characteristic_delegate_wrapper.cc
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/bluetooth_gatt_characteristic_delegate_wrapper.h
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/bluetooth_gatt_characteristic_service_provider_impl.cc
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/bluetooth_gatt_descriptor_delegate_wrapper.cc
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/bluetooth_gatt_descriptor_delegate_wrapper.h
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/fake_bluetooth_gatt_characteristic_service_provider.cc
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/fake_bluetooth_gatt_characteristic_service_provider.h
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/fake_bluetooth_gatt_descriptor_service_provider.cc
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/dbus/fake_bluetooth_gatt_descriptor_service_provider.h
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/test/bluetooth_test.h
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/test/bluetooth_test_bluez.cc
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/test/bluetooth_test_bluez.h
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/test/test_bluetooth_local_gatt_service_delegate.cc
[modify] https://crrev.com/4a98d82baaf2f5f5c2d9b09a2468e3ceff565790/device/bluetooth/test/test_bluetooth_local_gatt_service_delegate.h

Project Member

Comment 3 by bugdroid1@chromium.org, May 18 2016

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

commit b3b024b69a6e3eabeb6cf6edd945f6f4d4f74067
Author: rkc <rkc@chromium.org>
Date: Wed May 18 00:28:21 2016

Add implementation for parsing device info in read/write attribute calls.

This CL adds the actual DBus implementation for parsing the device information
from the options dictionaries now passed up from BlueZ with the GATT
attribute value read/write request calls. It also plumbs the device
information up to the Chrome app getting these requests.

R=xiyuan@chromium.org
BUG= 611862 

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

[modify] https://crrev.com/b3b024b69a6e3eabeb6cf6edd945f6f4d4f74067/chrome/browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_event_router.cc
[modify] https://crrev.com/b3b024b69a6e3eabeb6cf6edd945f6f4d4f74067/device/bluetooth/BUILD.gn
[modify] https://crrev.com/b3b024b69a6e3eabeb6cf6edd945f6f4d4f74067/device/bluetooth/bluetooth.gyp
[add] https://crrev.com/b3b024b69a6e3eabeb6cf6edd945f6f4d4f74067/device/bluetooth/dbus/bluetooth_gatt_attribute_helpers.cc
[add] https://crrev.com/b3b024b69a6e3eabeb6cf6edd945f6f4d4f74067/device/bluetooth/dbus/bluetooth_gatt_attribute_helpers.h
[modify] https://crrev.com/b3b024b69a6e3eabeb6cf6edd945f6f4d4f74067/device/bluetooth/dbus/bluetooth_gatt_characteristic_service_provider_impl.cc
[modify] https://crrev.com/b3b024b69a6e3eabeb6cf6edd945f6f4d4f74067/device/bluetooth/dbus/bluetooth_gatt_descriptor_service_provider_impl.cc
[modify] https://crrev.com/b3b024b69a6e3eabeb6cf6edd945f6f4d4f74067/device/bluetooth/dbus/bluetooth_gatt_descriptor_service_provider_impl.h

Comment 4 by r...@chromium.org, May 18 2016

Status: Fixed (was: Started)
Status: Verified (was: Fixed)
bulk verify of io>bluetooth gatt server bugs

Sign in to add a comment