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..48543c180c288e3ad318f8bfc23c1d5e9848180d 100644 |
--- a/chrome/browser/profiles/profiles_state.cc |
+++ b/chrome/browser/profiles/profiles_state.cc |
@@ -171,29 +171,26 @@ 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()); |
+ size_t index = cache.GetIndexOfProfileWithPath(active_profile_path); |
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); |
+ return false; |
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 |