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

Side by Side Diff: components/signin/core/browser/gaia_cookie_manager_service.cc

Issue 1162103003: ListAccounts will return the Gaia ID as well as the email of the account. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 6 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/signin/core/browser/gaia_cookie_manager_service.h" 5 #include "components/signin/core/browser/gaia_cookie_manager_service.h"
6 6
7 #include <queue> 7 #include <queue>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
11 #include "base/metrics/histogram_macros.h" 11 #include "base/metrics/histogram_macros.h"
12 #include "base/stl_util.h" 12 #include "base/stl_util.h"
13 #include "base/strings/string_util.h" 13 #include "base/strings/string_util.h"
14 #include "base/strings/stringprintf.h" 14 #include "base/strings/stringprintf.h"
15 #include "base/time/time.h" 15 #include "base/time/time.h"
16 #include "base/values.h" 16 #include "base/values.h"
17 #include "components/signin/core/browser/account_tracker_service.h"
17 #include "components/signin/core/browser/signin_metrics.h" 18 #include "components/signin/core/browser/signin_metrics.h"
18 #include "google_apis/gaia/gaia_auth_fetcher.h" 19 #include "google_apis/gaia/gaia_auth_fetcher.h"
19 #include "google_apis/gaia/gaia_auth_util.h"
20 #include "google_apis/gaia/gaia_constants.h" 20 #include "google_apis/gaia/gaia_constants.h"
21 #include "google_apis/gaia/gaia_urls.h" 21 #include "google_apis/gaia/gaia_urls.h"
22 #include "google_apis/gaia/oauth2_token_service.h" 22 #include "google_apis/gaia/oauth2_token_service.h"
23 #include "net/base/load_flags.h" 23 #include "net/base/load_flags.h"
24 #include "net/http/http_status_code.h" 24 #include "net/http/http_status_code.h"
25 #include "net/url_request/url_fetcher.h" 25 #include "net/url_request/url_fetcher.h"
26 #include "net/url_request/url_fetcher_delegate.h" 26 #include "net/url_request/url_fetcher_delegate.h"
27 27
28 namespace { 28 namespace {
29 29
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 const std::string& account_id, 331 const std::string& account_id,
332 const std::string& access_token) { 332 const std::string& access_token) {
333 VLOG(1) << "GaiaCookieManagerService::AddAccountToCookieWithToken: " 333 VLOG(1) << "GaiaCookieManagerService::AddAccountToCookieWithToken: "
334 << account_id; 334 << account_id;
335 DCHECK(!access_token.empty()); 335 DCHECK(!access_token.empty());
336 access_token_ = access_token; 336 access_token_ = access_token;
337 AddAccountToCookieInternal(account_id); 337 AddAccountToCookieInternal(account_id);
338 } 338 }
339 339
340 bool GaiaCookieManagerService::ListAccounts( 340 bool GaiaCookieManagerService::ListAccounts(
341 std::vector<std::pair<std::string,bool> >* accounts) { 341 std::vector<gaia::ListedAccount>* accounts) {
342 DCHECK(accounts); 342 DCHECK(accounts);
343 accounts->clear(); 343 accounts->clear();
344 344
345 // There is a fetch currently executing (the results being provided in the 345 // There is a fetch currently executing (the results being provided in the
346 // parameter don't align with the fetches that have been started), or the list 346 // parameter don't align with the fetches that have been started), or the list
347 // of accounts haven't been fetched even once. 347 // of accounts haven't been fetched even once.
348 if (!requests_.empty()) 348 if (!requests_.empty())
349 return false; 349 return false;
350 350
351 if (!list_accounts_fetched_once_) { 351 if (!list_accounts_fetched_once_) {
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 GaiaCookieRequestType::LIST_ACCOUNTS); 553 GaiaCookieRequestType::LIST_ACCOUNTS);
554 fetcher_backoff_.InformOfRequest(true); 554 fetcher_backoff_.InformOfRequest(true);
555 555
556 if (!gaia::ParseListAccountsData(data, &listed_accounts_)) { 556 if (!gaia::ParseListAccountsData(data, &listed_accounts_)) {
557 listed_accounts_.clear(); 557 listed_accounts_.clear();
558 OnListAccountsFailure(GoogleServiceAuthError( 558 OnListAccountsFailure(GoogleServiceAuthError(
559 GoogleServiceAuthError::UNEXPECTED_SERVICE_RESPONSE)); 559 GoogleServiceAuthError::UNEXPECTED_SERVICE_RESPONSE));
560 return; 560 return;
561 } 561 }
562 562
563 for (gaia::ListedAccount account : listed_accounts_) {
564 account.id = AccountTrackerService::PickAccountIdForAccount(
565 signin_client_->GetPrefs(), account.gaia_id, account.email);
566 }
567
563 list_accounts_fetched_once_ = true; 568 list_accounts_fetched_once_ = true;
564 HandleNextRequest(); 569 HandleNextRequest();
565 // HandleNextRequest before sending out the notification because some 570 // HandleNextRequest before sending out the notification because some
566 // services, in response to OnGaiaAccountsInCookieUpdated, may try in return 571 // services, in response to OnGaiaAccountsInCookieUpdated, may try in return
567 // to call ListAccounts, which would immediately return false if the 572 // to call ListAccounts, which would immediately return false if the
568 // ListAccounts request is still sitting in queue. 573 // ListAccounts request is still sitting in queue.
569 FOR_EACH_OBSERVER(Observer, observer_list_, 574 FOR_EACH_OBSERVER(Observer, observer_list_,
570 OnGaiaAccountsInCookieUpdated( 575 OnGaiaAccountsInCookieUpdated(
571 listed_accounts_, 576 listed_accounts_,
572 GoogleServiceAuthError(GoogleServiceAuthError::NONE))); 577 GoogleServiceAuthError(GoogleServiceAuthError::NONE)));
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 break; 704 break;
700 case GaiaCookieRequestType::LIST_ACCOUNTS: 705 case GaiaCookieRequestType::LIST_ACCOUNTS:
701 uber_token_fetcher_.reset(); 706 uber_token_fetcher_.reset();
702 signin_client_->DelayNetworkCall( 707 signin_client_->DelayNetworkCall(
703 base::Bind(&GaiaCookieManagerService::StartFetchingListAccounts, 708 base::Bind(&GaiaCookieManagerService::StartFetchingListAccounts,
704 base::Unretained(this))); 709 base::Unretained(this)));
705 break; 710 break;
706 }; 711 };
707 } 712 }
708 } 713 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698