Commit f32ecf90 authored by skuhne@chromium.org's avatar skuhne@chromium.org

Adding number of users to ChromeOS crash record

BUG=330217
TEST=none

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245408 0039d316-1c4b-4281-b951-d872f2087c98
parent 6c9901b4
......@@ -12,6 +12,7 @@
#include "base/command_line.h"
#include "base/compiler_specific.h"
#include "base/files/file_path.h"
#include "base/format_macros.h"
#include "base/logging.h"
#include "base/metrics/histogram.h"
#include "base/prefs/pref_registry_simple.h"
......@@ -49,6 +50,7 @@
#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/crash_keys.h"
#include "chrome/common/pref_names.h"
#include "chromeos/chromeos_switches.h"
#include "chromeos/cryptohome/async_method_caller.h"
......@@ -193,6 +195,7 @@ UserManagerImpl::UserManagerImpl()
manager_creation_time_(base::TimeTicks::Now()),
multi_profile_first_run_notification_(
new MultiProfileFirstRunNotification) {
UpdateNumberOfUsers();
// UserManager instance should be used only on UI thread.
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
registrar_.Add(this, chrome::NOTIFICATION_OWNERSHIP_STATUS_CHANGED,
......@@ -1377,6 +1380,7 @@ void UserManagerImpl::RetailModeUserLoggedIn() {
}
void UserManagerImpl::NotifyOnLogin() {
UpdateNumberOfUsers();
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
NotifyActiveUserHashChanged(active_user_->username_hash());
NotifyActiveUserChanged(active_user_);
......@@ -1697,6 +1701,7 @@ void UserManagerImpl::NotifyActiveUserChanged(const User* active_user) {
}
void UserManagerImpl::NotifyUserAddedToSession(const User* added_user) {
UpdateNumberOfUsers();
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
FOR_EACH_OBSERVER(UserManager::UserSessionStateObserver,
session_state_observer_list_,
......@@ -1869,5 +1874,9 @@ void UserManagerImpl::DoUpdateAccountLocale(
user->SetAccountLocale(resolved_locale);
}
void UserManagerImpl::UpdateNumberOfUsers() {
base::debug::SetCrashKeyValue(crash_keys::kNumberOfUsers,
base::StringPrintf("%" PRIuS, GetLoggedInUsers().size()));
}
} // namespace chromeos
......@@ -353,6 +353,9 @@ class UserManagerImpl
void DoUpdateAccountLocale(const std::string& user_id,
const std::string& resolved_locale);
// Update the number of users.
void UpdateNumberOfUsers();
// Interface to the signed settings store.
CrosSettings* cros_settings_;
......
......@@ -85,6 +85,10 @@ const char kGPURenderer[] = "gpu-gl-renderer";
const char kPrinterInfo[] = "prn-info-%" PRIuS;
#if defined(OS_CHROMEOS)
const char kNumberOfUsers[] = "num-users";
#endif
#if defined(OS_MACOSX)
namespace mac {
......@@ -134,6 +138,9 @@ size_t RegisterChromeCrashKeys() {
// content/:
{ "ppapi_path", kMediumSize },
{ "subresource_url", kLargeSize },
#if defined(OS_CHROMEOS)
{ kNumberOfUsers, kSmallSize },
#endif
#if defined(OS_MACOSX)
{ mac::kFirstNSException, kMediumSize },
{ mac::kFirstNSExceptionTrace, kMediumSize },
......
......@@ -104,6 +104,11 @@ extern const char kGPURenderer[];
const size_t kPrinterInfoCount = 4;
extern const char kPrinterInfo[];
#if defined(OS_CHROMEOS)
// The number of simultaneous users in multi profile sessions.
extern const char kNumberOfUsers[];
#endif
#if defined(OS_MACOSX)
namespace mac {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment