Chromium Code Reviews| Index: chrome/browser/chromeos/login/login_utils.cc |
| diff --git a/chrome/browser/chromeos/login/login_utils.cc b/chrome/browser/chromeos/login/login_utils.cc |
| index 2ae990b3f7a275b10821343db9a9f96b6652a1a3..8438ef1e7a3de7df41006a783917260b0ccd0519 100644 |
| --- a/chrome/browser/chromeos/login/login_utils.cc |
| +++ b/chrome/browser/chromeos/login/login_utils.cc |
| @@ -199,6 +199,20 @@ class LoginUtilsImpl |
| // the authentication profile. |
| void CompleteProfileCreate(Profile* user_profile); |
| + // Callback to resume profile preparing after start session |
| + void onSessionStarted(const UserContext& user_context, |
|
ygorshenin1
2014/04/10 15:39:22
Functions should start with a capital letter (http
Roman Sorokin (ftl)
2014/04/11 07:38:13
Done.
|
| + const std::string& display_email, |
| + bool has_cookies, |
| + LoginUtils::Delegate* delegate, |
| + bool success); |
| + |
| + // Complete profile preparation with having active session |
| + void CompletePrepareProfileWithActiveSession( |
| + const UserContext& user_context, |
| + const std::string& display_email, |
| + bool has_cookies, |
| + LoginUtils::Delegate* delegate); |
| + |
| // Finalized profile preparation. |
| void FinalizePrepareProfile(Profile* user_profile); |
| @@ -391,10 +405,46 @@ void LoginUtilsImpl::PrepareProfile( |
| if (!has_active_session) { |
| btl->AddLoginTimeMarker("StartSession-Start", false); |
| DBusThreadManager::Get()->GetSessionManagerClient()->StartSession( |
| - user_context.username); |
| - btl->AddLoginTimeMarker("StartSession-End", false); |
| + user_context.username, |
| + base::Bind(&LoginUtilsImpl::onSessionStarted, |
| + AsWeakPtr(), |
| + user_context, |
| + display_email, |
| + has_cookies, |
| + delegate)); |
| + return; |
| } |
| + CompletePrepareProfileWithActiveSession(user_context, |
| + display_email, |
| + has_cookies, |
| + delegate); |
| +} |
| + |
| +void LoginUtilsImpl::onSessionStarted(const UserContext& user_context, |
| + const std::string& display_email, |
|
Nikita (slow)
2014/04/10 15:41:13
nit: Alignment should be fixed.
Roman Sorokin (ftl)
2014/04/11 07:38:13
Done.
|
| + bool has_cookies, |
| + LoginUtils::Delegate* delegate, |
| + bool success) { |
| + BootTimesLoader* btl = BootTimesLoader::Get(); |
| + btl->AddLoginTimeMarker("StartSession-End", false); |
| + if (!success) { |
| + LOG(ERROR) << "StartSession failed"; |
| + chrome::AttemptUserExit(); |
| + return; |
| + } |
| + CompletePrepareProfileWithActiveSession(user_context, |
| + display_email, |
| + has_cookies, |
| + delegate); |
| +} |
| + |
| +void LoginUtilsImpl::CompletePrepareProfileWithActiveSession( |
| + const UserContext& user_context, |
| + const std::string& display_email, |
| + bool has_cookies, |
| + LoginUtils::Delegate* delegate) { |
| + BootTimesLoader* btl = BootTimesLoader::Get(); |
| btl->AddLoginTimeMarker("UserLoggedIn-Start", false); |
| UserManager* user_manager = UserManager::Get(); |
| user_manager->UserLoggedIn(user_context.username, |