Index: chrome/browser/chromeos/login/users/user_manager_impl.cc |
diff --git a/chrome/browser/chromeos/login/users/user_manager_impl.cc b/chrome/browser/chromeos/login/users/user_manager_impl.cc |
index 86bf5da27df83aacbfeb3e2acbe9005088a5e027..9b67230471c01ade344170d64f12277da60dac66 100644 |
--- a/chrome/browser/chromeos/login/users/user_manager_impl.cc |
+++ b/chrome/browser/chromeos/login/users/user_manager_impl.cc |
@@ -8,6 +8,7 @@ |
#include <set> |
#include "ash/multi_profile_uma.h" |
+#include "base/base_paths.h" |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
#include "base/command_line.h" |
@@ -16,6 +17,7 @@ |
#include "base/format_macros.h" |
#include "base/logging.h" |
#include "base/metrics/histogram.h" |
+#include "base/path_service.h" |
#include "base/prefs/pref_registry_simple.h" |
#include "base/prefs/pref_service.h" |
#include "base/prefs/scoped_user_pref_update.h" |
@@ -58,6 +60,7 @@ |
#include "chrome/browser/sync/profile_sync_service.h" |
#include "chrome/browser/sync/profile_sync_service_factory.h" |
#include "chrome/common/chrome_constants.h" |
+#include "chrome/common/chrome_paths.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/crash_keys.h" |
#include "chrome/common/pref_names.h" |
@@ -1552,6 +1555,16 @@ void UserManagerImpl::RetailModeUserLoggedIn() { |
void UserManagerImpl::NotifyOnLogin() { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ // Override user homedir, check for ProfileManager being initialized as |
+ // it may not exist in unit tests. |
+ if (g_browser_process->profile_manager()) { |
+ if (GetLoggedInUsers().size() == 1) { |
+ base::FilePath homedir = ProfileHelper::GetProfilePathByUserIdHash( |
+ primary_user_->username_hash()); |
+ PathService::Override(base::DIR_HOME, homedir); |
+ } |
+ } |
+ |
UpdateNumberOfUsers(); |
NotifyActiveUserHashChanged(active_user_->username_hash()); |
NotifyActiveUserChanged(active_user_); |