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

Side by Side Diff: chrome/browser/signin/token_service.cc

Issue 10656033: [sync] Automatic bootstrapping of Sync on Win 8 from cached credentials (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/token_service.h" 5 #include "chrome/browser/signin/token_service.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "chrome/browser/prefs/pref_service.h" 10 #include "chrome/browser/prefs/pref_service.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 116 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
117 credentials_ = credentials; 117 credentials_ = credentials;
118 118
119 SaveAuthTokenToDB(GaiaConstants::kGaiaLsid, credentials.lsid); 119 SaveAuthTokenToDB(GaiaConstants::kGaiaLsid, credentials.lsid);
120 SaveAuthTokenToDB(GaiaConstants::kGaiaSid, credentials.sid); 120 SaveAuthTokenToDB(GaiaConstants::kGaiaSid, credentials.sid);
121 121
122 // Cancel any currently running requests. 122 // Cancel any currently running requests.
123 for (size_t i = 0; i < arraysize(kServices); i++) { 123 for (size_t i = 0; i < arraysize(kServices); i++) {
124 fetchers_[i].reset(); 124 fetchers_[i].reset();
125 } 125 }
126
127 // Notify the CredentialCacheService that a new lsid and sid are available.
128 FireCredentialsUpdatedNotification(credentials.lsid, credentials.sid);
126 } 129 }
127 130
128 void TokenService::UpdateCredentialsWithOAuth2( 131 void TokenService::UpdateCredentialsWithOAuth2(
129 const GaiaAuthConsumer::ClientOAuthResult& credentials) { 132 const GaiaAuthConsumer::ClientOAuthResult& credentials) {
130 // Will be implemented once the ClientOAuth signin is complete. Not called 133 // Will be implemented once the ClientOAuth signin is complete. Not called
131 // yet by any code. 134 // yet by any code.
132 NOTREACHED(); 135 NOTREACHED();
133 } 136 }
134 137
135 138
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 const std::string& TokenService::GetOAuth2LoginAccessToken() const { 222 const std::string& TokenService::GetOAuth2LoginAccessToken() const {
220 return GetTokenForService(GaiaConstants::kGaiaOAuth2LoginAccessToken); 223 return GetTokenForService(GaiaConstants::kGaiaOAuth2LoginAccessToken);
221 } 224 }
222 225
223 // static 226 // static
224 void TokenService::GetServiceNamesForTesting(std::vector<std::string>* names) { 227 void TokenService::GetServiceNamesForTesting(std::vector<std::string>* names) {
225 names->resize(arraysize(kServices)); 228 names->resize(arraysize(kServices));
226 std::copy(kServices, kServices + arraysize(kServices), names->begin()); 229 std::copy(kServices, kServices + arraysize(kServices), names->begin());
227 } 230 }
228 231
232 void TokenService::FireCredentialsUpdatedNotification(
233 const std::string& lsid,
234 const std::string& sid) {
235 CredentialsUpdatedDetails details(lsid, sid);
236 content::NotificationService::current()->Notify(
237 chrome::NOTIFICATION_TOKEN_SERVICE_CREDENTIALS_UPDATED,
238 content::Source<TokenService>(this),
239 content::Details<const CredentialsUpdatedDetails>(&details));
240 }
241
229 // Note that this can fire twice or more for any given service. 242 // Note that this can fire twice or more for any given service.
230 // It can fire once from the DB read, and then once from the initial 243 // It can fire once from the DB read, and then once from the initial
231 // fetcher. Future fetches can cause more notification firings. 244 // fetcher. Future fetches can cause more notification firings.
232 // The DB read will not however fire a notification if the fetcher 245 // The DB read will not however fire a notification if the fetcher
233 // returned first. So it's always safe to use the latest notification. 246 // returned first. So it's always safe to use the latest notification.
234 void TokenService::FireTokenAvailableNotification( 247 void TokenService::FireTokenAvailableNotification(
235 const std::string& service, 248 const std::string& service,
236 const std::string& auth_token) { 249 const std::string& auth_token) {
237 250
238 TokenAvailableDetails details(service, auth_token); 251 TokenAvailableDetails details(service, auth_token);
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 } 401 }
389 402
390 void TokenService::Observe(int type, 403 void TokenService::Observe(int type,
391 const content::NotificationSource& source, 404 const content::NotificationSource& source,
392 const content::NotificationDetails& details) { 405 const content::NotificationDetails& details) {
393 DCHECK_EQ(type, chrome::NOTIFICATION_TOKEN_UPDATED); 406 DCHECK_EQ(type, chrome::NOTIFICATION_TOKEN_UPDATED);
394 TokenAvailableDetails* tok_details = 407 TokenAvailableDetails* tok_details =
395 content::Details<TokenAvailableDetails>(details).ptr(); 408 content::Details<TokenAvailableDetails>(details).ptr();
396 OnIssueAuthTokenSuccess(tok_details->service(), tok_details->token()); 409 OnIssueAuthTokenSuccess(tok_details->service(), tok_details->token());
397 } 410 }
OLDNEW
« no previous file with comments | « chrome/browser/signin/token_service.h ('k') | chrome/browser/sync/credential_cache_service_factory_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698