diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-10 23:35:48 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-10 23:35:48 +0000 |
commit | b7af0f9a510d5bd372e3a589fb1ad2da3a2aeed1 (patch) | |
tree | 864b8fb2e53dbde99a5e38d1862e7a7617ba790d /chrome/browser/sync/notifier/chrome_invalidation_client.cc | |
parent | d6d8f719ce2e6c1483e085523ddb963eba1b6514 (diff) | |
download | chromium_src-b7af0f9a510d5bd372e3a589fb1ad2da3a2aeed1.zip chromium_src-b7af0f9a510d5bd372e3a589fb1ad2da3a2aeed1.tar.gz chromium_src-b7af0f9a510d5bd372e3a589fb1ad2da3a2aeed1.tar.bz2 |
[Sync] Refactor notification RegistrationManager, implement backoff
Currently, we retry immediately if we lose a registration, which can
cause problems if the failure is permanent. Exponential backoff should
avoid killing our notification servers.
BUG=75209
TEST=
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=77607
Review URL: http://codereview.chromium.org/6649010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77725 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/notifier/chrome_invalidation_client.cc')
-rw-r--r-- | chrome/browser/sync/notifier/chrome_invalidation_client.cc | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/chrome/browser/sync/notifier/chrome_invalidation_client.cc b/chrome/browser/sync/notifier/chrome_invalidation_client.cc index 0c38936..81614ae 100644 --- a/chrome/browser/sync/notifier/chrome_invalidation_client.cc +++ b/chrome/browser/sync/notifier/chrome_invalidation_client.cc @@ -159,9 +159,8 @@ void ChromeInvalidationClient::RegistrationStateChanged( } if (new_state != invalidation::RegistrationState_REGISTERED) { - // TODO(akalin): Figure out something else to do if the failure - // isn't transient. Even if it is transient, we may still want to - // add exponential back-off or limit the number of attempts. + // We don't care about |unknown_hint|; we let + // |registration_manager_| handle the registration backoff policy. registration_manager_->MarkRegistrationLost(model_type); } } @@ -175,21 +174,6 @@ void ChromeInvalidationClient::AllRegistrationsLost( RunAndDeleteClosure(callback); } -void ChromeInvalidationClient::RegistrationLost( - const invalidation::ObjectId& object_id, - invalidation::Closure* callback) { - DCHECK(non_thread_safe_.CalledOnValidThread()); - DCHECK(invalidation::IsCallbackRepeatable(callback)); - VLOG(1) << "RegistrationLost: " << ObjectIdToString(object_id); - syncable::ModelType model_type; - if (ObjectIdToRealModelType(object_id, &model_type)) { - registration_manager_->MarkRegistrationLost(model_type); - } else { - LOG(WARNING) << "Could not get object id model type; ignoring"; - } - RunAndDeleteClosure(callback); -} - void ChromeInvalidationClient::WriteState(const std::string& state) { DCHECK(non_thread_safe_.CalledOnValidThread()); CHECK(state_writer_); |