Chromium Code Reviews| 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 874444ba1b552a8ddff4779b8f9cb8734e4c1799..6a85ad0ed0f7f3883f3840269293dd577c289dab 100644 |
| --- a/sync/internal_api/sync_manager_impl.cc |
| +++ b/sync/internal_api/sync_manager_impl.cc |
| @@ -1247,13 +1247,9 @@ void SyncManagerImpl::OnIncomingInvalidation( |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| const ModelTypeInvalidationMap& type_invalidation_map = |
| ObjectIdInvalidationMapToModelTypeInvalidationMap(invalidation_map); |
| - if (source == LOCAL_INVALIDATION) { |
| - allstatus_.IncrementNudgeCounter(NUDGE_SOURCE_LOCAL_REFRESH); |
| - scheduler_->ScheduleNudgeWithStatesAsync( |
| - TimeDelta::FromMilliseconds(kSyncRefreshDelayMsec), |
| - NUDGE_SOURCE_LOCAL_REFRESH, |
| - type_invalidation_map, FROM_HERE); |
| - } else if (!type_invalidation_map.empty()) { |
| + if (type_invalidation_map.empty()) { |
| + LOG(WARNING) << "Sync received invalidation without any type information."; |
| + } else { |
| allstatus_.IncrementNudgeCounter(NUDGE_SOURCE_NOTIFICATION); |
| scheduler_->ScheduleNudgeWithStatesAsync( |
| TimeDelta::FromMilliseconds(kSyncSchedulerDelayMsec), |
| @@ -1262,8 +1258,6 @@ void SyncManagerImpl::OnIncomingInvalidation( |
| allstatus_.IncrementNotificationsReceived(); |
| UpdateNotificationInfo(type_invalidation_map); |
| debug_info_event_listener_.OnIncomingNotification(type_invalidation_map); |
| - } else { |
| - LOG(WARNING) << "Sync received invalidation without any type information."; |
| } |
| if (js_event_handler_.IsInitialized()) { |
| @@ -1277,8 +1271,36 @@ void SyncManagerImpl::OnIncomingInvalidation( |
| ModelTypeToString(it->first); |
| changed_types->Append(Value::CreateStringValue(model_type_str)); |
| } |
| - details.SetString("source", (source == LOCAL_INVALIDATION) ? |
| - "LOCAL_INVALIDATION" : "REMOTE_INVALIDATION"); |
| + details.SetString("source", "REMOTE_INVALIDATION"); |
| + js_event_handler_.Call(FROM_HERE, |
| + &JsEventHandler::HandleJsEvent, |
| + "onIncomingNotification", |
| + JsEventDetails(&details)); |
| + } |
| +} |
| + |
| +void SyncManagerImpl::RefreshTypes(ModelTypeSet types) { |
| + DCHECK(thread_checker_.CalledOnValidThread()); |
| + const ModelTypeInvalidationMap& type_invalidation_map = |
| + ModelTypeSetToInvalidationMap(types, ""); |
|
Nicolas Zea
2013/01/28 23:48:43
handle the empty type invalidation map case here t
rlarocque
2013/01/29 18:48:58
Fixed. I'm not sure that it's necessary, but it c
|
| + allstatus_.IncrementNudgeCounter(NUDGE_SOURCE_LOCAL_REFRESH); |
| + scheduler_->ScheduleNudgeWithStatesAsync( |
| + TimeDelta::FromMilliseconds(kSyncRefreshDelayMsec), |
| + NUDGE_SOURCE_LOCAL_REFRESH, |
| + type_invalidation_map, FROM_HERE); |
| + |
| + if (js_event_handler_.IsInitialized()) { |
| + DictionaryValue details; |
| + ListValue* changed_types = new 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); |
| + changed_types->Append(Value::CreateStringValue(model_type_str)); |
| + } |
| + details.SetString("source", "LOCAL_INVALIDATION"); |
| js_event_handler_.Call(FROM_HERE, |
| &JsEventHandler::HandleJsEvent, |
| "onIncomingNotification", |