Chromium Code Reviews| Index: chrome/browser/chromeos/login/parallel_authenticator.cc |
| diff --git a/chrome/browser/chromeos/login/parallel_authenticator.cc b/chrome/browser/chromeos/login/parallel_authenticator.cc |
| index 29ffe01df4da276ab7900e54bca1ab2e094bd509..82ac885b6e2b3520d8802abbf468463380f09b1c 100644 |
| --- a/chrome/browser/chromeos/login/parallel_authenticator.cc |
| +++ b/chrome/browser/chromeos/login/parallel_authenticator.cc |
| @@ -110,6 +110,23 @@ void MountGuest(AuthAttemptState* attempt, |
| resolver)); |
| } |
| +// Calls cryptohome's mount method for guest and also get the user hash from |
| +// cryptohome. |
| +void MountGuestAndGetHash(AuthAttemptState* attempt, |
| + scoped_refptr<ParallelAuthenticator> resolver) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + cryptohome::AsyncMethodCaller::GetInstance()->AsyncMountGuest( |
|
bartfab (slow)
2014/03/27 14:13:29
The AuthAttemptState constructor sets username_has
rkc
2014/03/27 21:43:10
Done.
|
| + base::Bind(&TriggerResolveWithLoginTimeMarker, |
| + "CryptohomeMount-End", |
| + attempt, |
| + resolver)); |
| + cryptohome::AsyncMethodCaller::GetInstance()->AsyncGetSanitizedUsername( |
| + attempt->user_context.username, |
| + base::Bind(&TriggerResolveHash, |
| + attempt, |
| + resolver)); |
| +} |
| + |
| // Calls cryptohome's MountPublic method |
| void MountPublic(AuthAttemptState* attempt, |
| scoped_refptr<ParallelAuthenticator> resolver, |
| @@ -346,11 +363,12 @@ void ParallelAuthenticator::LoginAsPublicAccount(const std::string& username) { |
| } |
| void ParallelAuthenticator::LoginAsKioskAccount( |
| - const std::string& app_user_id, bool force_ephemeral) { |
| + const std::string& app_user_id, |
| + bool use_guest_mount) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - std::string user_id = |
| - force_ephemeral ? UserManager::kGuestUserName : app_user_id; |
| + const std::string user_id = |
| + use_guest_mount ? UserManager::kGuestUserName : app_user_id; |
| current_state_.reset(new AuthAttemptState( |
| UserContext(user_id, |
| std::string(), // password |
| @@ -361,14 +379,14 @@ void ParallelAuthenticator::LoginAsKioskAccount( |
| false)); |
| remove_user_data_on_failure_ = true; |
| - if (!force_ephemeral) { |
| + if (!use_guest_mount) { |
| MountPublic(current_state_.get(), |
| scoped_refptr<ParallelAuthenticator>(this), |
| cryptohome::CREATE_IF_MISSING); |
| } else { |
| ephemeral_mount_attempted_ = true; |
| - MountGuest(current_state_.get(), |
| - scoped_refptr<ParallelAuthenticator>(this)); |
| + MountGuestAndGetHash(current_state_.get(), |
| + scoped_refptr<ParallelAuthenticator>(this)); |
| } |
| } |