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

Unified Diff: components/signin/core/browser/gaia_cookie_manager_service.cc

Issue 1070563004: GCMS has automatic checks for CheckExternalConnections. It will be (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Only fetch ExternalCCResult once per PKS lifetime. Also, unit tests are totally radical. Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: components/signin/core/browser/gaia_cookie_manager_service.cc
diff --git a/components/signin/core/browser/gaia_cookie_manager_service.cc b/components/signin/core/browser/gaia_cookie_manager_service.cc
index 36ba75a96fa725b20ce0d281a7c88f1872f328e0..a25374d51aa704f0c630c457ddae5dbf93dcfb7c 100644
--- a/components/signin/core/browser/gaia_cookie_manager_service.cc
+++ b/components/signin/core/browser/gaia_cookie_manager_service.cc
@@ -265,8 +265,13 @@ void GaiaCookieManagerService::ExternalCcResultFetcher::
base::Time::Now() - m_external_cc_result_start_time_;
signin_metrics::LogExternalCcResultFetches(succeeded,
time_to_check_connections);
- FOR_EACH_OBSERVER(Observer, helper_->observer_list_,
- GetCheckConnectionInfoCompleted(succeeded));
+
+ helper_->external_cc_result_fetched_ = true;
+ // Since the ExternalCCResultFetcher is only Started in place of calling
+ // StartFetchingMergeSession, we can assume we need to call
+ // StartFetchingMergeSession. If this assumption becomes invalid, a Callback
+ // will need to be passed to Start() and Run() here.
+ helper_->StartFetchingMergeSession();
}
GaiaCookieManagerService::GaiaCookieManagerService(
@@ -278,7 +283,8 @@ GaiaCookieManagerService::GaiaCookieManagerService(
external_cc_result_fetcher_(this),
gaia_auth_fetcher_backoff_(&kBackoffPolicy),
gaia_auth_fetcher_retries_(0),
- source_(source) {
+ source_(source),
+ external_cc_result_fetched_(false) {
}
GaiaCookieManagerService::~GaiaCookieManagerService() {
@@ -387,11 +393,6 @@ void GaiaCookieManagerService::SignalComplete(
OnAddAccountToCookieCompleted(account_id, error));
}
-void GaiaCookieManagerService::StartFetchingExternalCcResult() {
- if (!external_cc_result_fetcher_.IsRunning())
- external_cc_result_fetcher_.Start();
-}
-
void GaiaCookieManagerService::StartLogOutUrlFetch() {
DCHECK(requests_.front().request_type() == GaiaCookieRequestType::LOG_OUT);
VLOG(1) << "GaiaCookieManagerService::StartLogOutUrlFetch";
@@ -405,10 +406,19 @@ void GaiaCookieManagerService::StartLogOutUrlFetch() {
void GaiaCookieManagerService::OnUbertokenSuccess(
const std::string& uber_token) {
+ DCHECK(requests_.front().request_type() ==
+ GaiaCookieRequestType::ADD_ACCOUNT);
VLOG(1) << "GaiaCookieManagerService::OnUbertokenSuccess"
<< " account=" << requests_.front().account_id();
gaia_auth_fetcher_retries_ = 0;
uber_token_ = uber_token;
+
+ if (!external_cc_result_fetched_ &&
+ !external_cc_result_fetcher_.IsRunning()) {
+ external_cc_result_fetcher_.Start();
+ return;
+ }
+
StartFetchingMergeSession();
}
@@ -469,8 +479,6 @@ void GaiaCookieManagerService::StartFetchingMergeSession() {
new GaiaAuthFetcher(this, source_,
signin_client_->GetURLRequestContext()));
- // It's possible that not all external checks have completed.
- // GetExternalCcResult() returns results for those that have.
gaia_auth_fetcher_->StartMergeSession(uber_token_,
external_cc_result_fetcher_.GetExternalCcResult());
}

Powered by Google App Engine
This is Rietveld 408576698