OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <algorithm> | 7 #include <algorithm> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
536 } | 536 } |
537 | 537 |
538 entry->Put(CTIME, entry->Get(SERVER_CTIME)); | 538 entry->Put(CTIME, entry->Get(SERVER_CTIME)); |
539 entry->Put(MTIME, entry->Get(SERVER_MTIME)); | 539 entry->Put(MTIME, entry->Get(SERVER_MTIME)); |
540 entry->Put(BASE_VERSION, entry->Get(SERVER_VERSION)); | 540 entry->Put(BASE_VERSION, entry->Get(SERVER_VERSION)); |
541 entry->Put(IS_DEL, entry->Get(SERVER_IS_DEL)); | 541 entry->Put(IS_DEL, entry->Get(SERVER_IS_DEL)); |
542 entry->Put(IS_UNAPPLIED_UPDATE, false); | 542 entry->Put(IS_UNAPPLIED_UPDATE, false); |
543 } | 543 } |
544 | 544 |
545 // static | 545 // static |
546 VerifyCommitResult SyncerUtil::ValidateCommitEntry( | |
547 syncable::Entry* entry) { | |
548 syncable::Id id = entry->Get(ID); | |
549 if (id == entry->Get(PARENT_ID)) { | |
550 CHECK(id.IsRoot()) << "Non-root item is self parenting." << *entry; | |
551 // If the root becomes unsynced it can cause us problems. | |
552 LOG(ERROR) << "Root item became unsynced " << *entry; | |
553 return VERIFY_UNSYNCABLE; | |
554 } | |
555 if (entry->IsRoot()) { | |
556 LOG(ERROR) << "Permanent item became unsynced " << *entry; | |
557 return VERIFY_UNSYNCABLE; | |
558 } | |
559 if (entry->Get(IS_DEL) && !entry->Get(ID).ServerKnows()) { | |
560 // Drop deleted uncommitted entries. | |
561 return VERIFY_UNSYNCABLE; | |
562 } | |
563 return VERIFY_OK; | |
564 } | |
565 | |
566 // static | |
567 bool SyncerUtil::AddItemThenPredecessors( | 546 bool SyncerUtil::AddItemThenPredecessors( |
568 syncable::BaseTransaction* trans, | 547 syncable::BaseTransaction* trans, |
569 syncable::Entry* item, | 548 syncable::Entry* item, |
570 syncable::IndexedBitField inclusion_filter, | 549 syncable::IndexedBitField inclusion_filter, |
571 syncable::MetahandleSet* inserted_items, | 550 syncable::MetahandleSet* inserted_items, |
572 std::vector<syncable::Id>* commit_ids) { | 551 std::vector<syncable::Id>* commit_ids) { |
573 | 552 |
574 if (!inserted_items->insert(item->Get(META_HANDLE)).second) | 553 if (!inserted_items->insert(item->Get(META_HANDLE)).second) |
575 return false; | 554 return false; |
576 commit_ids->push_back(item->Get(ID)); | 555 commit_ids->push_back(item->Get(ID)); |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
771 if (update.version() < target->Get(SERVER_VERSION)) { | 750 if (update.version() < target->Get(SERVER_VERSION)) { |
772 LOG(WARNING) << "Update older than current server version for " | 751 LOG(WARNING) << "Update older than current server version for " |
773 << *target << " Update:" | 752 << *target << " Update:" |
774 << SyncerProtoUtil::SyncEntityDebugString(update); | 753 << SyncerProtoUtil::SyncEntityDebugString(update); |
775 return VERIFY_SUCCESS; // Expected in new sync protocol. | 754 return VERIFY_SUCCESS; // Expected in new sync protocol. |
776 } | 755 } |
777 return VERIFY_UNDECIDED; | 756 return VERIFY_UNDECIDED; |
778 } | 757 } |
779 | 758 |
780 } // namespace browser_sync | 759 } // namespace browser_sync |
OLD | NEW |