| Index: sync/engine/model_type_sync_proxy_impl.h
|
| diff --git a/sync/engine/model_type_sync_proxy_impl.h b/sync/engine/model_type_sync_proxy_impl.h
|
| index 2390eda072e0b8840604c118101b5af0d03b56dc..f160669f19faddf067dd757797d95d5c3b6a45c7 100644
|
| --- a/sync/engine/model_type_sync_proxy_impl.h
|
| +++ b/sync/engine/model_type_sync_proxy_impl.h
|
| @@ -73,7 +73,16 @@ class SYNC_EXPORT_PRIVATE ModelTypeSyncProxyImpl : base::NonThreadSafe {
|
| // Informs this object that there are some incoming updates is should
|
| // handle.
|
| void OnUpdateReceived(const DataTypeState& type_state,
|
| - const UpdateResponseDataList& response_list);
|
| + const UpdateResponseDataList& response_list,
|
| + const UpdateResponseDataList& pending_updates);
|
| +
|
| + // Returns the list of pending updates.
|
| + //
|
| + // This is used as a helper function, but it's public mainly for testing.
|
| + // The current test harness setup doesn't allow us to test the data that the
|
| + // proxy sends to the worker during initialization, so we use this to inspect
|
| + // its state instead.
|
| + UpdateResponseDataList GetPendingUpdates();
|
|
|
| // Returns the long-lived WeakPtr that is intended to be registered with the
|
| // ProfileSyncService.
|
| @@ -81,6 +90,7 @@ class SYNC_EXPORT_PRIVATE ModelTypeSyncProxyImpl : base::NonThreadSafe {
|
|
|
| private:
|
| typedef std::map<std::string, ModelTypeEntity*> EntityMap;
|
| + typedef std::map<std::string, UpdateResponseData*> UpdateMap;
|
|
|
| // Sends all commit requests that are due to be sent to the sync thread.
|
| void FlushPendingCommitRequests();
|
| @@ -123,6 +133,12 @@ class SYNC_EXPORT_PRIVATE ModelTypeSyncProxyImpl : base::NonThreadSafe {
|
| EntityMap entities_;
|
| STLValueDeleter<EntityMap> entities_deleter_;
|
|
|
| + // A set of updates that can not be applied at this time. These are never
|
| + // used by the model. They are kept here only so we can save and restore
|
| + // them across restarts, and keep them in sync with our progress markers.
|
| + UpdateMap pending_updates_map_;
|
| + STLValueDeleter<UpdateMap> pending_updates_map_deleter_;
|
| +
|
| // We use two different WeakPtrFactories because we want the pointers they
|
| // issue to have different lifetimes. When asked to disconnect from the sync
|
| // thread, we want to make sure that no tasks generated as part of the
|
|
|