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

Side by Side Diff: components/sync/engine_impl/worker_entity_tracker.cc

Issue 2420213002: [USS] Show USS counters in Types tab (Closed)
Patch Set: rebase Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « components/sync/engine_impl/worker_entity_tracker.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/sync/engine_impl/worker_entity_tracker.h" 5 #include "components/sync/engine_impl/worker_entity_tracker.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 ack->specifics_hash = pending_commit_specifics_hash_; 121 ack->specifics_hash = pending_commit_specifics_hash_;
122 122
123 // Because an in-progress commit blocks the sync thread, we can assume that 123 // Because an in-progress commit blocks the sync thread, we can assume that
124 // the item we just committed successfully is exactly the one we have now. 124 // the item we just committed successfully is exactly the one we have now.
125 // Nothing changed it while the commit was happening. Since we're now in 125 // Nothing changed it while the commit was happening. Since we're now in
126 // sync with the server, we can clear the pending commit. 126 // sync with the server, we can clear the pending commit.
127 ClearPendingCommit(); 127 ClearPendingCommit();
128 } 128 }
129 129
130 void WorkerEntityTracker::ReceiveUpdate(const UpdateResponseData& update) { 130 void WorkerEntityTracker::ReceiveUpdate(const UpdateResponseData& update) {
131 if (update.response_version <= highest_gu_response_version_) 131 if (!UpdateContainsNewVersion(update))
132 return; 132 return;
133 133
134 highest_gu_response_version_ = update.response_version; 134 highest_gu_response_version_ = update.response_version;
135 id_ = update.entity->id; 135 id_ = update.entity->id;
136 136
137 // Got an applicable update newer than any pending updates. It must be safe 137 // Got an applicable update newer than any pending updates. It must be safe
138 // to discard the old encrypted update, if there was one. 138 // to discard the old encrypted update, if there was one.
139 ClearEncryptedUpdate(); 139 ClearEncryptedUpdate();
140 140
141 if (IsInConflict()) { 141 if (IsInConflict()) {
142 // Incoming update clobbers the pending commit on the sync thread. 142 // Incoming update clobbers the pending commit on the sync thread.
143 // The model thread can re-request this commit later if it wants to. 143 // The model thread can re-request this commit later if it wants to.
144 ClearPendingCommit(); 144 ClearPendingCommit();
145 } 145 }
146 } 146 }
147 147
148 bool WorkerEntityTracker::UpdateContainsNewVersion(
149 const UpdateResponseData& update) {
150 return (update.response_version > highest_gu_response_version_);
151 }
152
148 bool WorkerEntityTracker::ReceiveEncryptedUpdate( 153 bool WorkerEntityTracker::ReceiveEncryptedUpdate(
149 const UpdateResponseData& data) { 154 const UpdateResponseData& data) {
150 if (data.response_version < highest_gu_response_version_) 155 if (data.response_version < highest_gu_response_version_)
151 return false; 156 return false;
152 157
153 highest_gu_response_version_ = data.response_version; 158 highest_gu_response_version_ = data.response_version;
154 encrypted_update_ = base::MakeUnique<UpdateResponseData>(data); 159 encrypted_update_ = base::MakeUnique<UpdateResponseData>(data);
155 ClearPendingCommit(); 160 ClearPendingCommit();
156 return true; 161 return true;
157 } 162 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 bool WorkerEntityTracker::IsServerKnown() const { 199 bool WorkerEntityTracker::IsServerKnown() const {
195 return base_version_ != kUncommittedVersion; 200 return base_version_ != kUncommittedVersion;
196 } 201 }
197 202
198 void WorkerEntityTracker::ClearPendingCommit() { 203 void WorkerEntityTracker::ClearPendingCommit() {
199 pending_commit_.reset(); 204 pending_commit_.reset();
200 pending_commit_specifics_hash_.clear(); 205 pending_commit_specifics_hash_.clear();
201 } 206 }
202 207
203 } // namespace syncer 208 } // namespace syncer
OLDNEW
« no previous file with comments | « components/sync/engine_impl/worker_entity_tracker.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698