diff --git a/metrics.h b/metrics.h
index 9775692..73985c2 100644
--- a/metrics.h
+++ b/metrics.h
@@ -179,6 +179,10 @@
   static const int kMetricTimeOnlineSecondsNumBuckets;
   static const char kMetricTimeResumeToReadyMilliseconds[];
   static const char kMetricTimeToConfigMilliseconds[];
+  static const char kMetricTimeToConnectMilliseconds[];
+  static const int kMetricTimeToConnectMillisecondsMax;
+  static const int kMetricTimeToConnectMillisecondsMin;
+  static const int kMetricTimeToConnectMillisecondsNumBuckets;
   static const char kMetricTimeToDropSeconds[];
   static const int kMetricTimeToDropSecondsMax;
   static const int kMetricTimeToDropSecondsMin;
@@ -354,6 +358,12 @@
   // Notifies this object that a device has completed the disable process.
   void NotifyDeviceDisableFinished(int interface_index);
 
+  // Notifies this object that a device has started the connect process.
+  void NotifyDeviceConnectStarted(int interface_index);
+
+  // Notifies this object that a device has completed the connect process.
+  void NotifyDeviceConnectFinished(int interface_index);
+
   // Sends linear histogram data to UMA.
   virtual bool SendEnumToUMA(const std::string &name, int sample, int max);
 
@@ -398,6 +408,7 @@
     scoped_ptr<chromeos_metrics::TimerReporter> initialization_timer;
     scoped_ptr<chromeos_metrics::TimerReporter> enable_timer;
     scoped_ptr<chromeos_metrics::TimerReporter> disable_timer;
+    scoped_ptr<chromeos_metrics::TimerReporter> connect_timer;
   };
   typedef std::map<const int, std::tr1::shared_ptr<DeviceMetrics> >
       DeviceMetricsLookupMap;
