Chromium Code Reviews| 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 #ifndef CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_METRICS_H_ | 5 #ifndef CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_METRICS_H_ |
| 6 #define CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_METRICS_H_ | 6 #define CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_METRICS_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 33 CHARACTERISTIC_STOP_NOTIFICATIONS = 7, | 33 CHARACTERISTIC_STOP_NOTIFICATIONS = 7, |
| 34 // NOTE: Add new actions immediately above this line. Make sure to update | 34 // NOTE: Add new actions immediately above this line. Make sure to update |
| 35 // the enum list in tools/metrics/histograms/histograms.xml accordingly. | 35 // the enum list in tools/metrics/histograms/histograms.xml accordingly. |
| 36 COUNT | 36 COUNT |
| 37 }; | 37 }; |
| 38 | 38 |
| 39 // There should be a call to this function for every call to the Web Bluetooth | 39 // There should be a call to this function for every call to the Web Bluetooth |
| 40 // API. | 40 // API. |
| 41 void RecordWebBluetoothFunctionCall(UMAWebBluetoothFunction function); | 41 void RecordWebBluetoothFunctionCall(UMAWebBluetoothFunction function); |
| 42 | 42 |
| 43 // Enumation for outcomes of querying the bluetooth cache. | |
| 44 enum class CacheQueryOutcome { | |
| 45 SUCCESS = 0, | |
|
scheib
2015/10/20 17:55:33
FYI it's fine to make these explicit, but it's a b
ortuno
2015/10/20 17:59:11
Ack.
| |
| 46 BAD_RENDERER = 1, | |
| 47 NO_DEVICE = 2, | |
| 48 NO_SERVICE = 3, | |
| 49 NO_CHARACTERISTIC = 4, | |
| 50 }; | |
| 51 | |
| 43 // requestDevice() Metrics | 52 // requestDevice() Metrics |
| 44 enum class UMARequestDeviceOutcome { | 53 enum class UMARequestDeviceOutcome { |
| 45 SUCCESS = 0, | 54 SUCCESS = 0, |
| 46 NO_BLUETOOTH_ADAPTER = 1, | 55 NO_BLUETOOTH_ADAPTER = 1, |
| 47 NO_RENDER_FRAME = 2, | 56 NO_RENDER_FRAME = 2, |
| 48 OBSOLETE_DISCOVERY_START_FAILED = 3, | 57 OBSOLETE_DISCOVERY_START_FAILED = 3, |
| 49 OBSOLETE_DISCOVERY_STOP_FAILED = 4, | 58 OBSOLETE_DISCOVERY_STOP_FAILED = 4, |
| 50 OBSOLETE_NO_MATCHING_DEVICES_FOUND = 5, | 59 OBSOLETE_NO_MATCHING_DEVICES_FOUND = 5, |
| 51 BLUETOOTH_ADAPTER_NOT_PRESENT = 6, | 60 BLUETOOTH_ADAPTER_NOT_PRESENT = 6, |
| 52 OBSOLETE_BLUETOOTH_ADAPTER_OFF = 7, | 61 OBSOLETE_BLUETOOTH_ADAPTER_OFF = 7, |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 87 UNSUPPORTED_DEVICE = 9, | 96 UNSUPPORTED_DEVICE = 9, |
| 88 // Note: Add new ConnectGATT outcomes immediately above this line. Make sure | 97 // Note: Add new ConnectGATT outcomes immediately above this line. Make sure |
| 89 // to update the enum list in tools/metrics/histograms/histograms.xml | 98 // to update the enum list in tools/metrics/histograms/histograms.xml |
| 90 // accordingly. | 99 // accordingly. |
| 91 COUNT | 100 COUNT |
| 92 }; | 101 }; |
| 93 // There should be a call to this function before every | 102 // There should be a call to this function before every |
| 94 // Send(BluetoothMsg_ConnectGATTSuccess) and | 103 // Send(BluetoothMsg_ConnectGATTSuccess) and |
| 95 // Send(BluetoothMsg_ConnectGATTError). | 104 // Send(BluetoothMsg_ConnectGATTError). |
| 96 void RecordConnectGATTOutcome(UMAConnectGATTOutcome outcome); | 105 void RecordConnectGATTOutcome(UMAConnectGATTOutcome outcome); |
| 106 // Records the outcome of the cache query for connectGATT. Should only be called | |
| 107 // if QueryCacheForDevice fails. | |
| 108 void RecordConnectGATTOutcome(CacheQueryOutcome outcome); | |
| 97 // Records how long it took for the connection to succeed. | 109 // Records how long it took for the connection to succeed. |
| 98 void RecordConnectGATTTimeSuccess(const base::TimeDelta& duration); | 110 void RecordConnectGATTTimeSuccess(const base::TimeDelta& duration); |
| 99 // Records how long it took for the connection to fail. | 111 // Records how long it took for the connection to fail. |
| 100 void RecordConnectGATTTimeFailed(const base::TimeDelta& duration); | 112 void RecordConnectGATTTimeFailed(const base::TimeDelta& duration); |
| 101 | 113 |
| 102 // getPrimaryService() Metrics | 114 // getPrimaryService() Metrics |
| 103 enum class UMAGetPrimaryServiceOutcome { | 115 enum class UMAGetPrimaryServiceOutcome { |
| 104 SUCCESS = 0, | 116 SUCCESS = 0, |
| 105 NO_DEVICE = 1, | 117 NO_DEVICE = 1, |
| 106 NOT_FOUND = 2, | 118 NOT_FOUND = 2, |
| 107 // Note: Add new GetPrimaryService outcomes immediately above this line. | 119 // Note: Add new GetPrimaryService outcomes immediately above this line. |
| 108 // Make sure to update the enum list in | 120 // Make sure to update the enum list in |
| 109 // tools/metrics/histograms/histograms.xml accordingly. | 121 // tools/metrics/histograms/histograms.xml accordingly. |
| 110 COUNT | 122 COUNT |
| 111 }; | 123 }; |
| 112 // Record the service uuid used when calling getPrimaryService. | 124 // Record the service uuid used when calling getPrimaryService. |
| 113 void RecordGetPrimaryServiceService(const device::BluetoothUUID& service); | 125 void RecordGetPrimaryServiceService(const device::BluetoothUUID& service); |
| 114 // There should be a call to this function for every call to | 126 // There should be a call to this function for every call to |
| 115 // Send(BluetoothMsg_GetPrimaryServiceSuccess) and | 127 // Send(BluetoothMsg_GetPrimaryServiceSuccess) and |
| 116 // Send(BluetoothMsg_GetPrimaryServiceError). | 128 // Send(BluetoothMsg_GetPrimaryServiceError). |
| 117 void RecordGetPrimaryServiceOutcome(UMAGetPrimaryServiceOutcome outcome); | 129 void RecordGetPrimaryServiceOutcome(UMAGetPrimaryServiceOutcome outcome); |
| 130 // Records the outcome of the cache query for getPrimaryService. Should only be | |
| 131 // called if QueryCacheForDevice fails. | |
| 132 void RecordGetPrimaryServiceOutcome(CacheQueryOutcome outcome); | |
| 118 | 133 |
| 119 // getCharacteristic() Metrics | 134 // getCharacteristic() Metrics |
| 120 enum class UMAGetCharacteristicOutcome { | 135 enum class UMAGetCharacteristicOutcome { |
| 121 SUCCESS = 0, | 136 SUCCESS = 0, |
| 122 NO_DEVICE = 1, | 137 NO_DEVICE = 1, |
| 123 NO_SERVICE = 2, | 138 NO_SERVICE = 2, |
| 124 NOT_FOUND = 3, | 139 NOT_FOUND = 3, |
| 125 // Note: Add new outcomes immediately above this line. | 140 // Note: Add new outcomes immediately above this line. |
| 126 // Make sure to update the enum list in | 141 // Make sure to update the enum list in |
| 127 // tools/metrisc/histogram/histograms.xml accordingly. | 142 // tools/metrisc/histogram/histograms.xml accordingly. |
| 128 COUNT | 143 COUNT |
| 129 }; | 144 }; |
| 130 // There should be a call to this function for every call to | 145 // There should be a call to this function for every call to |
| 131 // Send(BluetoothMsg_GetCharacteristicSuccess) and | 146 // Send(BluetoothMsg_GetCharacteristicSuccess) and |
| 132 // Send(BluetoothMsg_GetCharacteristicError). | 147 // Send(BluetoothMsg_GetCharacteristicError). |
| 133 void RecordGetCharacteristicOutcome(UMAGetCharacteristicOutcome outcome); | 148 void RecordGetCharacteristicOutcome(UMAGetCharacteristicOutcome outcome); |
| 149 // Records the outcome of the cache query for getCharacteristic. Should only be | |
| 150 // called if QueryCacheForService fails. | |
| 151 void RecordGetCharacteristicOutcome(CacheQueryOutcome outcome); | |
| 134 // Records the UUID of the characteristic used when calling getCharacteristic. | 152 // Records the UUID of the characteristic used when calling getCharacteristic. |
| 135 void RecordGetCharacteristicCharacteristic(const std::string& characteristic); | 153 void RecordGetCharacteristicCharacteristic(const std::string& characteristic); |
| 136 | 154 |
| 137 // GATT Operations Metrics | 155 // GATT Operations Metrics |
| 138 | 156 |
| 139 // These are the possible outcomes when performing GATT operations i.e. | 157 // These are the possible outcomes when performing GATT operations i.e. |
| 140 // characteristic.readValue/writeValue descriptor.readValue/writeValue. | 158 // characteristic.readValue/writeValue descriptor.readValue/writeValue. |
| 141 enum UMAGATTOperationOutcome { | 159 enum UMAGATTOperationOutcome { |
| 142 SUCCESS = 0, | 160 SUCCESS = 0, |
| 143 NO_DEVICE = 1, | 161 NO_DEVICE = 1, |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 170 // There should be a call to this function whenever the corresponding operation | 188 // There should be a call to this function whenever the corresponding operation |
| 171 // doesn't have a call to Record[Operation]Outcome. | 189 // doesn't have a call to Record[Operation]Outcome. |
| 172 void RecordGATTOperationOutcome(UMAGATTOperation operation, | 190 void RecordGATTOperationOutcome(UMAGATTOperation operation, |
| 173 UMAGATTOperationOutcome outcome); | 191 UMAGATTOperationOutcome outcome); |
| 174 | 192 |
| 175 // Characteristic.readValue() Metrics | 193 // Characteristic.readValue() Metrics |
| 176 // There should be a call to this function for every call to | 194 // There should be a call to this function for every call to |
| 177 // Send(BluetoothMsg_ReadCharacteristicValueSuccess) and | 195 // Send(BluetoothMsg_ReadCharacteristicValueSuccess) and |
| 178 // Send(BluetoothMsg_ReadCharacteristicValueError). | 196 // Send(BluetoothMsg_ReadCharacteristicValueError). |
| 179 void RecordCharacteristicReadValueOutcome(UMAGATTOperationOutcome error); | 197 void RecordCharacteristicReadValueOutcome(UMAGATTOperationOutcome error); |
| 198 // Records the outcome of a cache query for readValue. Should only be called if | |
| 199 // QueryCacheForCharacteristic fails. | |
| 200 void RecordCharacteristicReadValueOutcome(CacheQueryOutcome outcome); | |
| 180 | 201 |
| 181 // Characteristic.writeValue() Metrics | 202 // Characteristic.writeValue() Metrics |
| 182 // There should be a call to this function for every call to | 203 // There should be a call to this function for every call to |
| 183 // Send(BluetoothMsg_WriteCharacteristicValueSuccess) and | 204 // Send(BluetoothMsg_WriteCharacteristicValueSuccess) and |
| 184 // Send(BluetoothMsg_WriteCharacteristicValueError). | 205 // Send(BluetoothMsg_WriteCharacteristicValueError). |
| 185 void RecordCharacteristicWriteValueOutcome(UMAGATTOperationOutcome error); | 206 void RecordCharacteristicWriteValueOutcome(UMAGATTOperationOutcome error); |
| 207 // Records the outcome of a cache query for writeValue. Should only be called if | |
| 208 // QueryCacheForCharacteristic fails. | |
| 209 void RecordCharacteristicWriteValueOutcome(CacheQueryOutcome outcome); | |
| 186 | 210 |
| 187 // Characteristic.startNotifications() Metrics | 211 // Characteristic.startNotifications() Metrics |
| 188 // There should be a call to this function for every call to | 212 // There should be a call to this function for every call to |
| 189 // Send(BluetoothMsg_StartNotificationsSuccess) and | 213 // Send(BluetoothMsg_StartNotificationsSuccess) and |
| 190 // Send(BluetoothMsg_StopNotificationsError). | 214 // Send(BluetoothMsg_StopNotificationsError). |
| 191 void RecordStartNotificationsOutcome(UMAGATTOperationOutcome outcome); | 215 void RecordStartNotificationsOutcome(UMAGATTOperationOutcome outcome); |
| 216 // Records the outcome of a cache query for startNotifications. Should only be | |
| 217 // called if QueryCacheForCharacteristic fails. | |
| 218 void RecordStartNotificationsOutcome(CacheQueryOutcome outcome); | |
| 192 | 219 |
| 193 } // namespace content | 220 } // namespace content |
| 194 | 221 |
| 195 #endif // CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_METRICS_H_ | 222 #endif // CONTENT_BROWSER_BLUETOOTH_BLUETOOTH_METRICS_H_ |
| OLD | NEW |