Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5781)

Unified Diff: chrome/browser/chromeos/login/login_performer.cc

Issue 12704002: Support for auth code based authentication flow for both app and web UI driven flow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/login_performer.cc
diff --git a/chrome/browser/chromeos/login/login_performer.cc b/chrome/browser/chromeos/login/login_performer.cc
index aa0099d378c72d1244fded12c448464913937a88..61918d037ba646a54233c8a8932383f5f371ed5e 100644
--- a/chrome/browser/chromeos/login/login_performer.cc
+++ b/chrome/browser/chromeos/login/login_performer.cc
@@ -127,8 +127,7 @@ void LoginPerformer::OnRetailModeLoginSuccess() {
}
void LoginPerformer::OnLoginSuccess(
- const std::string& username,
- const std::string& password,
+ const UserCredentials& credentials,
bool pending_requests,
bool using_oauth) {
content::RecordAction(UserMetricsAction("Login_Success"));
@@ -154,8 +153,7 @@ void LoginPerformer::OnLoginSuccess(
else
initial_online_auth_pending_ = true;
- delegate_->OnLoginSuccess(username,
- password,
+ delegate_->OnLoginSuccess(credentials,
pending_requests,
using_oauth);
}
@@ -219,12 +217,10 @@ void LoginPerformer::Observe(int type,
////////////////////////////////////////////////////////////////////////////////
// LoginPerformer, public:
-void LoginPerformer::PerformLogin(const std::string& username,
- const std::string& password,
+void LoginPerformer::PerformLogin(const UserCredentials& credentials,
AuthorizationMode auth_mode) {
auth_mode_ = auth_mode;
- username_ = username;
- password_ = password;
+ credentials_ = credentials;
CrosSettings* cros_settings = CrosSettings::Get();
@@ -235,7 +231,7 @@ void LoginPerformer::PerformLogin(const std::string& username,
cros_settings->PrepareTrustedValues(
base::Bind(&LoginPerformer::PerformLogin,
weak_factory_.GetWeakPtr(),
- username, password, auth_mode));
+ credentials_, auth_mode));
// Must not proceed without signature verification.
if (status == CrosSettingsProvider::PERMANENTLY_UNTRUSTED) {
if (delegate_)
@@ -251,7 +247,7 @@ void LoginPerformer::PerformLogin(const std::string& username,
}
bool is_whitelisted = LoginUtils::IsWhitelisted(
- gaia::CanonicalizeEmail(username));
+ gaia::CanonicalizeEmail(credentials.username));
if (ScreenLocker::default_screen_locker() || is_whitelisted) {
switch (auth_mode_) {
case AUTH_MODE_EXTENSION:
@@ -263,7 +259,7 @@ void LoginPerformer::PerformLogin(const std::string& username,
}
} else {
if (delegate_)
- delegate_->WhiteListCheckFailed(username);
+ delegate_->WhiteListCheckFailed(credentials.username);
else
NOTREACHED();
}
@@ -274,21 +270,22 @@ void LoginPerformer::CreateLocallyManagedUser(const string16& display_name,
std::string id = UserManager::Get()->GenerateUniqueLocallyManagedUserId();
const User* user = UserManager::Get()->
CreateLocallyManagedUserRecord(id, display_name);
- LoginAsLocallyManagedUser(user->email(), password);
+ LoginAsLocallyManagedUser(UserCredentials(user->email(),
+ password,
+ std::string())); // auth_code
}
-void LoginPerformer::LoginAsLocallyManagedUser(const std::string& username,
- const std::string& password) {
+void LoginPerformer::LoginAsLocallyManagedUser(
+ const UserCredentials& credentials) {
DCHECK_EQ(UserManager::kLocallyManagedUserDomain,
- gaia::ExtractDomainName(username));
+ gaia::ExtractDomainName(credentials.username));
// TODO(nkostylev): Check that policy allows locally managed user login.
authenticator_ = LoginUtils::Get()->CreateAuthenticator(this);
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(&Authenticator::LoginAsLocallyManagedUser,
authenticator_.get(),
- username,
- password));
+ credentials));
}
void LoginPerformer::LoginRetailMode() {
@@ -494,10 +491,10 @@ void LoginPerformer::StartLoginCompletion() {
BrowserThread::UI, FROM_HERE,
base::Bind(&Authenticator::CompleteLogin, authenticator_.get(),
profile,
- username_,
- password_));
+ credentials_));
- password_.clear();
+ credentials_.password.clear();
+ credentials_.auth_code.clear();
}
void LoginPerformer::StartAuthentication() {
@@ -517,13 +514,12 @@ void LoginPerformer::StartAuthentication() {
BrowserThread::UI, FROM_HERE,
base::Bind(&Authenticator::AuthenticateToLogin, authenticator_.get(),
profile,
- username_,
- password_,
+ credentials_,
std::string(),
std::string()));
// Make unobtrusive online check. It helps to determine password change
// state in the case when offline login fails.
- online_attempt_host_.Check(profile, username_, password_);
+ online_attempt_host_.Check(profile, credentials_);
} else {
DCHECK(authenticator_.get())
<< "Authenticator instance doesn't exist for login attempt retry.";
@@ -533,12 +529,12 @@ void LoginPerformer::StartAuthentication() {
BrowserThread::UI, FROM_HERE,
base::Bind(&Authenticator::RetryAuth, authenticator_.get(),
profile,
- username_,
- password_,
+ credentials_,
std::string(),
std::string()));
}
- password_.clear();
+ credentials_.password.clear();
+ credentials_.auth_code.clear();
}
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698