| Index: sync/engine/non_blocking_type_processor.cc
|
| diff --git a/sync/engine/non_blocking_type_processor.cc b/sync/engine/non_blocking_type_processor.cc
|
| index 0aaead452cf5f34febe2c9b2b1a536fa8e6b3f0e..c1982b3ec9f002cd2050cab14237d4e92aab39f3 100644
|
| --- a/sync/engine/non_blocking_type_processor.cc
|
| +++ b/sync/engine/non_blocking_type_processor.cc
|
| @@ -51,7 +51,6 @@ void NonBlockingTypeProcessor::Enable(
|
| // TODO(rlarocque): At some point, this should be loaded from storage.
|
| data_type_state_.progress_marker.set_data_type_id(
|
| GetSpecificsFieldNumberFromModelType(type_));
|
| - data_type_state_.next_client_id = 0;
|
|
|
| sync_core_proxy_ = sync_core_proxy.Pass();
|
| sync_core_proxy_->ConnectTypeToCore(GetModelType(),
|
| @@ -142,6 +141,10 @@ void NonBlockingTypeProcessor::FlushPendingCommitRequests() {
|
| if (!IsConnected())
|
| return;
|
|
|
| + // Don't send anything if the type is not ready to handle commits.
|
| + if (!data_type_state_.initial_sync_done)
|
| + return;
|
| +
|
| // TODO(rlarocque): Do something smarter than iterate here.
|
| for (EntityMap::iterator it = entities_.begin(); it != entities_.end();
|
| ++it) {
|
| @@ -184,6 +187,9 @@ void NonBlockingTypeProcessor::OnCommitCompletion(
|
| void NonBlockingTypeProcessor::OnUpdateReceived(
|
| const DataTypeState& data_type_state,
|
| const UpdateResponseDataList& response_list) {
|
| + bool initial_sync_just_finished =
|
| + !data_type_state_.initial_sync_done && data_type_state.initial_sync_done;
|
| +
|
| data_type_state_ = data_type_state;
|
|
|
| for (UpdateResponseDataList::const_iterator list_it = response_list.begin();
|
| @@ -215,6 +221,9 @@ void NonBlockingTypeProcessor::OnUpdateReceived(
|
| }
|
| }
|
|
|
| + if (initial_sync_just_finished)
|
| + FlushPendingCommitRequests();
|
| +
|
| // TODO: Inform the model of the new or updated data.
|
| }
|
|
|
|
|