OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/signin/signin_manager.h" | 5 #include "chrome/browser/signin/signin_manager.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 profile->GetPrefs()->ClearPref(prefs::kGoogleServicesUsername); | 120 profile->GetPrefs()->ClearPref(prefs::kGoogleServicesUsername); |
121 | 121 |
122 std::string user = profile_->GetPrefs()->GetString( | 122 std::string user = profile_->GetPrefs()->GetString( |
123 prefs::kGoogleServicesUsername); | 123 prefs::kGoogleServicesUsername); |
124 if (!user.empty()) | 124 if (!user.empty()) |
125 SetAuthenticatedUsername(user); | 125 SetAuthenticatedUsername(user); |
126 // TokenService can be null for unit tests. | 126 // TokenService can be null for unit tests. |
127 TokenService* token_service = TokenServiceFactory::GetForProfile(profile_); | 127 TokenService* token_service = TokenServiceFactory::GetForProfile(profile_); |
128 if (token_service) { | 128 if (token_service) { |
129 token_service->Initialize(GaiaConstants::kChromeSource, profile_); | 129 token_service->Initialize(GaiaConstants::kChromeSource, profile_); |
| 130 // ChromeOS will kick off TokenService::LoadTokensFromDB from |
| 131 // OAuthLoginManager once the rest of the Profile is fully initialized. |
| 132 // Starting it from here would cause OAuthLoginManager mismatch the origin |
| 133 // of OAuth2 tokens. |
| 134 #if !defined(OS_CHROMEOS) |
130 if (!authenticated_username_.empty()) { | 135 if (!authenticated_username_.empty()) { |
131 token_service->LoadTokensFromDB(); | 136 token_service->LoadTokensFromDB(); |
132 } | 137 } |
| 138 #endif |
133 } | 139 } |
134 if (!user.empty() && !IsAllowedUsername(user)) { | 140 if (!user.empty() && !IsAllowedUsername(user)) { |
135 // User is signed in, but the username is invalid - the administrator must | 141 // User is signed in, but the username is invalid - the administrator must |
136 // have changed the policy since the last signin, so sign out the user. | 142 // have changed the policy since the last signin, so sign out the user. |
137 SignOut(); | 143 SignOut(); |
138 } | 144 } |
139 } | 145 } |
140 | 146 |
141 bool SigninManager::IsInitialized() const { | 147 bool SigninManager::IsInitialized() const { |
142 return profile_ != NULL; | 148 return profile_ != NULL; |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 DisableOneClickSignIn(profile_); // Don't ever offer again. | 510 DisableOneClickSignIn(profile_); // Don't ever offer again. |
505 | 511 |
506 TokenService* token_service = TokenServiceFactory::GetForProfile(profile_); | 512 TokenService* token_service = TokenServiceFactory::GetForProfile(profile_); |
507 token_service->UpdateCredentials(last_result_); | 513 token_service->UpdateCredentials(last_result_); |
508 DCHECK(token_service->AreCredentialsValid()); | 514 DCHECK(token_service->AreCredentialsValid()); |
509 token_service->StartFetchingTokens(); | 515 token_service->StartFetchingTokens(); |
510 | 516 |
511 // If we have oauth2 tokens, tell token service about them so it does not | 517 // If we have oauth2 tokens, tell token service about them so it does not |
512 // need to fetch them again. | 518 // need to fetch them again. |
513 if (!temp_oauth_login_tokens_.refresh_token.empty()) { | 519 if (!temp_oauth_login_tokens_.refresh_token.empty()) { |
514 token_service->OnClientOAuthSuccess(temp_oauth_login_tokens_); | 520 token_service->UpdateCredentialsWithOAuth2(temp_oauth_login_tokens_); |
515 temp_oauth_login_tokens_ = ClientOAuthResult(); | 521 temp_oauth_login_tokens_ = ClientOAuthResult(); |
516 } | 522 } |
517 } | 523 } |
518 | 524 |
519 void SigninManager::OnGetUserInfoFailure(const GoogleServiceAuthError& error) { | 525 void SigninManager::OnGetUserInfoFailure(const GoogleServiceAuthError& error) { |
520 LOG(ERROR) << "Unable to retreive the canonical email address. Login failed."; | 526 LOG(ERROR) << "Unable to retreive the canonical email address. Login failed."; |
521 // REVIEW: why does this call OnClientLoginFailure? | 527 // REVIEW: why does this call OnClientLoginFailure? |
522 OnClientLoginFailure(error); | 528 OnClientLoginFailure(error); |
523 } | 529 } |
524 | 530 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 !IsAllowedUsername(authenticated_username_)) { | 566 !IsAllowedUsername(authenticated_username_)) { |
561 // Signed in user is invalid according to the current policy so sign | 567 // Signed in user is invalid according to the current policy so sign |
562 // the user out. | 568 // the user out. |
563 SignOut(); | 569 SignOut(); |
564 } | 570 } |
565 } | 571 } |
566 | 572 |
567 AboutSigninInternals* SigninManager::about_signin_internals() { | 573 AboutSigninInternals* SigninManager::about_signin_internals() { |
568 return &about_signin_internals_; | 574 return &about_signin_internals_; |
569 } | 575 } |
OLD | NEW |