Index: chrome/browser/profiles/profiles_state.cc |
diff --git a/chrome/browser/profiles/profiles_state.cc b/chrome/browser/profiles/profiles_state.cc |
index 3aa232ab99925c7cdc5d2d67d77067344e8bbecf..7aa0c42a80d87618cd1c4d5061b2bb2433e160cc 100644 |
--- a/chrome/browser/profiles/profiles_state.cc |
+++ b/chrome/browser/profiles/profiles_state.cc |
@@ -171,29 +171,27 @@ SigninErrorController* GetSigninErrorController(Profile* profile) { |
return SigninErrorControllerFactory::GetForProfile(profile); |
} |
-Profile* SetActiveProfileToGuestIfLocked() { |
- Profile* active_profile = ProfileManager::GetLastUsedProfile(); |
- DCHECK(active_profile); |
+bool SetActiveProfileToGuestIfLocked() { |
+ ProfileManager* profile_manager = g_browser_process->profile_manager(); |
- if (active_profile->IsGuestSession()) |
- return active_profile; |
+ const base::FilePath& active_profile_path = |
+ profile_manager->GetLastUsedProfileDir(profile_manager->user_data_dir()); |
+ const base::FilePath& guest_path = ProfileManager::GetGuestProfilePath(); |
+ if (active_profile_path == guest_path) |
+ return true; |
- ProfileManager* profile_manager = g_browser_process->profile_manager(); |
const ProfileInfoCache& cache = profile_manager->GetProfileInfoCache(); |
- size_t index = cache.GetIndexOfProfileWithPath(active_profile->GetPath()); |
- if (!cache.ProfileIsSigninRequiredAtIndex(index)) |
- return NULL; |
- |
- // Profile loads synchronously if it was not previously created. |
- Profile* guest_profile = profile_manager->GetProfile( |
- ProfileManager::GetGuestProfilePath()); |
- DCHECK(guest_profile); |
+ size_t index = cache.GetIndexOfProfileWithPath(active_profile_path); |
+ if (!cache.ProfileIsSigninRequiredAtIndex(index)) { |
+ return false; |
+ } |
noms (inactive)
2015/01/29 22:18:11
nit: noesss, no {}
Mike Lerman
2015/01/29 22:22:10
Done.
|
PrefService* local_state = g_browser_process->local_state(); |
DCHECK(local_state); |
- local_state->SetString(prefs::kProfileLastUsed, |
- guest_profile->GetPath().BaseName().MaybeAsASCII()); |
- return guest_profile; |
+ local_state->SetString( |
+ prefs::kProfileLastUsed, |
+ guest_path.BaseName().MaybeAsASCII()); |
+ return true; |
} |
} // namespace profiles |