Reland of: Profile_Metrics integration with Keystone

Chromium side of the implementation of tracking profile stats (number
of profiles, number of signed in profiles) through the Omaha channel
for Mac.

Was reverted: https://codereview.chromium.org/974423002

BUG=409895
[email protected]

Review URL: https://codereview.chromium.org/1024533002

Cr-Commit-Position: refs/heads/master@{#321807}
diff --git a/chrome/browser/mac/keystone_glue.h b/chrome/browser/mac/keystone_glue.h
index 5c21c36..c6295a5 100644
--- a/chrome/browser/mac/keystone_glue.h
+++ b/chrome/browser/mac/keystone_glue.h
@@ -87,6 +87,7 @@
   // And the Keystone registration itself, with the active timer
   KSRegistration* registration_;  // strong
   NSTimer* timer_;  // strong
+  Class ksUnsignedReportingAttributeClass_;
 
   // The most recent kAutoupdateStatusNotification notification posted.
   base::scoped_nsobject<NSNotification> recentNotification_;
@@ -101,6 +102,10 @@
 
   // YES if an update was ever successfully installed by -installUpdate.
   BOOL updateSuccessfullyInstalled_;
+
+  // Profile count information.
+  uint32_t numProfiles_;
+  uint32_t numSignedInProfiles_;
 }
 
 // Return the default Keystone Glue object.
@@ -172,6 +177,10 @@
 // at the installed copy.
 - (void)setAppPath:(NSString*)appPath;
 
+// Sets the total number of profiles and the number of signed in profiles.
+- (void)updateProfileCountsWithNumProfiles:(uint32_t)profiles
+                       numSignedInProfiles:(uint32_t)signedInProfiles;
+
 @end  // @interface KeystoneGlue
 
 @interface KeystoneGlue(ExposedForTesting)