| OLD | NEW |
| 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 "content/browser/bluetooth/bluetooth_metrics.h" | 5 #include "content/browser/bluetooth/bluetooth_metrics.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 return; | 236 return; |
| 237 case CacheQueryOutcome::NO_DEVICE: | 237 case CacheQueryOutcome::NO_DEVICE: |
| 238 RecordGetCharacteristicsOutcome(quantity, | 238 RecordGetCharacteristicsOutcome(quantity, |
| 239 UMAGetCharacteristicOutcome::NO_DEVICE); | 239 UMAGetCharacteristicOutcome::NO_DEVICE); |
| 240 return; | 240 return; |
| 241 case CacheQueryOutcome::NO_SERVICE: | 241 case CacheQueryOutcome::NO_SERVICE: |
| 242 RecordGetCharacteristicsOutcome(quantity, | 242 RecordGetCharacteristicsOutcome(quantity, |
| 243 UMAGetCharacteristicOutcome::NO_SERVICE); | 243 UMAGetCharacteristicOutcome::NO_SERVICE); |
| 244 return; | 244 return; |
| 245 case CacheQueryOutcome::NO_CHARACTERISTIC: | 245 case CacheQueryOutcome::NO_CHARACTERISTIC: |
| 246 case CacheQueryOutcome::NO_DESCRIPTOR: |
| 246 NOTREACHED(); | 247 NOTREACHED(); |
| 247 return; | 248 return; |
| 248 } | 249 } |
| 249 } | 250 } |
| 250 | 251 |
| 251 void RecordGetCharacteristicsCharacteristic( | 252 void RecordGetCharacteristicsCharacteristic( |
| 252 blink::mojom::WebBluetoothGATTQueryQuantity quantity, | 253 blink::mojom::WebBluetoothGATTQueryQuantity quantity, |
| 253 const base::Optional<BluetoothUUID>& characteristic) { | 254 const base::Optional<BluetoothUUID>& characteristic) { |
| 254 switch (quantity) { | 255 switch (quantity) { |
| 255 case blink::mojom::WebBluetoothGATTQueryQuantity::SINGLE: | 256 case blink::mojom::WebBluetoothGATTQueryQuantity::SINGLE: |
| (...skipping 16 matching lines...) Expand all Loading... |
| 272 switch (operation) { | 273 switch (operation) { |
| 273 case UMAGATTOperation::CHARACTERISTIC_READ: | 274 case UMAGATTOperation::CHARACTERISTIC_READ: |
| 274 RecordCharacteristicReadValueOutcome(outcome); | 275 RecordCharacteristicReadValueOutcome(outcome); |
| 275 return; | 276 return; |
| 276 case UMAGATTOperation::CHARACTERISTIC_WRITE: | 277 case UMAGATTOperation::CHARACTERISTIC_WRITE: |
| 277 RecordCharacteristicWriteValueOutcome(outcome); | 278 RecordCharacteristicWriteValueOutcome(outcome); |
| 278 return; | 279 return; |
| 279 case UMAGATTOperation::START_NOTIFICATIONS: | 280 case UMAGATTOperation::START_NOTIFICATIONS: |
| 280 RecordStartNotificationsOutcome(outcome); | 281 RecordStartNotificationsOutcome(outcome); |
| 281 return; | 282 return; |
| 283 case UMAGATTOperation::DESCRIPTOR_READ: |
| 284 // TODO(667319) Add reporting to descriptors |
| 285 return; |
| 282 case UMAGATTOperation::COUNT: | 286 case UMAGATTOperation::COUNT: |
| 283 NOTREACHED(); | 287 NOTREACHED(); |
| 284 return; | 288 return; |
| 285 } | 289 } |
| 286 NOTREACHED(); | 290 NOTREACHED(); |
| 287 } | 291 } |
| 288 | 292 |
| 289 static UMAGATTOperationOutcome TranslateCacheQueryOutcomeToGATTOperationOutcome( | 293 static UMAGATTOperationOutcome TranslateCacheQueryOutcomeToGATTOperationOutcome( |
| 290 CacheQueryOutcome outcome) { | 294 CacheQueryOutcome outcome) { |
| 291 switch (outcome) { | 295 switch (outcome) { |
| 292 case CacheQueryOutcome::SUCCESS: | 296 case CacheQueryOutcome::SUCCESS: |
| 293 case CacheQueryOutcome::BAD_RENDERER: | 297 case CacheQueryOutcome::BAD_RENDERER: |
| 294 // No need to record a success or renderer crash. | 298 // No need to record a success or renderer crash. |
| 295 NOTREACHED(); | 299 NOTREACHED(); |
| 296 return UMAGATTOperationOutcome::NOT_SUPPORTED; | 300 return UMAGATTOperationOutcome::NOT_SUPPORTED; |
| 297 case CacheQueryOutcome::NO_DEVICE: | 301 case CacheQueryOutcome::NO_DEVICE: |
| 298 return UMAGATTOperationOutcome::NO_DEVICE; | 302 return UMAGATTOperationOutcome::NO_DEVICE; |
| 299 case CacheQueryOutcome::NO_SERVICE: | 303 case CacheQueryOutcome::NO_SERVICE: |
| 300 return UMAGATTOperationOutcome::NO_SERVICE; | 304 return UMAGATTOperationOutcome::NO_SERVICE; |
| 301 case CacheQueryOutcome::NO_CHARACTERISTIC: | 305 case CacheQueryOutcome::NO_CHARACTERISTIC: |
| 302 return UMAGATTOperationOutcome::NO_CHARACTERISTIC; | 306 return UMAGATTOperationOutcome::NO_CHARACTERISTIC; |
| 307 case CacheQueryOutcome::NO_DESCRIPTOR: |
| 308 return UMAGATTOperationOutcome::NO_DESCRIPTOR; |
| 303 } | 309 } |
| 304 NOTREACHED() << "No need to record success or renderer crash"; | 310 NOTREACHED() << "No need to record success or renderer crash"; |
| 305 return UMAGATTOperationOutcome::NOT_SUPPORTED; | 311 return UMAGATTOperationOutcome::NOT_SUPPORTED; |
| 306 } | 312 } |
| 307 | 313 |
| 308 // Characteristic.readValue | 314 // Characteristic.readValue |
| 309 | 315 |
| 310 // static | 316 // static |
| 311 void RecordCharacteristicReadValueOutcome(UMAGATTOperationOutcome outcome) { | 317 void RecordCharacteristicReadValueOutcome(UMAGATTOperationOutcome outcome) { |
| 312 UMA_HISTOGRAM_ENUMERATION("Bluetooth.Web.Characteristic.ReadValue.Outcome", | 318 UMA_HISTOGRAM_ENUMERATION("Bluetooth.Web.Characteristic.ReadValue.Outcome", |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 void RecordNumOfDevices(bool accept_all_devices, size_t num_of_devices) { | 366 void RecordNumOfDevices(bool accept_all_devices, size_t num_of_devices) { |
| 361 if (!accept_all_devices) { | 367 if (!accept_all_devices) { |
| 362 UMA_HISTOGRAM_SPARSE_SLOWLY( | 368 UMA_HISTOGRAM_SPARSE_SLOWLY( |
| 363 "Bluetooth.Web.RequestDevice." | 369 "Bluetooth.Web.RequestDevice." |
| 364 "NumOfDevicesInChooserWhenNotAcceptingAllDevices", | 370 "NumOfDevicesInChooserWhenNotAcceptingAllDevices", |
| 365 std::min(num_of_devices, kMaxNumOfDevices)); | 371 std::min(num_of_devices, kMaxNumOfDevices)); |
| 366 } | 372 } |
| 367 } | 373 } |
| 368 | 374 |
| 369 } // namespace content | 375 } // namespace content |
| OLD | NEW |