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

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

Issue 2704403002: Avoid re-starting a ExternalCCResultFetcher if a previous has finished or timed out. (Closed)
Patch Set: Remove retry logic from the ExternalCcResultFetcher Created 3 years, 9 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
« no previous file with comments | « components/signin/core/browser/gaia_cookie_manager_service.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 28f30f1d2ffab1aa02322776bfcc0253688d930f..7d42904fcf617429495fa9aba5ce53e9c53e68b2 100644
--- a/components/signin/core/browser/gaia_cookie_manager_service.cc
+++ b/components/signin/core/browser/gaia_cookie_manager_service.cc
@@ -57,6 +57,7 @@ const net::BackoffEntry::Policy kBackoffPolicy = {
false,
};
+// The maximum number of retries for a fetcher used in this class.
const int kMaxFetcherRetries = 8;
// Name of the GAIA cookie that is being observed to detect when available
@@ -130,6 +131,7 @@ GaiaCookieManagerService::ExternalCcResultFetcher::GetExternalCcResult() {
}
void GaiaCookieManagerService::ExternalCcResultFetcher::Start() {
+ DCHECK(!helper_->external_cc_result_fetched_);
m_external_cc_result_start_time_ = base::Time::Now();
CleanupTransientState();
@@ -150,7 +152,8 @@ void GaiaCookieManagerService::ExternalCcResultFetcher::Start() {
}
bool GaiaCookieManagerService::ExternalCcResultFetcher::IsRunning() {
- return helper_->gaia_auth_fetcher_ || fetchers_.size() > 0u;
+ return helper_->gaia_auth_fetcher_ || fetchers_.size() > 0u ||
+ timer_.IsRunning();
Roger Tawa OOO till Jul 10th 2017/03/10 16:48:51 Since there are no longer retries, this change is
msarda 2017/03/10 16:53:20 This fetcher is running as long as the timer did n
}
void GaiaCookieManagerService::ExternalCcResultFetcher::TimeoutForTests() {
@@ -159,8 +162,6 @@ void GaiaCookieManagerService::ExternalCcResultFetcher::TimeoutForTests() {
void GaiaCookieManagerService::ExternalCcResultFetcher::
OnGetCheckConnectionInfoSuccess(const std::string& data) {
- helper_->fetcher_backoff_.InformOfRequest(true);
- gaia_auth_fetcher_timer_.Stop();
std::unique_ptr<base::Value> value = base::JSONReader::Read(data);
const base::ListValue* list;
if (!value || !value->GetAsList(&list)) {
@@ -195,15 +196,17 @@ void GaiaCookieManagerService::ExternalCcResultFetcher::
void GaiaCookieManagerService::ExternalCcResultFetcher::
OnGetCheckConnectionInfoError(const GoogleServiceAuthError& error) {
- if (++helper_->fetcher_retries_ < kMaxFetcherRetries &&
- error.IsTransientError()) {
- helper_->fetcher_backoff_.InformOfRequest(false);
- gaia_auth_fetcher_timer_.Start(
- FROM_HERE, helper_->fetcher_backoff_.GetTimeUntilRelease(),
- this, &GaiaCookieManagerService::ExternalCcResultFetcher::Start);
- return;
- }
-
+ VLOG(1) << "GaiaCookieManagerService::ExternalCcResultFetcher::"
+ << "OnGetCheckConnectionInfoError " << error.ToString();
+
+ // Chrome does not have any retry logic for fetching ExternalCcResult. The
+ // ExternalCcResult is only used to inform Gaia that Chrome has already
+ // checked the connection to other sites.
+ //
+ // In case fetching the ExternalCcResult fails:
+ // * The result of merging accounts to Gaia cookies will not be affected.
+ // * Gaia will need make its own call about whether to check them itself,
+ // of make some other assumptions.
CleanupTransientState();
GetCheckConnectionInfoCompleted(false);
}
@@ -256,6 +259,7 @@ void GaiaCookieManagerService::ExternalCcResultFetcher::OnURLFetchComplete(
}
void GaiaCookieManagerService::ExternalCcResultFetcher::Timeout() {
+ VLOG(1) << " GaiaCookieManagerService::ExternalCcResultFetcher::Timeout";
CleanupTransientState();
GetCheckConnectionInfoCompleted(false);
}
« no previous file with comments | « components/signin/core/browser/gaia_cookie_manager_service.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698