shill: Keeps track of successful wifi connection frequencies.

Saves the connection frequencies (and counts therefor) in the default
profile.  Sends number of frequencies on which successful connections
have been made to an UMA stat.

BUG=chromium:222081
TEST=unittests and manual (look for UMA stat
     'Network.Shill.Wifi.FrequenciesConnectedEver', disconnect from
     wifi, reconnect, verify that the UMA stat went up by 1).

Change-Id: I1e3c75b82ac387dd01066c4da4ebfce2c4b2ddc0
Reviewed-on: https://gerrit.chromium.org/gerrit/47154
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
diff --git a/default_profile.h b/default_profile.h
index 4680f14..387d3d0 100644
--- a/default_profile.h
+++ b/default_profile.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef SHILL_DEFAULT_PROFILE_
-#define SHILL_DEFAULT_PROFILE_
+#ifndef SHILL_DEFAULT_PROFILE_H_
+#define SHILL_DEFAULT_PROFILE_H_
 
 #include <string>
 #include <vector>
@@ -21,6 +21,7 @@
 namespace shill {
 
 class ControlInterface;
+class WiFiProvider;
 
 class DefaultProfile : public Profile {
  public:
@@ -50,6 +51,9 @@
   // Inherited from Profile.
   virtual bool UpdateDevice(const DeviceRefPtr &device);
 
+  // Inherited from Profile.
+  virtual bool UpdateWiFiProvider(const WiFiProvider &wifi_provider);
+
  protected:
   // Sets |path| to the persistent store file path for the default, global
   // profile. Returns true on success, and false if unable to determine an
@@ -85,4 +89,4 @@
 
 }  // namespace shill
 
-#endif  // SHILL_DEFAULT_PROFILE_
+#endif  // SHILL_DEFAULT_PROFILE_H_