| 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 |