OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/sync/signin_manager.h" | 5 #include "chrome/browser/sync/signin_manager.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
9 #include "chrome/browser/net/gaia/token_service.h" | 9 #include "chrome/browser/net/gaia/token_service.h" |
10 #include "chrome/browser/prefs/pref_service.h" | 10 #include "chrome/browser/prefs/pref_service.h" |
(...skipping 20 matching lines...) Expand all Loading... |
31 PrefService::UNSYNCABLE_PREF); | 31 PrefService::UNSYNCABLE_PREF); |
32 user_prefs->RegisterStringPref(prefs::kGoogleServicesUsername, | 32 user_prefs->RegisterStringPref(prefs::kGoogleServicesUsername, |
33 "", | 33 "", |
34 PrefService::UNSYNCABLE_PREF); | 34 PrefService::UNSYNCABLE_PREF); |
35 user_prefs->RegisterBooleanPref(prefs::kAutologinEnabled, | 35 user_prefs->RegisterBooleanPref(prefs::kAutologinEnabled, |
36 true, | 36 true, |
37 PrefService::UNSYNCABLE_PREF); | 37 PrefService::UNSYNCABLE_PREF); |
38 } | 38 } |
39 | 39 |
40 void SigninManager::Initialize(Profile* profile) { | 40 void SigninManager::Initialize(Profile* profile) { |
| 41 fprintf(stderr, "%s\n", __func__); |
41 profile_ = profile; | 42 profile_ = profile; |
42 SetUsername(profile_->GetPrefs()->GetString(prefs::kGoogleServicesUsername)); | 43 SetUsername(profile_->GetPrefs()->GetString(prefs::kGoogleServicesUsername)); |
43 profile_->GetTokenService()->Initialize( | 44 profile_->GetTokenService()->Initialize( |
44 GaiaConstants::kChromeSource, profile_); | 45 GaiaConstants::kChromeSource, profile_); |
45 if (!GetUsername().empty()) { | 46 if (!GetUsername().empty()) { |
46 profile_->GetTokenService()->LoadTokensFromDB(); | 47 profile_->GetTokenService()->LoadTokensFromDB(); |
47 } | 48 } |
48 } | 49 } |
49 | 50 |
50 bool SigninManager::IsInitialized() const { | 51 bool SigninManager::IsInitialized() const { |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 #if !defined(OS_CHROMEOS) | 96 #if !defined(OS_CHROMEOS) |
96 // The Sign out should clear the token service credentials. | 97 // The Sign out should clear the token service credentials. |
97 // Note: In CHROMEOS we might have valid credentials but still need to | 98 // Note: In CHROMEOS we might have valid credentials but still need to |
98 // set up 2-factor authentication. | 99 // set up 2-factor authentication. |
99 DCHECK(!profile_->GetTokenService()->HasOAuthCredentials()); | 100 DCHECK(!profile_->GetTokenService()->HasOAuthCredentials()); |
100 #endif | 101 #endif |
101 } | 102 } |
102 | 103 |
103 // Users must always sign out before they sign in again. | 104 // Users must always sign out before they sign in again. |
104 void SigninManager::StartOAuthSignIn(const std::string& oauth1_request_token) { | 105 void SigninManager::StartOAuthSignIn(const std::string& oauth1_request_token) { |
| 106 fprintf(stderr, "%s\n", __func__); |
105 DCHECK(browser_sync::IsUsingOAuth()); | 107 DCHECK(browser_sync::IsUsingOAuth()); |
106 PrepareForOAuthSignin(); | 108 PrepareForOAuthSignin(); |
107 oauth1_request_token_.assign(oauth1_request_token); | 109 oauth1_request_token_.assign(oauth1_request_token); |
108 oauth_login_.reset(new GaiaOAuthFetcher(this, | 110 oauth_login_.reset(new GaiaOAuthFetcher(this, |
109 profile_->GetRequestContext(), | 111 profile_->GetRequestContext(), |
110 profile_, | 112 profile_, |
111 GaiaConstants::kSyncServiceOAuth)); | 113 GaiaConstants::kSyncServiceOAuth)); |
112 oauth_login_->StartOAuthGetAccessToken(oauth1_request_token_); | 114 oauth_login_->StartOAuthGetAccessToken(oauth1_request_token_); |
113 // TODO(rogerta?): Bug 92325: Expand Autologin to include OAuth signin | 115 // TODO(rogerta?): Bug 92325: Expand Autologin to include OAuth signin |
114 } | 116 } |
115 | 117 |
116 // Users must always sign out before they sign in again. | 118 // Users must always sign out before they sign in again. |
117 void SigninManager::StartSignIn(const std::string& username, | 119 void SigninManager::StartSignIn(const std::string& username, |
118 const std::string& password, | 120 const std::string& password, |
119 const std::string& login_token, | 121 const std::string& login_token, |
120 const std::string& login_captcha) { | 122 const std::string& login_captcha) { |
| 123 fprintf(stderr, "%s\n", __func__); |
121 DCHECK(!browser_sync::IsUsingOAuth()); | 124 DCHECK(!browser_sync::IsUsingOAuth()); |
122 PrepareForSignin(); | 125 PrepareForSignin(); |
123 username_.assign(username); | 126 username_.assign(username); |
124 password_.assign(password); | 127 password_.assign(password); |
125 | 128 |
126 client_login_.reset(new GaiaAuthFetcher(this, | 129 client_login_.reset(new GaiaAuthFetcher(this, |
127 GaiaConstants::kChromeSource, | 130 GaiaConstants::kChromeSource, |
128 profile_->GetRequestContext())); | 131 profile_->GetRequestContext())); |
129 client_login_->StartClientLogin(username, | 132 client_login_->StartClientLogin(username, |
130 password, | 133 password, |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 password_.clear(); | 176 password_.clear(); |
174 had_two_factor_error_ = false; | 177 had_two_factor_error_ = false; |
175 profile_->GetPrefs()->ClearPref(prefs::kGoogleServicesUsername); | 178 profile_->GetPrefs()->ClearPref(prefs::kGoogleServicesUsername); |
176 profile_->GetPrefs()->ClearPref(prefs::kSyncUsingOAuth); | 179 profile_->GetPrefs()->ClearPref(prefs::kSyncUsingOAuth); |
177 profile_->GetPrefs()->ScheduleSavePersistentPrefs(); | 180 profile_->GetPrefs()->ScheduleSavePersistentPrefs(); |
178 profile_->GetTokenService()->ResetCredentialsInMemory(); | 181 profile_->GetTokenService()->ResetCredentialsInMemory(); |
179 profile_->GetTokenService()->EraseTokensFromDB(); | 182 profile_->GetTokenService()->EraseTokensFromDB(); |
180 } | 183 } |
181 | 184 |
182 void SigninManager::OnClientLoginSuccess(const ClientLoginResult& result) { | 185 void SigninManager::OnClientLoginSuccess(const ClientLoginResult& result) { |
| 186 fprintf(stderr, "%s\n", __func__); |
183 DCHECK(!browser_sync::IsUsingOAuth()); | 187 DCHECK(!browser_sync::IsUsingOAuth()); |
184 last_result_ = result; | 188 last_result_ = result; |
185 // Make a request for the canonical email address. | 189 // Make a request for the canonical email address. |
186 client_login_->StartGetUserInfo(result.lsid, kGetInfoEmailKey); | 190 client_login_->StartGetUserInfo(result.lsid, kGetInfoEmailKey); |
187 } | 191 } |
188 | 192 |
189 // NOTE: GetUserInfo is a ClientLogin request similar to OAuth's userinfo | 193 // NOTE: GetUserInfo is a ClientLogin request similar to OAuth's userinfo |
190 void SigninManager::OnGetUserInfoSuccess(const std::string& key, | 194 void SigninManager::OnGetUserInfoSuccess(const std::string& key, |
191 const std::string& value) { | 195 const std::string& value) { |
| 196 fprintf(stderr, "%s\n", __func__); |
192 DCHECK(!browser_sync::IsUsingOAuth()); | 197 DCHECK(!browser_sync::IsUsingOAuth()); |
193 DCHECK(key == kGetInfoEmailKey); | 198 DCHECK(key == kGetInfoEmailKey); |
194 | 199 |
195 username_ = value; | 200 username_ = value; |
196 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, username_); | 201 profile_->GetPrefs()->SetString(prefs::kGoogleServicesUsername, username_); |
197 profile_->GetPrefs()->SetBoolean(prefs::kSyncUsingOAuth, false); | 202 profile_->GetPrefs()->SetBoolean(prefs::kSyncUsingOAuth, false); |
198 profile_->GetPrefs()->ScheduleSavePersistentPrefs(); | 203 profile_->GetPrefs()->ScheduleSavePersistentPrefs(); |
199 | 204 |
200 GoogleServiceSigninSuccessDetails details(username_, password_); | 205 GoogleServiceSigninSuccessDetails details(username_, password_); |
201 content::NotificationService::current()->Notify( | 206 content::NotificationService::current()->Notify( |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 profile_->GetRequestContext())); | 339 profile_->GetRequestContext())); |
335 } | 340 } |
336 | 341 |
337 client_login_->StartMergeSession(tok_details->token()); | 342 client_login_->StartMergeSession(tok_details->token()); |
338 | 343 |
339 // We only want to do this once per sign-in. | 344 // We only want to do this once per sign-in. |
340 CleanupNotificationRegistration(); | 345 CleanupNotificationRegistration(); |
341 } | 346 } |
342 #endif | 347 #endif |
343 } | 348 } |
OLD | NEW |