Index: chrome/browser/profiles/profile_manager.cc |
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc |
index 5f2317b7c992597829e7e6a8f91f739b4878e8ca..ca6cf25f02d19c5792d2b8fef8b0dd840095df47 100644 |
--- a/chrome/browser/profiles/profile_manager.cc |
+++ b/chrome/browser/profiles/profile_manager.cc |
@@ -633,8 +633,8 @@ Profile* ProfileManager::GetLastUsedProfile( |
// If we get here, it means the user has logged in but the profile has not |
// finished initializing, so treat the user as not having logged in. |
if (!profile) { |
- DLOG(WARNING) << "Calling GetLastUsedProfile() before profile " |
- << "initialization is completed. Returning login profile."; |
+ LOG(WARNING) << "Calling GetLastUsedProfile() before profile " |
+ << "initialization is completed. Returning login profile."; |
return GetActiveUserOrOffTheRecordProfileFromPath(user_data_dir); |
emaxx
2017/06/06 12:11:23
Not insisting (I'm not aware of the general guidel
xiyuan
2017/06/06 20:29:39
I will fix the offending code and change this to a
|
} |
return profile->IsGuestSession() ? profile->GetOffTheRecordProfile() : |
@@ -1326,12 +1326,21 @@ Profile* ProfileManager::GetActiveUserOrOffTheRecordProfileFromPath( |
return profile; |
} |
+ // Only allow user profile loading on browser restart, where kLoginUser |
+ // switch is present in the command line. For all other cases, the user |
+ // profile loading should be from UserSessionManager. |
+ const bool allow_user_profile_loading = |
emaxx
2017/06/06 12:11:23
I'm a bit unhappy with keeping the lazy profile lo
xiyuan
2017/06/06 20:29:39
Added ProfileManager::CreateInitialProfile() and u
|
+ base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ chromeos::switches::kLoginUser); |
+ |
default_profile_dir = default_profile_dir.Append(GetInitialProfileDir()); |
ProfileInfo* profile_info = GetProfileInfoByPath(default_profile_dir); |
- // Fallback to default off-the-record profile, if user profile has not fully |
- // loaded yet. |
- if (profile_info && !profile_info->created) |
+ // Fallback to default off-the-record profile, if user profile is not loaded |
+ // and should not be loaded or has not fully loaded yet. |
+ if ((!allow_user_profile_loading && !profile_info) || |
+ (profile_info && !profile_info->created)) { |
default_profile_dir = profiles::GetDefaultProfileDir(user_data_dir); |
+ } |
Profile* profile = GetProfile(default_profile_dir); |
// Some unit tests didn't initialize the UserManager. |