| OLD | NEW | 
|---|
| 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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/process_updates_command.h" | 5 #include "chrome/browser/sync/engine/process_updates_command.h" | 
| 6 | 6 | 
| 7 #include <vector> | 7 #include <vector> | 
| 8 | 8 | 
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" | 
| 10 #include "chrome/browser/sync/engine/syncer.h" | 10 #include "chrome/browser/sync/engine/syncer.h" | 
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 127 }  // namespace | 127 }  // namespace | 
| 128 | 128 | 
| 129 // TODO(sync): Refactor this code. | 129 // TODO(sync): Refactor this code. | 
| 130 // Process a single update. Will avoid touching global state. | 130 // Process a single update. Will avoid touching global state. | 
| 131 ServerUpdateProcessingResult ProcessUpdatesCommand::ProcessUpdate( | 131 ServerUpdateProcessingResult ProcessUpdatesCommand::ProcessUpdate( | 
| 132     const syncable::ScopedDirLookup& dir, const sync_pb::SyncEntity& pb_entry) { | 132     const syncable::ScopedDirLookup& dir, const sync_pb::SyncEntity& pb_entry) { | 
| 133 | 133 | 
| 134   const SyncEntity& entry = *static_cast<const SyncEntity*>(&pb_entry); | 134   const SyncEntity& entry = *static_cast<const SyncEntity*>(&pb_entry); | 
| 135   using namespace syncable; | 135   using namespace syncable; | 
| 136   syncable::Id id = entry.id(); | 136   syncable::Id id = entry.id(); | 
| 137   SyncName name = SyncerProtoUtil::NameFromSyncEntity(entry); | 137   const std::string name = | 
|  | 138       SyncerProtoUtil::NameFromSyncEntity(entry); | 
| 138 | 139 | 
| 139   WriteTransaction trans(dir, SYNCER, __FILE__, __LINE__); | 140   WriteTransaction trans(dir, SYNCER, __FILE__, __LINE__); | 
| 140 | 141 | 
| 141   SyncerUtil::CreateNewEntry(&trans, id); | 142   SyncerUtil::CreateNewEntry(&trans, id); | 
| 142 | 143 | 
| 143   // We take a two step approach. First we store the entries data in the | 144   // We take a two step approach. First we store the entries data in the | 
| 144   // server fields of a local entry and then move the data to the local fields | 145   // server fields of a local entry and then move the data to the local fields | 
| 145   MutableEntry update_entry(&trans, GET_BY_ID, id); | 146   MutableEntry update_entry(&trans, GET_BY_ID, id); | 
| 146   // TODO(sync): do we need to run ALL these checks, or is a mere version check | 147   // TODO(sync): do we need to run ALL these checks, or is a mere version check | 
| 147   // good enough? | 148   // good enough? | 
| 148   if (!ReverifyEntry(&trans, entry, &update_entry)) { | 149   if (!ReverifyEntry(&trans, entry, &update_entry)) { | 
| 149     return SUCCESS_PROCESSED;  // the entry has become irrelevant | 150     return SUCCESS_PROCESSED;  // the entry has become irrelevant | 
| 150   } | 151   } | 
| 151 | 152 | 
| 152   SyncerUtil::UpdateServerFieldsFromUpdate(&update_entry, entry, name); | 153   SyncerUtil::UpdateServerFieldsFromUpdate(&update_entry, entry, name); | 
| 153 | 154 | 
| 154   if (update_entry.Get(SERVER_VERSION) == update_entry.Get(BASE_VERSION) && | 155   if (update_entry.Get(SERVER_VERSION) == update_entry.Get(BASE_VERSION) && | 
| 155       !update_entry.Get(IS_UNSYNCED)) { | 156       !update_entry.Get(IS_UNSYNCED)) { | 
| 156       CHECK(SyncerUtil::ServerAndLocalEntriesMatch( | 157       // Previously this was a big issue but at this point we don't really care | 
| 157           &update_entry)) << update_entry; | 158       // that much if things don't match up exactly. | 
|  | 159       LOG_IF(ERROR, !SyncerUtil::ServerAndLocalEntriesMatch(&update_entry)) | 
|  | 160           << update_entry; | 
| 158   } | 161   } | 
| 159   return SUCCESS_PROCESSED; | 162   return SUCCESS_PROCESSED; | 
| 160 } | 163 } | 
| 161 | 164 | 
| 162 }  // namespace browser_sync | 165 }  // namespace browser_sync | 
| OLD | NEW | 
|---|