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

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

Issue 23382008: Making OAuth2TokenService multi-login aware, updating callers, minor fixes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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/oauth2_token_service.h" 5 #include "chrome/browser/signin/oauth2_token_service.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 } 322 }
323 323
324 void OAuth2TokenService::AddObserver(Observer* observer) { 324 void OAuth2TokenService::AddObserver(Observer* observer) {
325 observer_list_.AddObserver(observer); 325 observer_list_.AddObserver(observer);
326 } 326 }
327 327
328 void OAuth2TokenService::RemoveObserver(Observer* observer) { 328 void OAuth2TokenService::RemoveObserver(Observer* observer) {
329 observer_list_.RemoveObserver(observer); 329 observer_list_.RemoveObserver(observer);
330 } 330 }
331 331
332 bool OAuth2TokenService::RefreshTokenIsAvailable() { 332 bool OAuth2TokenService::RefreshTokenIsAvailable(
333 const std::string& account_id) {
333 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 334 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
334 return !GetRefreshToken().empty(); 335 return !GetRefreshToken(account_id).empty();
335 } 336 }
336 337
337 scoped_ptr<OAuth2TokenService::Request> OAuth2TokenService::StartRequest( 338 scoped_ptr<OAuth2TokenService::Request> OAuth2TokenService::StartRequest(
339 const std::string& account_id,
338 const OAuth2TokenService::ScopeSet& scopes, 340 const OAuth2TokenService::ScopeSet& scopes,
339 OAuth2TokenService::Consumer* consumer) { 341 OAuth2TokenService::Consumer* consumer) {
340 return StartRequestForClientWithContext( 342 return StartRequestForClientWithContext(
343 account_id,
341 GetRequestContext(), 344 GetRequestContext(),
342 GaiaUrls::GetInstance()->oauth2_chrome_client_id(), 345 GaiaUrls::GetInstance()->oauth2_chrome_client_id(),
343 GaiaUrls::GetInstance()->oauth2_chrome_client_secret(), 346 GaiaUrls::GetInstance()->oauth2_chrome_client_secret(),
344 scopes, 347 scopes,
345 consumer); 348 consumer);
346 } 349 }
347 350
348 scoped_ptr<OAuth2TokenService::Request> 351 scoped_ptr<OAuth2TokenService::Request>
349 OAuth2TokenService::StartRequestForClient( 352 OAuth2TokenService::StartRequestForClient(
353 const std::string& account_id,
350 const std::string& client_id, 354 const std::string& client_id,
351 const std::string& client_secret, 355 const std::string& client_secret,
352 const OAuth2TokenService::ScopeSet& scopes, 356 const OAuth2TokenService::ScopeSet& scopes,
353 OAuth2TokenService::Consumer* consumer) { 357 OAuth2TokenService::Consumer* consumer) {
354 return StartRequestForClientWithContext( 358 return StartRequestForClientWithContext(
359 account_id,
355 GetRequestContext(), 360 GetRequestContext(),
356 client_id, 361 client_id,
357 client_secret, 362 client_secret,
358 scopes, 363 scopes,
359 consumer); 364 consumer);
360 } 365 }
361 366
362 scoped_ptr<OAuth2TokenService::Request> 367 scoped_ptr<OAuth2TokenService::Request>
363 OAuth2TokenService::StartRequestWithContext( 368 OAuth2TokenService::StartRequestWithContext(
369 const std::string& account_id,
364 net::URLRequestContextGetter* getter, 370 net::URLRequestContextGetter* getter,
365 const ScopeSet& scopes, 371 const ScopeSet& scopes,
366 Consumer* consumer) { 372 Consumer* consumer) {
367 return StartRequestForClientWithContext( 373 return StartRequestForClientWithContext(
374 account_id,
368 getter, 375 getter,
369 GaiaUrls::GetInstance()->oauth2_chrome_client_id(), 376 GaiaUrls::GetInstance()->oauth2_chrome_client_id(),
370 GaiaUrls::GetInstance()->oauth2_chrome_client_secret(), 377 GaiaUrls::GetInstance()->oauth2_chrome_client_secret(),
371 scopes, 378 scopes,
372 consumer); 379 consumer);
373 } 380 }
374 381
375 scoped_ptr<OAuth2TokenService::Request> 382 scoped_ptr<OAuth2TokenService::Request>
376 OAuth2TokenService::StartRequestForClientWithContext( 383 OAuth2TokenService::StartRequestForClientWithContext(
384 const std::string& account_id,
377 net::URLRequestContextGetter* getter, 385 net::URLRequestContextGetter* getter,
378 const std::string& client_id, 386 const std::string& client_id,
379 const std::string& client_secret, 387 const std::string& client_secret,
380 const ScopeSet& scopes, 388 const ScopeSet& scopes,
381 Consumer* consumer) { 389 Consumer* consumer) {
382 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 390 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
383 391
384 scoped_ptr<RequestImpl> request(new RequestImpl(consumer)); 392 scoped_ptr<RequestImpl> request(new RequestImpl(consumer));
385 393
386 std::string refresh_token = GetRefreshToken(); 394 std::string refresh_token = GetRefreshToken(account_id);
387 if (refresh_token.empty()) { 395 if (refresh_token.empty()) {
388 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind( 396 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(
389 &RequestImpl::InformConsumer, 397 &RequestImpl::InformConsumer,
390 request->AsWeakPtr(), 398 request->AsWeakPtr(),
391 GoogleServiceAuthError( 399 GoogleServiceAuthError(
392 GoogleServiceAuthError::USER_NOT_SIGNED_UP), 400 GoogleServiceAuthError::USER_NOT_SIGNED_UP),
393 std::string(), 401 std::string(),
394 base::Time())); 402 base::Time()));
395 return request.PassAs<Request>(); 403 return request.PassAs<Request>();
396 } 404 }
397 405
398 if (HasCacheEntry(scopes)) 406 if (HasCacheEntry(scopes))
Andrew T Wilson (Slow) 2013/08/23 09:38:13 Don't we need to take the account_id down to the c
fgorski 2013/08/23 19:13:35 Waiting for a change from Zel to revamp the whole
399 return StartCacheLookupRequest(scopes, consumer); 407 return StartCacheLookupRequest(scopes, consumer);
400 408
401 // If there is already a pending fetcher for |scopes| and |refresh_token|, 409 // If there is already a pending fetcher for |scopes| and |refresh_token|,
402 // simply register this |request| for those results rather than starting 410 // simply register this |request| for those results rather than starting
403 // a new fetcher. 411 // a new fetcher.
404 FetchParameters fetch_parameters = std::make_pair(refresh_token, scopes); 412 FetchParameters fetch_parameters = std::make_pair(refresh_token, scopes);
405 std::map<FetchParameters, Fetcher*>::iterator iter = 413 std::map<FetchParameters, Fetcher*>::iterator iter =
406 pending_fetchers_.find(fetch_parameters); 414 pending_fetchers_.find(fetch_parameters);
407 if (iter != pending_fetchers_.end()) { 415 if (iter != pending_fetchers_.end()) {
408 iter->second->AddWaitingRequest(request->AsWeakPtr()); 416 iter->second->AddWaitingRequest(request->AsWeakPtr());
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 void OAuth2TokenService::FireRefreshTokenRevoked( 587 void OAuth2TokenService::FireRefreshTokenRevoked(
580 const std::string& account_id) { 588 const std::string& account_id) {
581 FOR_EACH_OBSERVER(Observer, observer_list_, 589 FOR_EACH_OBSERVER(Observer, observer_list_,
582 OnRefreshTokenRevoked(account_id)); 590 OnRefreshTokenRevoked(account_id));
583 } 591 }
584 592
585 void OAuth2TokenService::FireRefreshTokensLoaded() { 593 void OAuth2TokenService::FireRefreshTokensLoaded() {
586 FOR_EACH_OBSERVER(Observer, observer_list_, OnRefreshTokensLoaded()); 594 FOR_EACH_OBSERVER(Observer, observer_list_, OnRefreshTokensLoaded());
587 } 595 }
588 596
589 void OAuth2TokenService::FireRefreshTokensCleared() {
590 FOR_EACH_OBSERVER(Observer, observer_list_, OnRefreshTokensCleared());
591 }
592
593 int OAuth2TokenService::cache_size_for_testing() const { 597 int OAuth2TokenService::cache_size_for_testing() const {
594 return token_cache_.size(); 598 return token_cache_.size();
595 } 599 }
596 600
597 void OAuth2TokenService::set_max_authorization_token_fetch_retries_for_testing( 601 void OAuth2TokenService::set_max_authorization_token_fetch_retries_for_testing(
598 int max_retries) { 602 int max_retries) {
599 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 603 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
600 max_fetch_retry_num_ = max_retries; 604 max_fetch_retry_num_ = max_retries;
601 } 605 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698