Index: chrome/browser/metrics/metrics_log.cc |
diff --git a/chrome/browser/metrics/metrics_log.cc b/chrome/browser/metrics/metrics_log.cc |
index f2962a5015a797296396ea2cb0afa8db2c23b025..64383e0667c0dcc50f7ed4e79ae3bd35edbb4928 100644 |
--- a/chrome/browser/metrics/metrics_log.cc |
+++ b/chrome/browser/metrics/metrics_log.cc |
@@ -62,6 +62,10 @@ |
extern "C" IMAGE_DOS_HEADER __ImageBase; |
#endif |
+#if defined(OS_CHROMEOS) |
+#include "chrome/browser/chromeos/login/user_manager.h" |
+#endif |
+ |
using content::GpuDataManager; |
using metrics::OmniboxEventProto; |
using metrics::PerfDataProto; |
@@ -379,7 +383,14 @@ static base::LazyInstance<std::string>::Leaky |
g_version_extension = LAZY_INSTANCE_INITIALIZER; |
MetricsLog::MetricsLog(const std::string& client_id, int session_id) |
- : MetricsLogBase(client_id, session_id, MetricsLog::GetVersionString()) {} |
+ : MetricsLogBase(client_id, session_id, MetricsLog::GetVersionString()) { |
+#if defined(OS_CHROMEOS) |
+ initial_multi_profile_user_count_ = 0; |
Ilya Sherman
2013/09/30 23:42:52
nit: Please move this to the initializer list.
|
+ chromeos::UserManager* user_manager = chromeos::UserManager::Get(); |
+ if (user_manager && user_manager->IsMultipleProfilesAllowed()) |
+ initial_multi_profile_user_count_ = user_manager->GetLoggedInUsers().size(); |
+#endif |
+} |
MetricsLog::~MetricsLog() {} |
@@ -799,6 +810,15 @@ void MetricsLog::RecordEnvironmentProto( |
base::Unretained(this))); |
DCHECK(adapter_.get()); |
WriteBluetoothProto(hardware); |
+ |
+ chromeos::UserManager* user_manager = chromeos::UserManager::Get(); |
+ if (user_manager && user_manager->IsMultipleProfilesAllowed()) { |
+ int user_count = user_manager->GetLoggedInUsers().size(); |
+ // We invalidate the user count if it changed while the log was open. |
+ if (user_count != initial_multi_profile_user_count_) |
+ user_count = 0; |
+ system_profile->set_multi_profile_user_count(user_count); |
+ } |
#endif |
} |