OLD | NEW |
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/account_reconcilor.h" | 5 #include "components/signin/core/browser/account_reconcilor.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
597 // tokens individually is done before proceeding with reconciliation. | 597 // tokens individually is done before proceeding with reconciliation. |
598 if (!are_gaia_accounts_set_ || !AreAllRefreshTokensChecked()) | 598 if (!are_gaia_accounts_set_ || !AreAllRefreshTokensChecked()) |
599 return; | 599 return; |
600 | 600 |
601 VLOG(1) << "AccountReconcilor::FinishReconcile"; | 601 VLOG(1) << "AccountReconcilor::FinishReconcile"; |
602 | 602 |
603 DeleteFetchers(); | 603 DeleteFetchers(); |
604 | 604 |
605 DCHECK(add_to_cookie_.empty()); | 605 DCHECK(add_to_cookie_.empty()); |
606 DCHECK(add_to_chrome_.empty()); | 606 DCHECK(add_to_chrome_.empty()); |
| 607 int number_gaia_accounts = gaia_accounts_.size(); |
607 bool are_primaries_equal = | 608 bool are_primaries_equal = |
608 gaia_accounts_.size() > 0 && | 609 number_gaia_accounts > 0 && |
609 gaia::AreEmailsSame(primary_account_, gaia_accounts_[0].first); | 610 gaia::AreEmailsSame(primary_account_, gaia_accounts_[0].first); |
610 | 611 |
| 612 |
611 if (are_primaries_equal) { | 613 if (are_primaries_equal) { |
612 // Determine if we need to merge accounts from gaia cookie to chrome. | 614 // Determine if we need to merge accounts from gaia cookie to chrome. |
613 for (size_t i = 0; i < gaia_accounts_.size(); ++i) { | 615 for (size_t i = 0; i < gaia_accounts_.size(); ++i) { |
614 const std::string& gaia_account = gaia_accounts_[i].first; | 616 const std::string& gaia_account = gaia_accounts_[i].first; |
615 if (gaia_accounts_[i].second && | 617 if (gaia_accounts_[i].second && |
616 valid_chrome_accounts_.find(gaia_account) == | 618 valid_chrome_accounts_.find(gaia_account) == |
617 valid_chrome_accounts_.end()) { | 619 valid_chrome_accounts_.end()) { |
618 add_to_chrome_.push_back(std::make_pair(gaia_account, i)); | 620 add_to_chrome_.push_back(std::make_pair(gaia_account, i)); |
619 } | 621 } |
620 } | 622 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
668 add_to_chrome_copy.begin(); | 670 add_to_chrome_copy.begin(); |
669 i != add_to_chrome_copy.end(); | 671 i != add_to_chrome_copy.end(); |
670 ++i) { | 672 ++i) { |
671 PerformAddToChromeAction(i->first, i->second); | 673 PerformAddToChromeAction(i->first, i->second); |
672 } | 674 } |
673 | 675 |
674 signin_metrics::LogSigninAccountReconciliation(valid_chrome_accounts_.size(), | 676 signin_metrics::LogSigninAccountReconciliation(valid_chrome_accounts_.size(), |
675 added_to_cookie, | 677 added_to_cookie, |
676 add_to_chrome_.size(), | 678 add_to_chrome_.size(), |
677 are_primaries_equal, | 679 are_primaries_equal, |
678 first_execution_); | 680 first_execution_, |
| 681 number_gaia_accounts); |
679 first_execution_ = false; | 682 first_execution_ = false; |
680 CalculateIfReconcileIsDone(); | 683 CalculateIfReconcileIsDone(); |
681 ScheduleStartReconcileIfChromeAccountsChanged(); | 684 ScheduleStartReconcileIfChromeAccountsChanged(); |
682 } | 685 } |
683 | 686 |
684 void AccountReconcilor::AbortReconcile() { | 687 void AccountReconcilor::AbortReconcile() { |
685 VLOG(1) << "AccountReconcilor::AbortReconcile: we'll try again later"; | 688 VLOG(1) << "AccountReconcilor::AbortReconcile: we'll try again later"; |
686 DeleteFetchers(); | 689 DeleteFetchers(); |
687 add_to_cookie_.clear(); | 690 add_to_cookie_.clear(); |
688 add_to_chrome_.clear(); | 691 add_to_chrome_.clear(); |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 | 777 |
775 void AccountReconcilor::HandleRefreshTokenFetched( | 778 void AccountReconcilor::HandleRefreshTokenFetched( |
776 const std::string& account_id, | 779 const std::string& account_id, |
777 const std::string& refresh_token) { | 780 const std::string& refresh_token) { |
778 if (!refresh_token.empty()) | 781 if (!refresh_token.empty()) |
779 PerformAddAccountToTokenService(account_id, refresh_token); | 782 PerformAddAccountToTokenService(account_id, refresh_token); |
780 | 783 |
781 MarkAccountAsAddedToChrome(account_id); | 784 MarkAccountAsAddedToChrome(account_id); |
782 CalculateIfReconcileIsDone(); | 785 CalculateIfReconcileIsDone(); |
783 } | 786 } |
OLD | NEW |