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

Unified Diff: sync/notifier/chrome_invalidation_client.cc

Issue 10824140: Add InvalidationStateTracker::Forget() to erase an entry from storage. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 4 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: sync/notifier/chrome_invalidation_client.cc
diff --git a/sync/notifier/chrome_invalidation_client.cc b/sync/notifier/chrome_invalidation_client.cc
index 6ec46595a0df5420ca9f347dc42252cc9779bf22..d50b1bcb2d9bdd8e0103e6beb7754dfed960257c 100644
--- a/sync/notifier/chrome_invalidation_client.cc
+++ b/sync/notifier/chrome_invalidation_client.cc
@@ -109,9 +109,8 @@ void ChromeInvalidationClient::UpdateRegisteredIds(const ObjectIdSet& ids) {
// working XMPP connection (as observed by us), so check it instead
// of GetState() (see http://crbug.com/139424).
if (ticl_state_ == NO_NOTIFICATION_ERROR && registration_manager_.get()) {
- registration_manager_->UpdateRegisteredIds(registered_ids_);
+ DoRegistrationUpdate();
}
- // TODO(akalin): Clear invalidation versions for unregistered types.
}
void ChromeInvalidationClient::Ready(
@@ -120,7 +119,7 @@ void ChromeInvalidationClient::Ready(
DCHECK_EQ(client, invalidation_client_.get());
ticl_state_ = NO_NOTIFICATION_ERROR;
EmitStateChange();
- registration_manager_->UpdateRegisteredIds(registered_ids_);
+ DoRegistrationUpdate();
}
void ChromeInvalidationClient::Invalidate(
@@ -285,6 +284,18 @@ void ChromeInvalidationClient::WriteState(const std::string& state) {
FROM_HERE, &InvalidationStateTracker::SetInvalidationState, state);
}
+void ChromeInvalidationClient::DoRegistrationUpdate() {
+ DCHECK(CalledOnValidThread());
+ const ObjectIdSet& unregistered_ids =
+ registration_manager_->UpdateRegisteredIds(registered_ids_);
+ for (ObjectIdSet::const_iterator it = unregistered_ids.begin();
+ it != unregistered_ids.end();
+ ++it) {
+ invalidation_state_tracker_.Call(
akalin 2012/08/22 19:57:30 resurrecting my old comment, make Forget take a se
dcheng 2012/08/24 01:35:25 Done.
+ FROM_HERE, &InvalidationStateTracker::Forget, *it);
+ }
+}
+
void ChromeInvalidationClient::StopForTest() {
DCHECK(CalledOnValidThread());
Stop();

Powered by Google App Engine
This is Rietveld 408576698