Add ProfileMetricsRecorder

...to track and record profile related usage metrics during runtime.
Metrics are recorded per profile, i.e. each profile is assigned an ID
which corresponds to a histogram bucket.

The histogram Profile.BrowserActive.PerProfile is added.

Bug: 965469
Change-Id: I2012eb8f3ec1a7ed6ddb54f703453d8d559d0f23
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1625117
Reviewed-by: Mihai Sardarescu <[email protected]>
Reviewed-by: Robert Kaplow (slow) <[email protected]>
Reviewed-by: Marc Treib <[email protected]>
Commit-Queue: Thomas Tangl <[email protected]>
Cr-Commit-Position: refs/heads/master@{#667281}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index a2980c5a..25d03118 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -54,6 +54,7 @@
 #include "chrome/browser/previews/previews_offline_helper.h"
 #include "chrome/browser/profiles/chrome_version_service.h"
 #include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_attributes_entry.h"
 #include "chrome/browser/profiles/profile_impl.h"
 #include "chrome/browser/profiles/profile_info_cache.h"
 #include "chrome/browser/profiles/profiles_state.h"
@@ -537,6 +538,7 @@
   OriginTrialPrefs::RegisterPrefs(registry);
   password_manager::PasswordManager::RegisterLocalPrefs(registry);
   PrefProxyConfigTrackerImpl::RegisterPrefs(registry);
+  ProfileAttributesEntry::RegisterLocalStatePrefs(registry);
   ProfileInfoCache::RegisterPrefs(registry);
   profiles::RegisterPrefs(registry);
   rappor::RapporServiceImpl::RegisterPrefs(registry);