| Index: chrome/browser/signin/google_auto_login_helper.cc
|
| diff --git a/chrome/browser/signin/google_auto_login_helper.cc b/chrome/browser/signin/google_auto_login_helper.cc
|
| index 09cb58a6827945e21241be7770792d1d6e1c5ed4..4a53ef54332b6fb0d067609b945110503dd370c0 100644
|
| --- a/chrome/browser/signin/google_auto_login_helper.cc
|
| +++ b/chrome/browser/signin/google_auto_login_helper.cc
|
| @@ -20,8 +20,12 @@ void GoogleAutoLoginHelper::LogIn() {
|
| }
|
|
|
| void GoogleAutoLoginHelper::LogIn(const std::string& account_id) {
|
| - uber_token_fetcher_.reset(new UbertokenFetcher(profile_, this));
|
| - uber_token_fetcher_->StartFetchingToken(account_id);
|
| + if (uber_token_fetcher_.get()) {
|
| + accounts_.push_back(account_id);
|
| + } else {
|
| + uber_token_fetcher_.reset(new UbertokenFetcher(profile_, this));
|
| + uber_token_fetcher_->StartFetchingToken(account_id);
|
| + }
|
| }
|
|
|
| void GoogleAutoLoginHelper::OnUbertokenSuccess(const std::string& uber_token) {
|
| @@ -38,7 +42,13 @@ void GoogleAutoLoginHelper::OnUbertokenFailure(
|
|
|
| void GoogleAutoLoginHelper::OnMergeSessionSuccess(const std::string& data) {
|
| DVLOG(1) << "MergeSession successful." << data;
|
| - base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
|
| + if (accounts_.empty()) {
|
| + base::MessageLoop::current()->DeleteSoon(FROM_HERE, this);
|
| + } else {
|
| + uber_token_fetcher_.reset(new UbertokenFetcher(profile_, this));
|
| + uber_token_fetcher_->StartFetchingToken(accounts_.front());
|
| + accounts_.pop_front();
|
| + }
|
| }
|
|
|
| void GoogleAutoLoginHelper::OnMergeSessionFailure(
|
|
|