shill: Adds UMA metrics for scan termination reason.

BUG=chromium:245814
TEST=unittest and manual.  For manual tests, do the following:

  * reboot the machine (to force a scan)
  * navigate to chrome//histograms
  * verify that there's an entry for Network.Shill.WiFi.ScanResult

Change-Id: I36613ad1eb6682dfca880d94b11ec4eeacb442bc
Reviewed-on: https://gerrit.chromium.org/gerrit/57275
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
diff --git a/metrics.h b/metrics.h
index d95101a..979cdb5 100644
--- a/metrics.h
+++ b/metrics.h
@@ -166,6 +166,18 @@
     kDisconnectedNotByAp
   };
 
+  enum WiFiScanResult {
+    kScanResultProgressiveConnected,
+    kScanResultProgressiveErrorAndFullFoundNothing,
+    kScanResultProgressiveErrorButFullConnected,
+    kScanResultProgressiveAndFullFoundNothing,
+    kScanResultProgressiveAndFullConnected,
+    kScanResultFullScanFoundNothing,
+    kScanResultFullScanConnected,
+    kScanResultInternalError,
+    kScanResultMax
+  };
+
   enum ServiceFixupProfileType {
     kMetricServiceFixupDefaultProfile,
     kMetricServiceFixupUserProfile,
@@ -316,6 +328,7 @@
   static const int kMetricFrequenciesConnectedMin;
   static const int kMetricFrequenciesConnectedNumBuckets;
 
+  static const char kMetricScanResult[];
   static const char kMetricWiFiScanTimeInEbusyMilliseconds[];
 
   static const char kMetricPowerManagerKey[];