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

Side by Side Diff: chrome/browser/sync/engine/syncer_util.cc

Issue 351026: Remove context-based dependencies on SyncerSession from ApplyUpdatesCommand.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "chrome/browser/sync/engine/syncer_util.h" 5 #include "chrome/browser/sync/engine/syncer_util.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "chrome/browser/sync/engine/conflict_resolver.h" 11 #include "chrome/browser/sync/engine/conflict_resolver.h"
12 #include "chrome/browser/sync/engine/syncer_proto_util.h" 12 #include "chrome/browser/sync/engine/syncer_proto_util.h"
13 #include "chrome/browser/sync/engine/syncer_session.h"
14 #include "chrome/browser/sync/engine/syncer_types.h" 13 #include "chrome/browser/sync/engine/syncer_types.h"
15 #include "chrome/browser/sync/engine/syncproto.h" 14 #include "chrome/browser/sync/engine/syncproto.h"
16 #include "chrome/browser/sync/syncable/directory_manager.h" 15 #include "chrome/browser/sync/syncable/directory_manager.h"
17 #include "chrome/browser/sync/syncable/syncable.h" 16 #include "chrome/browser/sync/syncable/syncable.h"
18 #include "chrome/browser/sync/syncable/syncable_changes_version.h" 17 #include "chrome/browser/sync/syncable/syncable_changes_version.h"
19 #include "chrome/browser/sync/util/character_set_converters.h" 18 #include "chrome/browser/sync/util/character_set_converters.h"
20 #include "chrome/browser/sync/util/path_helpers.h" 19 #include "chrome/browser/sync/util/path_helpers.h"
21 #include "chrome/browser/sync/util/sync_types.h" 20 #include "chrome/browser/sync/util/sync_types.h"
22 21
23 using syncable::BASE_VERSION; 22 using syncable::BASE_VERSION;
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 // !local_entry.Good() means we don't have a left behind entry for this 212 // !local_entry.Good() means we don't have a left behind entry for this
214 // ID. We successfully committed before. In the future we should get rid 213 // ID. We successfully committed before. In the future we should get rid
215 // of this system and just have client side generated IDs as a whole. 214 // of this system and just have client side generated IDs as a whole.
216 } 215 }
217 } 216 }
218 217
219 // static 218 // static
220 UpdateAttemptResponse SyncerUtil::AttemptToUpdateEntry( 219 UpdateAttemptResponse SyncerUtil::AttemptToUpdateEntry(
221 syncable::WriteTransaction* const trans, 220 syncable::WriteTransaction* const trans,
222 syncable::MutableEntry* const entry, 221 syncable::MutableEntry* const entry,
223 SyncerSession* const session) { 222 ConflictResolver* resolver) {
224 223
225 syncable::Id conflicting_id; 224 syncable::Id conflicting_id;
226 UpdateAttemptResponse result = 225 UpdateAttemptResponse result =
227 AttemptToUpdateEntryWithoutMerge(trans, entry, session, 226 AttemptToUpdateEntryWithoutMerge(trans, entry, &conflicting_id);
228 &conflicting_id);
229 if (result != NAME_CONFLICT) { 227 if (result != NAME_CONFLICT) {
230 return result; 228 return result;
231 } 229 }
232 syncable::MutableEntry same_path(trans, syncable::GET_BY_ID, conflicting_id); 230 syncable::MutableEntry same_path(trans, syncable::GET_BY_ID, conflicting_id);
233 CHECK(same_path.good()); 231 CHECK(same_path.good());
234 232
235 ConflictResolver* resolver = session->resolver();
236
237 if (resolver && 233 if (resolver &&
238 resolver->AttemptItemMerge(trans, &same_path, entry)) { 234 resolver->AttemptItemMerge(trans, &same_path, entry)) {
239 return SUCCESS; 235 return SUCCESS;
240 } 236 }
241 LOG(INFO) << "Not updating item, path collision. Update:\n" << *entry 237 LOG(INFO) << "Not updating item, path collision. Update:\n" << *entry
242 << "\nSame Path:\n" << same_path; 238 << "\nSame Path:\n" << same_path;
243 return CONFLICT; 239 return CONFLICT;
244 } 240 }
245 241
246 // static 242 // static
247 UpdateAttemptResponse SyncerUtil::AttemptToUpdateEntryWithoutMerge( 243 UpdateAttemptResponse SyncerUtil::AttemptToUpdateEntryWithoutMerge(
248 syncable::WriteTransaction* const trans, 244 syncable::WriteTransaction* const trans,
249 syncable::MutableEntry* const entry, 245 syncable::MutableEntry* const entry,
250 SyncerSession* const session, syncable::Id* const conflicting_id) { 246 syncable::Id* const conflicting_id) {
251 247
252 CHECK(entry->good()); 248 CHECK(entry->good());
253 if (!entry->Get(IS_UNAPPLIED_UPDATE)) 249 if (!entry->Get(IS_UNAPPLIED_UPDATE))
254 return SUCCESS; // No work to do. 250 return SUCCESS; // No work to do.
255 syncable::Id id = entry->Get(ID); 251 syncable::Id id = entry->Get(ID);
256 252
257 if (entry->Get(IS_UNSYNCED)) { 253 if (entry->Get(IS_UNSYNCED)) {
258 LOG(INFO) << "Skipping update, returning conflict for: " << id 254 LOG(INFO) << "Skipping update, returning conflict for: " << id
259 << " ; it's unsynced."; 255 << " ; it's unsynced.";
260 return CONFLICT; 256 return CONFLICT;
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 829
834 // |update_entry| is considered to be somewhere after |candidate|, so store 830 // |update_entry| is considered to be somewhere after |candidate|, so store
835 // it as the upper bound. 831 // it as the upper bound.
836 closest_sibling = candidate.Get(ID); 832 closest_sibling = candidate.Get(ID);
837 } 833 }
838 834
839 return closest_sibling; 835 return closest_sibling;
840 } 836 }
841 837
842 } // namespace browser_sync 838 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/engine/syncer_util.h ('k') | chrome/browser/sync/engine/update_applicator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698