UMA metric reporting for WIFI TX bitrate.

Added UMA metric for WIFI TX bitrate, which is reported every
minute when wifi is connected.

BUG=chromium:368761
TEST=unit tests, manual
Manual Test:
1. Connect a chrome device to a wireless AP
2. Browse to "chrome://histograms", and verify there is a histogram
   for "Network.Shill.WiFi.TXBitrate"

Conflicts:
	metrics.cc
	metrics.h
	metrics_unittest.cc
	mock_metrics.h

Change-Id: Ib4280f2df89269f30fb988904b97d35c16569218
Reviewed-on: https://chromium-review.googlesource.com/197731
Reviewed-by: Peter Qiu <zqiu@chromium.org>
Commit-Queue: Peter Qiu <zqiu@chromium.org>
Tested-by: Peter Qiu <zqiu@chromium.org>
diff --git a/metrics.h b/metrics.h
index 67ba3ce..1d9c03a 100644
--- a/metrics.h
+++ b/metrics.h
@@ -469,6 +469,12 @@
   // Metric for user-initiated events.
   static const char kMetricUserInitiatedEvents[];
 
+  // Wifi TX bitrate in Mbps.
+  static const char kMetricWifiTxBitrate[];
+  static const int kMetricWifiTxBitrateMax;
+  static const int kMetricWifiTxBitrateMin;
+  static const int kMetricWifiTxBitrateNumBuckets;
+
   explicit Metrics(EventDispatcher *dispatcher);
   virtual ~Metrics();
 
@@ -638,6 +644,9 @@
   // currently connected network.
   virtual void NotifyServicesOnSameNetwork(int num_services);
 
+  // Notifies this object about WIFI TX bitrate in Mbps.
+  virtual void NotifyWifiTxBitrate(int bitrate);
+
   // Notifies this object about a corrupted profile.
   virtual void NotifyCorruptedProfile();