shill: Add support for Network.*.TimeResumeToReady

BUG=chromium-os:24440
TEST=Unit tests, network_WiFiManager, manually suspend/resume system

Change-Id: Ica618f2c713bac92f609d7894b16b0dd93af1645
Reviewed-on: https://gerrit.chromium.org/gerrit/17263
Commit-Ready: Thieu Le <thieule@chromium.org>
Reviewed-by: Thieu Le <thieule@chromium.org>
Tested-by: Thieu Le <thieule@chromium.org>
diff --git a/wifi_service.cc b/wifi_service.cc
index f3dbe56..8b9250f 100644
--- a/wifi_service.cc
+++ b/wifi_service.cc
@@ -334,9 +334,8 @@
                                             Service::kStateConfiguring);
 }
 
-void WiFiService::SendPostReadyStateMetrics() const {
-  // TODO(thieule): Send physical mode and security metrics.
-  // crosbug.com/24441
+void WiFiService::SendPostReadyStateMetrics(
+    int64 time_resume_to_ready_milliseconds) const {
   metrics()->SendEnumToUMA(
       metrics()->GetFullMetricName(Metrics::kMetricNetworkChannel,
                                    technology()),
@@ -358,6 +357,16 @@
                                    technology()),
       security_uma,
       Metrics::kMetricNetworkSecurityMax);
+
+  if (time_resume_to_ready_milliseconds > 0) {
+    metrics()->SendToUMA(
+        metrics()->GetFullMetricName(
+            Metrics::kMetricTimeResumeToReadyMilliseconds, technology()),
+        time_resume_to_ready_milliseconds,
+        Metrics::kTimerHistogramMillisecondsMin,
+        Metrics::kTimerHistogramMillisecondsMax,
+        Metrics::kTimerHistogramNumBuckets);
+  }
 }
 
 // private methods