| 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 192136c337dc1e1b9795066348522b75aabd54c4..a1ff068fffbed4ccf931e735f3e467db3f42b786 100644
|
| --- a/chrome/browser/chromeos/login/login_utils.cc
|
| +++ b/chrome/browser/chromeos/login/login_utils.cc
|
| @@ -247,6 +247,7 @@ class LoginUtilsImpl : public LoginUtils,
|
| : background_view_(NULL),
|
| pending_requests_(false),
|
| using_oauth_(false),
|
| + has_cookies_(false),
|
| delegate_(NULL) {
|
| }
|
|
|
| @@ -256,6 +257,7 @@ class LoginUtilsImpl : public LoginUtils,
|
| const GaiaAuthConsumer::ClientLoginResult& credentials,
|
| bool pending_requests,
|
| bool using_oauth,
|
| + bool has_cookies,
|
| LoginUtils::Delegate* delegate) OVERRIDE;
|
|
|
| // Invoked after the tmpfs is successfully mounted.
|
| @@ -363,6 +365,7 @@ class LoginUtilsImpl : public LoginUtils,
|
| GaiaAuthConsumer::ClientLoginResult credentials_;
|
| bool pending_requests_;
|
| bool using_oauth_;
|
| + bool has_cookies_;
|
| // Has to be scoped_refptr, see comment for CreateAuthenticator(...).
|
| scoped_refptr<Authenticator> authenticator_;
|
| scoped_ptr<GaiaOAuthFetcher> oauth_fetcher_;
|
| @@ -409,6 +412,7 @@ void LoginUtilsImpl::PrepareProfile(
|
| const GaiaAuthConsumer::ClientLoginResult& credentials,
|
| bool pending_requests,
|
| bool using_oauth,
|
| + bool has_cookies,
|
| LoginUtils::Delegate* delegate) {
|
| BootTimesLoader* btl = BootTimesLoader::Get();
|
|
|
| @@ -433,6 +437,7 @@ void LoginUtilsImpl::PrepareProfile(
|
| credentials_ = credentials;
|
| pending_requests_ = pending_requests;
|
| using_oauth_ = using_oauth;
|
| + has_cookies_ = has_cookies;
|
| delegate_ = delegate;
|
|
|
| // The default profile will have been changed because the ProfileManager
|
| @@ -471,8 +476,8 @@ void LoginUtilsImpl::OnProfileCreated(Profile* user_profile, Status status) {
|
| btl->AddLoginTimeMarker("UserProfileGotten", false);
|
|
|
| if (using_oauth_) {
|
| - // Transfer cookies for the new user login.
|
| - if (!pending_requests_) {
|
| + // Transfer cookies when user signs in using extension.
|
| + if (has_cookies_) {
|
| // Transfer cookies from the profile that was used for authentication.
|
| // This profile contains cookies that auth extension should have already
|
| // put in place that will ensure that the newly created session is
|
| @@ -485,10 +490,10 @@ void LoginUtilsImpl::OnProfileCreated(Profile* user_profile, Status status) {
|
| }
|
| std::string oauth1_token;
|
| std::string oauth1_secret;
|
| - if (ReadOAuth1AccessToken(user_profile, &oauth1_token, &oauth1_secret) ||
|
| - pending_requests_) {
|
| - // Verify OAuth access token when we find it in the profile and always if
|
| - // we are performing parallel authentication.
|
| + if (!has_cookies_ &&
|
| + ReadOAuth1AccessToken(user_profile, &oauth1_token, &oauth1_secret)) {
|
| + // Verify OAuth access token when we find it in the profile and no cookies
|
| + // available because user is not signing in using extension.
|
| authenticator_->VerifyOAuth1AccessToken(oauth1_token, oauth1_secret);
|
| } else {
|
| // If we don't have it, fetch OAuth1 access token.
|
|
|