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

Unified Diff: sync/internal_api/sync_manager_impl.cc

Issue 23238005: sync: Remove ModelTypeInvalidationMap (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sort entries in gyp files Created 7 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
« no previous file with comments | « sync/internal_api/sync_manager_impl.h ('k') | sync/internal_api/sync_manager_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/internal_api/sync_manager_impl.cc
diff --git a/sync/internal_api/sync_manager_impl.cc b/sync/internal_api/sync_manager_impl.cc
index a541032691f0f7aa11aaa420185cc585d1a5b213..091ed289ea8ac08faf27f5bf64e6c2512c2d834e 100644
--- a/sync/internal_api/sync_manager_impl.cc
+++ b/sync/internal_api/sync_manager_impl.cc
@@ -20,7 +20,6 @@
#include "sync/engine/syncer_types.h"
#include "sync/internal_api/change_reorder_buffer.h"
#include "sync/internal_api/public/base/model_type.h"
-#include "sync/internal_api/public/base/model_type_invalidation_map.h"
#include "sync/internal_api/public/base_node.h"
#include "sync/internal_api/public/configure_reason.h"
#include "sync/internal_api/public/engine/polling_constants.h"
@@ -1152,12 +1151,15 @@ JsArgList SyncManagerImpl::GetChildNodeIds(const JsArgList& args) {
}
void SyncManagerImpl::UpdateNotificationInfo(
- const ModelTypeInvalidationMap& invalidation_map) {
- for (ModelTypeInvalidationMap::const_iterator it = invalidation_map.begin();
+ const ObjectIdInvalidationMap& invalidation_map) {
+ for (ObjectIdInvalidationMap::const_iterator it = invalidation_map.begin();
it != invalidation_map.end(); ++it) {
- NotificationInfo* info = &notification_info_map_[it->first];
- info->total_count++;
- info->payload = it->second.payload;
+ ModelType type = UNSPECIFIED;
+ if (ObjectIdToRealModelType(it->first, &type)) {
+ NotificationInfo* info = &notification_info_map_[type];
+ info->total_count++;
+ info->payload = it->second.payload;
+ }
}
}
@@ -1186,29 +1188,37 @@ void SyncManagerImpl::OnIncomingInvalidation(
const ObjectIdInvalidationMap& invalidation_map) {
DCHECK(thread_checker_.CalledOnValidThread());
- const ModelTypeInvalidationMap& type_invalidation_map =
- ObjectIdInvalidationMapToModelTypeInvalidationMap(invalidation_map);
- if (type_invalidation_map.empty()) {
+ // We should never receive IDs from non-sync objects.
+ ObjectIdSet ids = ObjectIdInvalidationMapToSet(invalidation_map);
+ for (ObjectIdSet::const_iterator it = ids.begin(); it != ids.end(); ++it) {
+ ModelType type;
+ if (!ObjectIdToRealModelType(*it, &type)) {
+ DLOG(WARNING) << "Notification has invalid id: " << ObjectIdToString(*it);
+ }
+ }
+
+ if (invalidation_map.empty()) {
LOG(WARNING) << "Sync received invalidation without any type information.";
} else {
allstatus_.IncrementNudgeCounter(NUDGE_SOURCE_NOTIFICATION);
scheduler_->ScheduleInvalidationNudge(
TimeDelta::FromMilliseconds(kSyncSchedulerDelayMsec),
- type_invalidation_map, FROM_HERE);
+ invalidation_map, FROM_HERE);
allstatus_.IncrementNotificationsReceived();
- UpdateNotificationInfo(type_invalidation_map);
- debug_info_event_listener_.OnIncomingNotification(type_invalidation_map);
+ UpdateNotificationInfo(invalidation_map);
+ debug_info_event_listener_.OnIncomingNotification(invalidation_map);
}
if (js_event_handler_.IsInitialized()) {
base::DictionaryValue details;
base::ListValue* changed_types = new base::ListValue();
details.Set("changedTypes", changed_types);
- for (ModelTypeInvalidationMap::const_iterator it =
- type_invalidation_map.begin(); it != type_invalidation_map.end();
- ++it) {
- const std::string& model_type_str =
- ModelTypeToString(it->first);
+ ObjectIdSet id_set = ObjectIdInvalidationMapToSet(invalidation_map);
+ ModelTypeSet nudged_types = ObjectIdSetToModelTypeSet(id_set);
+ DCHECK(!nudged_types.Empty());
+ for (ModelTypeSet::Iterator it = nudged_types.First();
+ it.Good(); it.Inc()) {
+ const std::string model_type_str = ModelTypeToString(it.Get());
changed_types->Append(new base::StringValue(model_type_str));
}
details.SetString("source", "REMOTE_INVALIDATION");
« no previous file with comments | « sync/internal_api/sync_manager_impl.h ('k') | sync/internal_api/sync_manager_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698