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

Side by Side Diff: sync/internal_api/sync_manager_impl.cc

Issue 1545553003: Switch to standard integer types in sync/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 | « sync/internal_api/sync_manager_impl.h ('k') | sync/internal_api/sync_manager_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "sync/internal_api/sync_manager_impl.h" 5 #include "sync/internal_api/sync_manager_impl.h"
6 6
7 #include <stddef.h>
8 #include <stdint.h>
9
7 #include <string> 10 #include <string>
8 11
9 #include "base/base64.h" 12 #include "base/base64.h"
10 #include "base/bind.h" 13 #include "base/bind.h"
11 #include "base/callback.h" 14 #include "base/callback.h"
12 #include "base/compiler_specific.h" 15 #include "base/compiler_specific.h"
13 #include "base/json/json_writer.h" 16 #include "base/json/json_writer.h"
14 #include "base/memory/ref_counted.h" 17 #include "base/memory/ref_counted.h"
15 #include "base/metrics/histogram.h" 18 #include "base/metrics/histogram.h"
16 #include "base/observer_list.h" 19 #include "base/observer_list.h"
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 type, write_transaction_info.Get().id, it->second); 676 type, write_transaction_info.Get().id, it->second);
674 models_with_changes.Put(type); 677 models_with_changes.Put(type);
675 } 678 }
676 change_records_.clear(); 679 change_records_.clear();
677 return models_with_changes; 680 return models_with_changes;
678 } 681 }
679 682
680 void SyncManagerImpl::HandleCalculateChangesChangeEventFromSyncApi( 683 void SyncManagerImpl::HandleCalculateChangesChangeEventFromSyncApi(
681 const ImmutableWriteTransactionInfo& write_transaction_info, 684 const ImmutableWriteTransactionInfo& write_transaction_info,
682 syncable::BaseTransaction* trans, 685 syncable::BaseTransaction* trans,
683 std::vector<int64>* entries_changed) { 686 std::vector<int64_t>* entries_changed) {
684 // We have been notified about a user action changing a sync model. 687 // We have been notified about a user action changing a sync model.
685 LOG_IF(WARNING, !change_records_.empty()) << 688 LOG_IF(WARNING, !change_records_.empty()) <<
686 "CALCULATE_CHANGES called with unapplied old changes."; 689 "CALCULATE_CHANGES called with unapplied old changes.";
687 690
688 // The mutated model type, or UNSPECIFIED if nothing was mutated. 691 // The mutated model type, or UNSPECIFIED if nothing was mutated.
689 ModelTypeSet mutated_model_types; 692 ModelTypeSet mutated_model_types;
690 693
691 const syncable::ImmutableEntryKernelMutationMap& mutations = 694 const syncable::ImmutableEntryKernelMutationMap& mutations =
692 write_transaction_info.Get().mutations; 695 write_transaction_info.Get().mutations;
693 for (syncable::EntryKernelMutationMap::const_iterator it = 696 for (syncable::EntryKernelMutationMap::const_iterator it =
(...skipping 22 matching lines...) Expand all
716 weak_handle_this_.Call(FROM_HERE, 719 weak_handle_this_.Call(FROM_HERE,
717 &SyncManagerImpl::RequestNudgeForDataTypes, 720 &SyncManagerImpl::RequestNudgeForDataTypes,
718 FROM_HERE, 721 FROM_HERE,
719 mutated_model_types); 722 mutated_model_types);
720 } else { 723 } else {
721 NOTREACHED(); 724 NOTREACHED();
722 } 725 }
723 } 726 }
724 } 727 }
725 728
726 void SyncManagerImpl::SetExtraChangeRecordData(int64 id, 729 void SyncManagerImpl::SetExtraChangeRecordData(
727 ModelType type, ChangeReorderBuffer* buffer, 730 int64_t id,
728 Cryptographer* cryptographer, const syncable::EntryKernel& original, 731 ModelType type,
729 bool existed_before, bool exists_now) { 732 ChangeReorderBuffer* buffer,
733 Cryptographer* cryptographer,
734 const syncable::EntryKernel& original,
735 bool existed_before,
736 bool exists_now) {
730 // If this is a deletion and the datatype was encrypted, we need to decrypt it 737 // If this is a deletion and the datatype was encrypted, we need to decrypt it
731 // and attach it to the buffer. 738 // and attach it to the buffer.
732 if (!exists_now && existed_before) { 739 if (!exists_now && existed_before) {
733 sync_pb::EntitySpecifics original_specifics(original.ref(SPECIFICS)); 740 sync_pb::EntitySpecifics original_specifics(original.ref(SPECIFICS));
734 if (type == PASSWORDS) { 741 if (type == PASSWORDS) {
735 // Passwords must use their own legacy ExtraPasswordChangeRecordData. 742 // Passwords must use their own legacy ExtraPasswordChangeRecordData.
736 scoped_ptr<sync_pb::PasswordSpecificsData> data( 743 scoped_ptr<sync_pb::PasswordSpecificsData> data(
737 DecryptPasswordSpecifics(original_specifics, cryptographer)); 744 DecryptPasswordSpecifics(original_specifics, cryptographer));
738 if (!data) { 745 if (!data) {
739 NOTREACHED(); 746 NOTREACHED();
740 return; 747 return;
741 } 748 }
742 buffer->SetExtraDataForId(id, new ExtraPasswordChangeRecordData(*data)); 749 buffer->SetExtraDataForId(id, new ExtraPasswordChangeRecordData(*data));
743 } else if (original_specifics.has_encrypted()) { 750 } else if (original_specifics.has_encrypted()) {
744 // All other datatypes can just create a new unencrypted specifics and 751 // All other datatypes can just create a new unencrypted specifics and
745 // attach it. 752 // attach it.
746 const sync_pb::EncryptedData& encrypted = original_specifics.encrypted(); 753 const sync_pb::EncryptedData& encrypted = original_specifics.encrypted();
747 if (!cryptographer->Decrypt(encrypted, &original_specifics)) { 754 if (!cryptographer->Decrypt(encrypted, &original_specifics)) {
748 NOTREACHED(); 755 NOTREACHED();
749 return; 756 return;
750 } 757 }
751 } 758 }
752 buffer->SetSpecificsForId(id, original_specifics); 759 buffer->SetSpecificsForId(id, original_specifics);
753 } 760 }
754 } 761 }
755 762
756 void SyncManagerImpl::HandleCalculateChangesChangeEventFromSyncer( 763 void SyncManagerImpl::HandleCalculateChangesChangeEventFromSyncer(
757 const ImmutableWriteTransactionInfo& write_transaction_info, 764 const ImmutableWriteTransactionInfo& write_transaction_info,
758 syncable::BaseTransaction* trans, 765 syncable::BaseTransaction* trans,
759 std::vector<int64>* entries_changed) { 766 std::vector<int64_t>* entries_changed) {
760 // We only expect one notification per sync step, so change_buffers_ should 767 // We only expect one notification per sync step, so change_buffers_ should
761 // contain no pending entries. 768 // contain no pending entries.
762 LOG_IF(WARNING, !change_records_.empty()) << 769 LOG_IF(WARNING, !change_records_.empty()) <<
763 "CALCULATE_CHANGES called with unapplied old changes."; 770 "CALCULATE_CHANGES called with unapplied old changes.";
764 771
765 ChangeReorderBuffer change_buffers[MODEL_TYPE_COUNT]; 772 ChangeReorderBuffer change_buffers[MODEL_TYPE_COUNT];
766 773
767 Cryptographer* crypto = directory()->GetCryptographer(trans); 774 Cryptographer* crypto = directory()->GetCryptographer(trans);
768 const syncable::ImmutableEntryKernelMutationMap& mutations = 775 const syncable::ImmutableEntryKernelMutationMap& mutations =
769 write_transaction_info.Get().mutations; 776 write_transaction_info.Get().mutations;
770 for (syncable::EntryKernelMutationMap::const_iterator it = 777 for (syncable::EntryKernelMutationMap::const_iterator it =
771 mutations.Get().begin(); it != mutations.Get().end(); ++it) { 778 mutations.Get().begin(); it != mutations.Get().end(); ++it) {
772 bool existed_before = !it->second.original.ref(syncable::IS_DEL); 779 bool existed_before = !it->second.original.ref(syncable::IS_DEL);
773 bool exists_now = !it->second.mutated.ref(syncable::IS_DEL); 780 bool exists_now = !it->second.mutated.ref(syncable::IS_DEL);
774 781
775 // Omit items that aren't associated with a model. 782 // Omit items that aren't associated with a model.
776 ModelType type = 783 ModelType type =
777 GetModelTypeFromSpecifics(it->second.mutated.ref(SPECIFICS)); 784 GetModelTypeFromSpecifics(it->second.mutated.ref(SPECIFICS));
778 if (type < FIRST_REAL_MODEL_TYPE) 785 if (type < FIRST_REAL_MODEL_TYPE)
779 continue; 786 continue;
780 787
781 int64 handle = it->first; 788 int64_t handle = it->first;
782 if (exists_now && !existed_before) 789 if (exists_now && !existed_before)
783 change_buffers[type].PushAddedItem(handle); 790 change_buffers[type].PushAddedItem(handle);
784 else if (!exists_now && existed_before) 791 else if (!exists_now && existed_before)
785 change_buffers[type].PushDeletedItem(handle); 792 change_buffers[type].PushDeletedItem(handle);
786 else if (exists_now && existed_before && 793 else if (exists_now && existed_before &&
787 VisiblePropertiesDiffer(it->second, crypto)) 794 VisiblePropertiesDiffer(it->second, crypto))
788 change_buffers[type].PushUpdatedItem(handle); 795 change_buffers[type].PushUpdatedItem(handle);
789 796
790 SetExtraChangeRecordData(handle, type, &change_buffers[type], crypto, 797 SetExtraChangeRecordData(handle, type, &change_buffers[type], crypto,
791 it->second.original, existed_before, exists_now); 798 it->second.original, existed_before, exists_now);
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
1039 } 1046 }
1040 1047
1041 void SyncManagerImpl::ClearServerData(const ClearServerDataCallback& callback) { 1048 void SyncManagerImpl::ClearServerData(const ClearServerDataCallback& callback) {
1042 DCHECK(thread_checker_.CalledOnValidThread()); 1049 DCHECK(thread_checker_.CalledOnValidThread());
1043 scheduler_->Start(SyncScheduler::CLEAR_SERVER_DATA_MODE, base::Time()); 1050 scheduler_->Start(SyncScheduler::CLEAR_SERVER_DATA_MODE, base::Time());
1044 ClearParams params(callback); 1051 ClearParams params(callback);
1045 scheduler_->ScheduleClearServerData(params); 1052 scheduler_->ScheduleClearServerData(params);
1046 } 1053 }
1047 1054
1048 } // namespace syncer 1055 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/internal_api/sync_manager_impl.h ('k') | sync/internal_api/sync_manager_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698