Chromium Code Reviews| Index: chrome/browser/ui/startup/startup_browser_creator.cc |
| diff --git a/chrome/browser/ui/startup/startup_browser_creator.cc b/chrome/browser/ui/startup/startup_browser_creator.cc |
| index 295690e2afde26702b72264593bcd70ab0648474..f1fe812efc59e885a032370ef1c18d8f57350baf 100644 |
| --- a/chrome/browser/ui/startup/startup_browser_creator.cc |
| +++ b/chrome/browser/ui/startup/startup_browser_creator.cc |
| @@ -388,6 +388,23 @@ SessionStartupPref StartupBrowserCreator::GetSessionStartupPref( |
| !profile->IsNewProfile()) { |
| pref.type = SessionStartupPref::LAST; |
| } |
| + |
| + // A browser starting for a profile being unlocked should always restore. |
| + if (!profile->IsGuestSession()) { |
| + ProfileInfoCache& info_cache = |
| + g_browser_process->profile_manager()->GetProfileInfoCache(); |
| + size_t index = info_cache.GetIndexOfProfileWithPath(profile->GetPath()); |
| + |
| + // If called during CreatePrimaryProfile on startup, |profile| has not yet |
|
msw
2014/10/30 22:29:49
nit: not sure the comment is entirely necessary.
|
| + // been added to the ProfileInfoCache; other code checks IsSigninRequired |
| + // and launches the UserManager if set. Thus here, only handle Profiles |
| + // that are in the ProfileInfoCache and have the bit set. |
| + if (index != std::string::npos && |
| + info_cache.ProfileIsSigninRequiredAtIndex(index)) { |
| + pref.type = SessionStartupPref::LAST; |
|
msw
2014/10/30 22:29:50
nit: fix indent
|
| + } |
| + } |
| + |
| if (pref.type == SessionStartupPref::LAST && |
| IncognitoModePrefs::ShouldLaunchIncognito(command_line, prefs)) { |
| // We don't store session information when incognito. If the user has |