Chromium Code Reviews| Index: content/browser/bluetooth/bluetooth_device_chooser_controller.cc |
| diff --git a/content/browser/bluetooth/bluetooth_device_chooser_controller.cc b/content/browser/bluetooth/bluetooth_device_chooser_controller.cc |
| index d524f19a864af9ab0535804a44eb4ad78e27bf78..6833e604b15d42e1aaf64c6dd6bfcc21ae0f9802 100644 |
| --- a/content/browser/bluetooth/bluetooth_device_chooser_controller.cc |
| +++ b/content/browser/bluetooth/bluetooth_device_chooser_controller.cc |
| @@ -198,7 +198,9 @@ UMARequestDeviceOutcome OutcomeFromChooserEvent(BluetoothChooser::Event event) { |
| BluetoothDeviceChooserController::BluetoothDeviceChooserController( |
| WebBluetoothServiceImpl* web_bluetooth_service, |
| RenderFrameHost* render_frame_host, |
| - device::BluetoothAdapter* adapter) |
| + device::BluetoothAdapter* adapter, |
| + BluetoothAllowedDevicesMap* bluetooth_allowed_devices_map, |
| + const url::Origin& origin) |
| : adapter_(adapter), |
| web_bluetooth_service_(web_bluetooth_service), |
| render_frame_host_(render_frame_host), |
| @@ -214,6 +216,8 @@ BluetoothDeviceChooserController::BluetoothDeviceChooserController( |
| // destructor starts. |
| base::Unretained(this)), |
| /*is_repeating=*/false), |
| + bluetooth_allowed_devices_map_(bluetooth_allowed_devices_map), |
| + origin_(origin), |
| weak_ptr_factory_(this) { |
| CHECK(adapter_); |
| } |
| @@ -350,11 +354,26 @@ void BluetoothDeviceChooserController::AddFilteredDevice( |
| const device::BluetoothDevice& device) { |
| if (chooser_.get() && MatchesFilters(device, options_->filters)) { |
| base::Optional<int8_t> rssi = device.GetInquiryRSSI(); |
| + bool is_paired = false; |
| + const WebBluetoothDeviceId* device_id_ptr = |
| + bluetooth_allowed_devices_map_->GetDeviceId(origin_, |
| + device.GetAddress()); |
| + if (device_id_ptr) { |
|
ortuno
2016/09/12 03:45:22
As long as the user has paired with the device in
juncai
2016/09/12 20:37:12
Done.
|
| + device::BluetoothDevice::UUIDSet uuids = device.GetUUIDs(); |
| + for (const auto& uuid : uuids) { |
| + if (bluetooth_allowed_devices_map_->IsOriginAllowedToAccessService( |
| + origin_, *device_id_ptr, uuid)) { |
| + is_paired = true; |
| + break; |
| + } |
| + } |
| + } |
| + |
| chooser_->AddOrUpdateDevice( |
| device.GetAddress(), !!device.GetName() /* should_update_name */, |
| device.GetNameForDisplay(), |
| - // TODO(http://crbug.com/543466): Show connection and paired status. |
| - false /* is_gatt_connected */, false /* is_paired */, |
| + device.IsGattConnected() /* is_gatt_connected */, |
|
ortuno
2016/09/12 03:45:22
I don't think you need the comments anymore. It's
juncai
2016/09/12 20:37:12
Done.
|
| + is_paired /* is_paired */, |
| rssi ? CalculateSignalStrengthLevel(rssi.value()) : -1); |
| } |
| } |