diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-12 09:07:38 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-12 09:07:38 +0000 |
commit | 4bc73b4934c557a814583b8f800aab024a700234 (patch) | |
tree | 50457e6428934743b8693fae349c88fb7b1a466a /chrome/browser/sync/notifier/chrome_invalidation_client.cc | |
parent | 05b14b552fa44d27b7f0d12c19f9a39064c85868 (diff) | |
download | chromium_src-4bc73b4934c557a814583b8f800aab024a700234.zip chromium_src-4bc73b4934c557a814583b8f800aab024a700234.tar.gz chromium_src-4bc73b4934c557a814583b8f800aab024a700234.tar.bz2 |
[Sync] Respect the is_transient flag for invalidation registration failure
BUG=Internal bug 5429495
TEST=
Review URL: http://codereview.chromium.org/8199027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105045 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 | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/chrome/browser/sync/notifier/chrome_invalidation_client.cc b/chrome/browser/sync/notifier/chrome_invalidation_client.cc index 8c70c08..3aabc66 100644 --- a/chrome/browser/sync/notifier/chrome_invalidation_client.cc +++ b/chrome/browser/sync/notifier/chrome_invalidation_client.cc @@ -283,9 +283,17 @@ void ChromeInvalidationClient::InformRegistrationFailure( return; } - // We don't care about |unknown_hint|; we let - // |registration_manager_| handle the registration backoff policy. - registration_manager_->MarkRegistrationLost(model_type); + if (is_transient) { + // We don't care about |unknown_hint|; we let + // |registration_manager_| handle the registration backoff policy. + registration_manager_->MarkRegistrationLost(model_type); + } else { + // Non-transient failures are permanent, so block any future + // registration requests for |model_type|. (This happens if the + // server doesn't recognize the data type, which could happen for + // brand-new data types.) + registration_manager_->DisableType(model_type); + } } void ChromeInvalidationClient::ReissueRegistrations( |