Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(614)

Side by Side Diff: device/bluetooth/test/bluetooth_test_android.cc

Issue 1583333003: bluetooth: Invalidate connection objects if a connection fails and add histograms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@my-origin
Patch Set: Address scheib's comments Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "device/bluetooth/test/bluetooth_test_android.h" 5 #include "device/bluetooth/test/bluetooth_test_android.h"
6 6
7 #include <iterator> 7 #include <iterator>
8 #include <sstream> 8 #include <sstream>
9 9
10 #include "base/android/jni_array.h" 10 #include "base/android/jni_array.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 static_cast<BluetoothDeviceAndroid*>(device); 77 static_cast<BluetoothDeviceAndroid*>(device);
78 78
79 Java_FakeBluetoothDevice_connectionStateChange( 79 Java_FakeBluetoothDevice_connectionStateChange(
80 AttachCurrentThread(), device_android->GetJavaObject().obj(), 80 AttachCurrentThread(), device_android->GetJavaObject().obj(),
81 0, // android.bluetooth.BluetoothGatt.GATT_SUCCESS 81 0, // android.bluetooth.BluetoothGatt.GATT_SUCCESS
82 true); // connected 82 true); // connected
83 } 83 }
84 84
85 void BluetoothTestAndroid::SimulateGattConnectionError( 85 void BluetoothTestAndroid::SimulateGattConnectionError(
86 BluetoothDevice* device, 86 BluetoothDevice* device,
87 BluetoothDevice::ConnectErrorCode error) { 87 BluetoothDevice::ConnectErrorCode) {
88 int android_error_value = 0;
89 switch (error) { // Constants are from android.bluetooth.BluetoothGatt.
90 case BluetoothDevice::ERROR_ATTRIBUTE_LENGTH_INVALID:
91 android_error_value = 0x0000000d; // GATT_INVALID_ATTRIBUTE_LENGTH
92 break;
93 case BluetoothDevice::ERROR_AUTH_FAILED:
94 android_error_value = 0x00000005; // GATT_INSUFFICIENT_AUTHENTICATION
95 break;
96 case BluetoothDevice::ERROR_CONNECTION_CONGESTED:
97 android_error_value = 0x0000008f; // GATT_CONNECTION_CONGESTED
98 break;
99 case BluetoothDevice::ERROR_FAILED:
100 android_error_value = 0x00000101; // GATT_FAILURE
101 break;
102 case BluetoothDevice::ERROR_INSUFFICIENT_ENCRYPTION:
103 android_error_value = 0x0000000f; // GATT_INSUFFICIENT_ENCRYPTION
104 break;
105 case BluetoothDevice::ERROR_OFFSET_INVALID:
106 android_error_value = 0x00000007; // GATT_INVALID_OFFSET
107 break;
108 case BluetoothDevice::ERROR_READ_NOT_PERMITTED:
109 android_error_value = 0x00000002; // GATT_READ_NOT_PERMITTED
110 break;
111 case BluetoothDevice::ERROR_REQUEST_NOT_SUPPORTED:
112 android_error_value = 0x00000006; // GATT_REQUEST_NOT_SUPPORTED
113 break;
114 case BluetoothDevice::ERROR_WRITE_NOT_PERMITTED:
115 android_error_value = 0x00000003; // GATT_WRITE_NOT_PERMITTED
116 break;
117 case BluetoothDevice::ERROR_AUTH_CANCELED:
118 case BluetoothDevice::ERROR_AUTH_REJECTED:
119 case BluetoothDevice::ERROR_AUTH_TIMEOUT:
120 case BluetoothDevice::ERROR_INPROGRESS:
121 case BluetoothDevice::ERROR_UNKNOWN:
122 case BluetoothDevice::ERROR_UNSUPPORTED_DEVICE:
123 case BluetoothDevice::NUM_CONNECT_ERROR_CODES:
124 NOTREACHED() << "No translation for error code: " << error;
125 }
126
127 BluetoothDeviceAndroid* device_android = 88 BluetoothDeviceAndroid* device_android =
128 static_cast<BluetoothDeviceAndroid*>(device); 89 static_cast<BluetoothDeviceAndroid*>(device);
129 90
130 Java_FakeBluetoothDevice_connectionStateChange( 91 Java_FakeBluetoothDevice_connectionStateChange(
131 AttachCurrentThread(), device_android->GetJavaObject().obj(), 92 AttachCurrentThread(), device_android->GetJavaObject().obj(),
132 android_error_value, 93 // TODO(ortuno): Add all types of errors Android can produce. For now we
94 // just return a timeout error.
95 // http://crbug.com/578191
96 0x08, // Connection Timeout from Bluetooth Spec.
133 false); // connected 97 false); // connected
134 } 98 }
135 99
136 void BluetoothTestAndroid::SimulateGattDisconnection(BluetoothDevice* device) { 100 void BluetoothTestAndroid::SimulateGattDisconnection(BluetoothDevice* device) {
137 BluetoothDeviceAndroid* device_android = 101 BluetoothDeviceAndroid* device_android =
138 static_cast<BluetoothDeviceAndroid*>(device); 102 static_cast<BluetoothDeviceAndroid*>(device);
139 103
140 Java_FakeBluetoothDevice_connectionStateChange( 104 Java_FakeBluetoothDevice_connectionStateChange(
141 AttachCurrentThread(), device_android->GetJavaObject().obj(), 105 AttachCurrentThread(), device_android->GetJavaObject().obj(),
142 0, // android.bluetooth.BluetoothGatt.GATT_SUCCESS 106 0x13, // Connection terminate by peer user from Bluetooth Spec.
143 false); // disconnected 107 false); // disconnected
144 } 108 }
145 109
146 void BluetoothTestAndroid::SimulateGattServicesDiscovered( 110 void BluetoothTestAndroid::SimulateGattServicesDiscovered(
147 BluetoothDevice* device, 111 BluetoothDevice* device,
148 const std::vector<std::string>& uuids) { 112 const std::vector<std::string>& uuids) {
149 BluetoothDeviceAndroid* device_android = 113 BluetoothDeviceAndroid* device_android =
150 static_cast<BluetoothDeviceAndroid*>(device); 114 static_cast<BluetoothDeviceAndroid*>(device);
151 JNIEnv* env = base::android::AttachCurrentThread(); 115 JNIEnv* env = base::android::AttachCurrentThread();
152 116
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 326
363 void BluetoothTestAndroid::OnFakeBluetoothGattWriteDescriptor( 327 void BluetoothTestAndroid::OnFakeBluetoothGattWriteDescriptor(
364 JNIEnv* env, 328 JNIEnv* env,
365 const JavaParamRef<jobject>& caller, 329 const JavaParamRef<jobject>& caller,
366 const JavaParamRef<jbyteArray>& value) { 330 const JavaParamRef<jbyteArray>& value) {
367 gatt_write_descriptor_attempts_++; 331 gatt_write_descriptor_attempts_++;
368 base::android::JavaByteArrayToByteVector(env, value, &last_write_value_); 332 base::android::JavaByteArrayToByteVector(env, value, &last_write_value_);
369 } 333 }
370 334
371 } // namespace device 335 } // namespace device
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698