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

Unified Diff: sync/engine/model_type_sync_proxy_impl.cc

Issue 442623002: Revert of sync: Add non-blocking type encryption support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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/engine/model_type_sync_proxy_impl.h ('k') | sync/engine/model_type_sync_proxy_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/engine/model_type_sync_proxy_impl.cc
diff --git a/sync/engine/model_type_sync_proxy_impl.cc b/sync/engine/model_type_sync_proxy_impl.cc
index 7ea5d526214411fa504fb60767b137c325ee1553..7b2148ace0c6fec764697d8b2699d5afbc5b1458 100644
--- a/sync/engine/model_type_sync_proxy_impl.cc
+++ b/sync/engine/model_type_sync_proxy_impl.cc
@@ -18,7 +18,6 @@
is_preferred_(false),
is_connected_(false),
entities_deleter_(&entities_),
- pending_updates_map_deleter_(&pending_updates_map_),
weak_ptr_factory_for_ui_(this),
weak_ptr_factory_for_sync_(this) {
}
@@ -52,12 +51,10 @@
data_type_state_.progress_marker.set_data_type_id(
GetSpecificsFieldNumberFromModelType(type_));
- UpdateResponseDataList saved_pending_updates = GetPendingUpdates();
sync_context_proxy_ = sync_context_proxy.Pass();
sync_context_proxy_->ConnectTypeToSync(
GetModelType(),
data_type_state_,
- saved_pending_updates,
weak_ptr_factory_for_sync_.GetWeakPtr());
}
@@ -183,18 +180,16 @@
} else {
it->second->ReceiveCommitResponse(response_data.id,
response_data.sequence_number,
- response_data.response_version,
- data_type_state_.encryption_key_name);
+ response_data.response_version);
}
}
}
void ModelTypeSyncProxyImpl::OnUpdateReceived(
const DataTypeState& data_type_state,
- const UpdateResponseDataList& response_list,
- const UpdateResponseDataList& pending_updates) {
- bool got_new_encryption_requirements = data_type_state_.encryption_key_name !=
- data_type_state.encryption_key_name;
+ 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;
@@ -203,14 +198,6 @@
++list_it) {
const UpdateResponseData& response_data = *list_it;
const std::string& client_tag_hash = response_data.client_tag_hash;
-
- UpdateMap::iterator old_it = pending_updates_map_.find(client_tag_hash);
- if (old_it != pending_updates_map_.end()) {
- // If we're being asked to apply an update to this entity, this overrides
- // the previous pending updates.
- delete old_it->second;
- pending_updates_map_.erase(old_it);
- }
EntityMap::iterator it = entities_.find(client_tag_hash);
if (it == entities_.end()) {
@@ -222,74 +209,22 @@
response_data.specifics,
response_data.deleted,
response_data.ctime,
- response_data.mtime,
- response_data.encryption_key_name);
+ response_data.mtime);
entities_.insert(std::make_pair(client_tag_hash, entity.release()));
} else {
ModelTypeEntity* entity = it->second;
entity->ApplyUpdateFromServer(response_data.response_version,
response_data.deleted,
response_data.specifics,
- response_data.mtime,
- response_data.encryption_key_name);
-
+ response_data.mtime);
// TODO: Do something special when conflicts are detected.
}
-
- // If the received entity has out of date encryption, we schedule another
- // commit to fix it.
- if (data_type_state_.encryption_key_name !=
- response_data.encryption_key_name) {
- EntityMap::iterator it2 = entities_.find(client_tag_hash);
- it2->second->UpdateDesiredEncryptionKey(
- data_type_state_.encryption_key_name);
- }
- }
-
- // Save pending updates in the appropriate data structure.
- for (UpdateResponseDataList::const_iterator list_it = pending_updates.begin();
- list_it != pending_updates.end();
- ++list_it) {
- const UpdateResponseData& update = *list_it;
- const std::string& client_tag_hash = update.client_tag_hash;
-
- UpdateMap::iterator lookup_it = pending_updates_map_.find(client_tag_hash);
- if (lookup_it == pending_updates_map_.end()) {
- pending_updates_map_.insert(
- std::make_pair(client_tag_hash, new UpdateResponseData(update)));
- } else if (lookup_it->second->response_version <= update.response_version) {
- delete lookup_it->second;
- pending_updates_map_.erase(lookup_it);
- pending_updates_map_.insert(
- std::make_pair(client_tag_hash, new UpdateResponseData(update)));
- } else {
- // Received update is stale, do not overwrite existing.
- }
- }
-
- if (got_new_encryption_requirements) {
- for (EntityMap::iterator it = entities_.begin(); it != entities_.end();
- ++it) {
- it->second->UpdateDesiredEncryptionKey(
- data_type_state_.encryption_key_name);
- }
- }
-
- // We may have new reasons to commit by the time this function is done.
- FlushPendingCommitRequests();
+ }
+
+ if (initial_sync_just_finished)
+ FlushPendingCommitRequests();
// TODO: Inform the model of the new or updated data.
- // TODO: Persist the new data on disk.
-}
-
-UpdateResponseDataList ModelTypeSyncProxyImpl::GetPendingUpdates() {
- UpdateResponseDataList pending_updates_list;
- for (UpdateMap::const_iterator it = pending_updates_map_.begin();
- it != pending_updates_map_.end();
- ++it) {
- pending_updates_list.push_back(*it->second);
- }
- return pending_updates_list;
}
void ModelTypeSyncProxyImpl::ClearTransientSyncState() {
@@ -304,7 +239,7 @@
++it) {
it->second->ClearSyncState();
}
- STLDeleteValues(&pending_updates_map_);
+
data_type_state_ = DataTypeState();
}
« no previous file with comments | « sync/engine/model_type_sync_proxy_impl.h ('k') | sync/engine/model_type_sync_proxy_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698