Index: content/browser/bluetooth/bluetooth_dispatcher_host.cc |
diff --git a/content/browser/bluetooth/bluetooth_dispatcher_host.cc b/content/browser/bluetooth/bluetooth_dispatcher_host.cc |
index c6427a684dc793e5a35155a8c5b42897c9f06d4e..9f6f69a55de4f3f3a39f08e55bf62a3988883ced 100644 |
--- a/content/browser/bluetooth/bluetooth_dispatcher_host.cc |
+++ b/content/browser/bluetooth/bluetooth_dispatcher_host.cc |
@@ -99,27 +99,38 @@ WebBluetoothError TranslateConnectError( |
} |
blink::WebBluetoothError TranslateGATTError( |
- BluetoothGattService::GattErrorCode error_code) { |
+ BluetoothGattService::GattErrorCode error_code, |
+ UMAGATTOperation operation) { |
switch (error_code) { |
case BluetoothGattService::GATT_ERROR_UNKNOWN: |
- RecordGATTError(UMAGATTError::UNKNOWN); |
+ RecordGATTOperationOutcome(operation, UMAGATTOperationOutcome::UNKNOWN); |
return blink::WebBluetoothError::GATTUnknownError; |
case BluetoothGattService::GATT_ERROR_FAILED: |
- RecordGATTError(UMAGATTError::FAILED); |
+ RecordGATTOperationOutcome(operation, UMAGATTOperationOutcome::FAILED); |
return blink::WebBluetoothError::GATTUnknownFailure; |
case BluetoothGattService::GATT_ERROR_IN_PROGRESS: |
- RecordGATTError(UMAGATTError::IN_PROGRESS); |
+ RecordGATTOperationOutcome(operation, |
+ UMAGATTOperationOutcome::IN_PROGRESS); |
return blink::WebBluetoothError::GATTOperationInProgress; |
case BluetoothGattService::GATT_ERROR_INVALID_LENGTH: |
+ RecordGATTOperationOutcome(operation, |
+ UMAGATTOperationOutcome::INVALID_LENGTH); |
return blink::WebBluetoothError::GATTInvalidAttributeLength; |
case BluetoothGattService::GATT_ERROR_NOT_PERMITTED: |
+ RecordGATTOperationOutcome(operation, |
+ UMAGATTOperationOutcome::NOT_PERMITTED); |
return blink::WebBluetoothError::GATTNotPermitted; |
case BluetoothGattService::GATT_ERROR_NOT_AUTHORIZED: |
+ RecordGATTOperationOutcome(operation, |
+ UMAGATTOperationOutcome::NOT_AUTHORIZED); |
return blink::WebBluetoothError::GATTNotAuthorized; |
case BluetoothGattService::GATT_ERROR_NOT_PAIRED: |
- RecordGATTError(UMAGATTError::NOT_PAIRED); |
+ RecordGATTOperationOutcome(operation, |
+ UMAGATTOperationOutcome::NOT_PAIRED); |
return blink::WebBluetoothError::GATTNotPaired; |
case BluetoothGattService::GATT_ERROR_NOT_SUPPORTED: |
+ RecordGATTOperationOutcome(operation, |
+ UMAGATTOperationOutcome::NOT_SUPPORTED); |
return blink::WebBluetoothError::GATTNotSupported; |
} |
NOTREACHED(); |
@@ -449,6 +460,7 @@ void BluetoothDispatcherHost::OnReadValue( |
device::BluetoothDevice* device = |
adapter_->GetDevice(device_iter->second /* device_instance_id */); |
if (device == nullptr) { // See "NETWORK_ERROR Note" above. |
+ RecordCharacteristicReadValueOutcome(UMAGATTOperationOutcome::NO_DEVICE); |
Send(new BluetoothMsg_ReadCharacteristicValueError( |
thread_id, request_id, WebBluetoothError::DeviceNoLongerInRange)); |
return; |
@@ -456,6 +468,7 @@ void BluetoothDispatcherHost::OnReadValue( |
BluetoothGattService* service = device->GetGattService(service_instance_id); |
if (service == nullptr) { |
+ RecordCharacteristicReadValueOutcome(UMAGATTOperationOutcome::NO_SERVICE); |
Send(new BluetoothMsg_ReadCharacteristicValueError( |
thread_id, request_id, WebBluetoothError::ServiceNoLongerExists)); |
return; |
@@ -464,6 +477,8 @@ void BluetoothDispatcherHost::OnReadValue( |
BluetoothGattCharacteristic* characteristic = |
service->GetCharacteristic(characteristic_instance_id); |
if (characteristic == nullptr) { |
+ RecordCharacteristicReadValueOutcome( |
+ UMAGATTOperationOutcome::NO_CHARACTERISTIC); |
Send(new BluetoothMsg_ReadCharacteristicValueError( |
thread_id, request_id, |
WebBluetoothError::CharacteristicNoLongerExists)); |
@@ -516,6 +531,7 @@ void BluetoothDispatcherHost::OnWriteValue( |
device::BluetoothDevice* device = |
adapter_->GetDevice(device_iter->second /* device_instance_id */); |
if (device == nullptr) { // See "NETWORK_ERROR Note" above. |
+ RecordCharacteristicWriteValueOutcome(UMAGATTOperationOutcome::NO_DEVICE); |
Send(new BluetoothMsg_WriteCharacteristicValueError( |
thread_id, request_id, WebBluetoothError::DeviceNoLongerInRange)); |
return; |
@@ -523,6 +539,7 @@ void BluetoothDispatcherHost::OnWriteValue( |
BluetoothGattService* service = device->GetGattService(service_instance_id); |
if (service == nullptr) { |
+ RecordCharacteristicWriteValueOutcome(UMAGATTOperationOutcome::NO_SERVICE); |
Send(new BluetoothMsg_WriteCharacteristicValueError( |
thread_id, request_id, WebBluetoothError::ServiceNoLongerExists)); |
return; |
@@ -531,6 +548,8 @@ void BluetoothDispatcherHost::OnWriteValue( |
BluetoothGattCharacteristic* characteristic = |
service->GetCharacteristic(characteristic_instance_id); |
if (characteristic == nullptr) { |
+ RecordCharacteristicWriteValueOutcome( |
+ UMAGATTOperationOutcome::NO_CHARACTERISTIC); |
Send(new BluetoothMsg_WriteCharacteristicValueError( |
thread_id, request_id, |
WebBluetoothError::CharacteristicNoLongerExists)); |
@@ -696,6 +715,7 @@ void BluetoothDispatcherHost::OnCharacteristicValueRead( |
int thread_id, |
int request_id, |
const std::vector<uint8>& value) { |
+ RecordCharacteristicReadValueOutcome(UMAGATTOperationOutcome::SUCCESS); |
Send(new BluetoothMsg_ReadCharacteristicValueSuccess(thread_id, request_id, |
value)); |
} |
@@ -704,12 +724,17 @@ void BluetoothDispatcherHost::OnCharacteristicReadValueError( |
int thread_id, |
int request_id, |
device::BluetoothGattService::GattErrorCode error_code) { |
+ // TranslateGATTError calls RecordGATTOperationOutcome with |
Jeffrey Yasskin
2015/08/14 21:33:22
This comment could be shorter: "TranslateGATTError
ortuno
2015/08/14 21:42:20
Done.
|
+ // UMAGATTOperation::CHARACTERISTIC_READ as a parameter. |
+ // This should take care of recording the outcome for this readValue call. |
Send(new BluetoothMsg_ReadCharacteristicValueError( |
- thread_id, request_id, TranslateGATTError(error_code))); |
+ thread_id, request_id, |
+ TranslateGATTError(error_code, UMAGATTOperation::CHARACTERISTIC_READ))); |
} |
void BluetoothDispatcherHost::OnWriteValueSuccess(int thread_id, |
int request_id) { |
+ RecordCharacteristicWriteValueOutcome(UMAGATTOperationOutcome::SUCCESS); |
Send(new BluetoothMsg_WriteCharacteristicValueSuccess(thread_id, request_id)); |
} |
@@ -717,8 +742,12 @@ void BluetoothDispatcherHost::OnWriteValueFailed( |
int thread_id, |
int request_id, |
device::BluetoothGattService::GattErrorCode error_code) { |
+ // TranslateGATTError calls RecordGATTOperationOutcome with |
+ // UMAGATTOperation::CHARACTERISTIC_WRITE as a parameter. |
+ // This should take care of recording the outcome for this writeValue call. |
Send(new BluetoothMsg_WriteCharacteristicValueError( |
- thread_id, request_id, TranslateGATTError(error_code))); |
+ thread_id, request_id, |
+ TranslateGATTError(error_code, UMAGATTOperation::CHARACTERISTIC_WRITE))); |
} |
} // namespace content |