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

Side by Side Diff: chrome/browser/sync/profile_sync_service_harness.cc

Issue 8851006: [Sync] Replace all instances of ModelTypeSet with ModelEnumSet (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Cleanup Created 9 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 | Annotate | Revision Log
OLDNEW
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/profile_sync_service_harness.h" 5 #include "chrome/browser/sync/profile_sync_service_harness.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <iterator> 9 #include <iterator>
10 #include <ostream> 10 #include <ostream>
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 const std::string& password) { 131 const std::string& password) {
132 username_ = username; 132 username_ = username;
133 password_ = password; 133 password_ = password;
134 } 134 }
135 135
136 bool ProfileSyncServiceHarness::IsSyncAlreadySetup() { 136 bool ProfileSyncServiceHarness::IsSyncAlreadySetup() {
137 return profile_->HasProfileSyncService(); 137 return profile_->HasProfileSyncService();
138 } 138 }
139 139
140 bool ProfileSyncServiceHarness::SetupSync() { 140 bool ProfileSyncServiceHarness::SetupSync() {
141 syncable::ModelTypeSet synced_datatypes; 141 syncable::ModelEnumSet synced_datatypes;
142 for (int i = syncable::FIRST_REAL_MODEL_TYPE; 142 for (int i = syncable::FIRST_REAL_MODEL_TYPE;
143 i < syncable::MODEL_TYPE_COUNT; ++i) { 143 i < syncable::MODEL_TYPE_COUNT; ++i) {
144 synced_datatypes.insert(syncable::ModelTypeFromInt(i)); 144 synced_datatypes.Put(syncable::ModelTypeFromInt(i));
145 } 145 }
146 bool result = SetupSync(synced_datatypes); 146 bool result = SetupSync(synced_datatypes);
147 if (result == false) { 147 if (result == false) {
148 std::string status = GetServiceStatus(); 148 std::string status = GetServiceStatus();
149 LOG(ERROR) << profile_debug_name_ 149 LOG(ERROR) << profile_debug_name_
150 << ": SetupSync failed. Syncer status:\n" << status; 150 << ": SetupSync failed. Syncer status:\n" << status;
151 } else { 151 } else {
152 DVLOG(1) << profile_debug_name_ << ": SetupSync successful."; 152 DVLOG(1) << profile_debug_name_ << ": SetupSync successful.";
153 } 153 }
154 return result; 154 return result;
155 } 155 }
156 156
157 bool ProfileSyncServiceHarness::SetupSync( 157 bool ProfileSyncServiceHarness::SetupSync(
158 const syncable::ModelTypeSet& synced_datatypes) { 158 syncable::ModelEnumSet synced_datatypes) {
159 // Initialize the sync client's profile sync service object. 159 // Initialize the sync client's profile sync service object.
160 service_ = profile_->GetProfileSyncService(""); 160 service_ = profile_->GetProfileSyncService("");
161 if (service_ == NULL) { 161 if (service_ == NULL) {
162 LOG(ERROR) << "SetupSync(): service_ is null."; 162 LOG(ERROR) << "SetupSync(): service_ is null.";
163 return false; 163 return false;
164 } 164 }
165 165
166 // Subscribe sync client to notifications from the profile sync service. 166 // Subscribe sync client to notifications from the profile sync service.
167 if (!service_->HasObserver(this)) 167 if (!service_->HasObserver(this))
168 service_->AddObserver(this); 168 service_->AddObserver(this);
169 169
170 // Authenticate sync client using GAIA credentials. 170 // Authenticate sync client using GAIA credentials.
171 service_->signin()->StartSignIn(username_, password_, "", ""); 171 service_->signin()->StartSignIn(username_, password_, "", "");
172 172
173 // Wait for the OnBackendInitialized() callback. 173 // Wait for the OnBackendInitialized() callback.
174 if (!AwaitBackendInitialized()) { 174 if (!AwaitBackendInitialized()) {
175 LOG(ERROR) << "OnBackendInitialized() not seen after " 175 LOG(ERROR) << "OnBackendInitialized() not seen after "
176 << kLiveSyncOperationTimeoutMs / 1000 176 << kLiveSyncOperationTimeoutMs / 1000
177 << " seconds."; 177 << " seconds.";
178 return false; 178 return false;
179 } 179 }
180 180
181 // Choose the datatypes to be synced. If all datatypes are to be synced, 181 // Choose the datatypes to be synced. If all datatypes are to be synced,
182 // set sync_everything to true; otherwise, set it to false. 182 // set sync_everything to true; otherwise, set it to false.
183 bool sync_everything = (synced_datatypes.size() == 183 bool sync_everything = (synced_datatypes.Size() ==
184 (syncable::MODEL_TYPE_COUNT - syncable::FIRST_REAL_MODEL_TYPE)); 184 (syncable::MODEL_TYPE_COUNT - syncable::FIRST_REAL_MODEL_TYPE));
185 service()->OnUserChoseDatatypes(sync_everything, synced_datatypes); 185 service()->OnUserChoseDatatypes(sync_everything, synced_datatypes);
186 186
187 // Subscribe sync client to notifications from the backend migrator 187 // Subscribe sync client to notifications from the backend migrator
188 // (possible only after choosing data types). 188 // (possible only after choosing data types).
189 if (!TryListeningToMigrationEvents()) { 189 if (!TryListeningToMigrationEvents()) {
190 NOTREACHED(); 190 NOTREACHED();
191 return false; 191 return false;
192 } 192 }
193 193
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 447
448 void ProfileSyncServiceHarness::OnStateChanged() { 448 void ProfileSyncServiceHarness::OnStateChanged() {
449 RunStateChangeMachine(); 449 RunStateChangeMachine();
450 } 450 }
451 451
452 void ProfileSyncServiceHarness::OnMigrationStateChange() { 452 void ProfileSyncServiceHarness::OnMigrationStateChange() {
453 // Update migration state. 453 // Update migration state.
454 if (HasPendingBackendMigration()) { 454 if (HasPendingBackendMigration()) {
455 // Merge current pending migration types into 455 // Merge current pending migration types into
456 // |pending_migration_types_|. 456 // |pending_migration_types_|.
457 syncable::ModelTypeSet new_pending_migration_types = 457 pending_migration_types_.PutAll(
458 service()->GetBackendMigratorForTest()-> 458 service()->GetBackendMigratorForTest()->
459 GetPendingMigrationTypesForTest(); 459 GetPendingMigrationTypesForTest());
Nicolas Zea 2011/12/08 01:49:37 indent by four more spaces
akalin 2011/12/09 19:10:10 Done.
460 syncable::ModelTypeSet temp;
461 std::set_union(pending_migration_types_.begin(),
462 pending_migration_types_.end(),
463 new_pending_migration_types.begin(),
464 new_pending_migration_types.end(),
465 std::inserter(temp, temp.end()));
466 std::swap(pending_migration_types_, temp);
467 DVLOG(1) << profile_debug_name_ << ": new pending migration types " 460 DVLOG(1) << profile_debug_name_ << ": new pending migration types "
468 << syncable::ModelTypeSetToString(pending_migration_types_); 461 << syncable::ModelEnumSetToString(pending_migration_types_);
469 } else { 462 } else {
470 // Merge just-finished pending migration types into 463 // Merge just-finished pending migration types into
471 // |migration_types_|. 464 // |migration_types_|.
472 syncable::ModelTypeSet temp; 465 migrated_types_.PutAll(pending_migration_types_);
473 std::set_union(pending_migration_types_.begin(), 466 pending_migration_types_.Clear();
474 pending_migration_types_.end(),
475 migrated_types_.begin(),
476 migrated_types_.end(),
477 std::inserter(temp, temp.end()));
478 std::swap(migrated_types_, temp);
479 pending_migration_types_.clear();
480 DVLOG(1) << profile_debug_name_ << ": new migrated types " 467 DVLOG(1) << profile_debug_name_ << ": new migrated types "
481 << syncable::ModelTypeSetToString(migrated_types_); 468 << syncable::ModelEnumSetToString(migrated_types_);
482 } 469 }
483 RunStateChangeMachine(); 470 RunStateChangeMachine();
484 } 471 }
485 472
486 bool ProfileSyncServiceHarness::AwaitPassphraseRequired() { 473 bool ProfileSyncServiceHarness::AwaitPassphraseRequired() {
487 DVLOG(1) << GetClientInfoString("AwaitPassphraseRequired"); 474 DVLOG(1) << GetClientInfoString("AwaitPassphraseRequired");
488 if (wait_state_ == SYNC_DISABLED) { 475 if (wait_state_ == SYNC_DISABLED) {
489 LOG(ERROR) << "Sync disabled for " << profile_debug_name_ << "."; 476 LOG(ERROR) << "Sync disabled for " << profile_debug_name_ << ".";
490 return false; 477 return false;
491 } 478 }
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 CHECK(status.sync_protocol_error.action == browser_sync::UNKNOWN_ACTION); 623 CHECK(status.sync_protocol_error.action == browser_sync::UNKNOWN_ACTION);
637 wait_state_ = WAITING_FOR_ACTIONABLE_ERROR; 624 wait_state_ = WAITING_FOR_ACTIONABLE_ERROR;
638 AwaitStatusChangeWithTimeout(kLiveSyncOperationTimeoutMs, 625 AwaitStatusChangeWithTimeout(kLiveSyncOperationTimeoutMs,
639 "Waiting for actionable error"); 626 "Waiting for actionable error");
640 status = GetStatus(); 627 status = GetStatus();
641 return (status.sync_protocol_error.action != browser_sync::UNKNOWN_ACTION && 628 return (status.sync_protocol_error.action != browser_sync::UNKNOWN_ACTION &&
642 service_->unrecoverable_error_detected()); 629 service_->unrecoverable_error_detected());
643 } 630 }
644 631
645 bool ProfileSyncServiceHarness::AwaitMigration( 632 bool ProfileSyncServiceHarness::AwaitMigration(
646 const syncable::ModelTypeSet& expected_migrated_types) { 633 syncable::ModelEnumSet expected_migrated_types) {
647 DVLOG(1) << GetClientInfoString("AwaitMigration"); 634 DVLOG(1) << GetClientInfoString("AwaitMigration");
648 DVLOG(1) << profile_debug_name_ << ": waiting until migration is done for " 635 DVLOG(1) << profile_debug_name_ << ": waiting until migration is done for "
649 << syncable::ModelTypeSetToString(expected_migrated_types); 636 << syncable::ModelEnumSetToString(expected_migrated_types);
650 while (true) { 637 while (true) {
651 bool migration_finished = 638 bool migration_finished = migrated_types_.HasAll(expected_migrated_types);
652 std::includes(migrated_types_.begin(), migrated_types_.end(),
653 expected_migrated_types.begin(),
654 expected_migrated_types.end());
655 DVLOG(1) << "Migrated types " 639 DVLOG(1) << "Migrated types "
656 << syncable::ModelTypeSetToString(migrated_types_) 640 << syncable::ModelEnumSetToString(migrated_types_)
657 << (migration_finished ? " contains " : " does not contain ") 641 << (migration_finished ? " contains " : " does not contain ")
658 << syncable::ModelTypeSetToString(expected_migrated_types); 642 << syncable::ModelEnumSetToString(expected_migrated_types);
659 if (migration_finished) { 643 if (migration_finished) {
660 return true; 644 return true;
661 } 645 }
662 646
663 if (HasPendingBackendMigration()) { 647 if (HasPendingBackendMigration()) {
664 wait_state_ = WAITING_FOR_MIGRATION_TO_FINISH; 648 wait_state_ = WAITING_FOR_MIGRATION_TO_FINISH;
665 } else { 649 } else {
666 wait_state_ = WAITING_FOR_MIGRATION_TO_START; 650 wait_state_ = WAITING_FOR_MIGRATION_TO_START;
667 AwaitStatusChangeWithTimeout(kLiveSyncOperationTimeoutMs, 651 AwaitStatusChangeWithTimeout(kLiveSyncOperationTimeoutMs,
668 "Wait for migration to start"); 652 "Wait for migration to start");
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 ProfileSyncServiceHarness* partner) { 822 ProfileSyncServiceHarness* partner) {
839 // TODO(akalin): Shouldn't this belong with the intersection check? 823 // TODO(akalin): Shouldn't this belong with the intersection check?
840 // Otherwise, this function isn't symmetric. 824 // Otherwise, this function isn't symmetric.
841 if (!IsFullySynced()) { 825 if (!IsFullySynced()) {
842 DVLOG(2) << profile_debug_name_ << ": not synced, assuming doesn't match"; 826 DVLOG(2) << profile_debug_name_ << ": not synced, assuming doesn't match";
843 return false; 827 return false;
844 } 828 }
845 829
846 // Only look for a match if we have at least one enabled datatype in 830 // Only look for a match if we have at least one enabled datatype in
847 // common with the partner client. 831 // common with the partner client.
848 syncable::ModelTypeSet types, other_types, intersection_types; 832 syncable::ModelEnumSet types, other_types, intersection_types;
849 service()->GetPreferredDataTypes(&types); 833 types = service()->GetPreferredDataTypes();
850 partner->service()->GetPreferredDataTypes(&other_types); 834 other_types = partner->service()->GetPreferredDataTypes();
851 std::set_intersection(types.begin(), types.end(), other_types.begin(), 835 intersection_types = Intersection(types, other_types);
852 other_types.end(),
853 inserter(intersection_types,
854 intersection_types.begin()));
855 836
856 DVLOG(2) << profile_debug_name_ << ", " << partner->profile_debug_name_ 837 DVLOG(2) << profile_debug_name_ << ", " << partner->profile_debug_name_
857 << ": common types are " 838 << ": common types are "
858 << syncable::ModelTypeSetToString(intersection_types); 839 << syncable::ModelEnumSetToString(intersection_types);
859 840
860 if (!intersection_types.empty() && !partner->IsFullySynced()) { 841 if (!intersection_types.Empty() && !partner->IsFullySynced()) {
861 DVLOG(2) << "non-empty common types and " 842 DVLOG(2) << "non-empty common types and "
862 << partner->profile_debug_name_ << " isn't synced"; 843 << partner->profile_debug_name_ << " isn't synced";
863 return false; 844 return false;
864 } 845 }
865 846
866 for (syncable::ModelTypeSet::iterator i = intersection_types.begin(); 847 for (syncable::ModelEnumSet::Iterator i = intersection_types.First();
867 i != intersection_types.end(); ++i) { 848 i.Good(); i.Inc()) {
868 const std::string timestamp = GetUpdatedTimestamp(*i); 849 const std::string timestamp = GetUpdatedTimestamp(i.Get());
869 const std::string partner_timestamp = partner->GetUpdatedTimestamp(*i); 850 const std::string partner_timestamp = partner->GetUpdatedTimestamp(i.Get());
870 if (timestamp != partner_timestamp) { 851 if (timestamp != partner_timestamp) {
871 if (VLOG_IS_ON(2)) { 852 if (VLOG_IS_ON(2)) {
872 std::string timestamp_base64, partner_timestamp_base64; 853 std::string timestamp_base64, partner_timestamp_base64;
873 if (!base::Base64Encode(timestamp, &timestamp_base64)) { 854 if (!base::Base64Encode(timestamp, &timestamp_base64)) {
874 NOTREACHED(); 855 NOTREACHED();
875 } 856 }
876 if (!base::Base64Encode( 857 if (!base::Base64Encode(
877 partner_timestamp, &partner_timestamp_base64)) { 858 partner_timestamp, &partner_timestamp_base64)) {
878 NOTREACHED(); 859 NOTREACHED();
879 } 860 }
880 DVLOG(2) << syncable::ModelTypeToString(*i) << ": " 861 DVLOG(2) << syncable::ModelTypeToString(i.Get()) << ": "
881 << profile_debug_name_ << " timestamp = " 862 << profile_debug_name_ << " timestamp = "
882 << timestamp_base64 << ", " 863 << timestamp_base64 << ", "
883 << partner->profile_debug_name_ 864 << partner->profile_debug_name_
884 << " partner timestamp = " 865 << " partner timestamp = "
885 << partner_timestamp_base64; 866 << partner_timestamp_base64;
886 } 867 }
887 return false; 868 return false;
888 } 869 }
889 } 870 }
890 return true; 871 return true;
891 } 872 }
892 873
893 const SyncSessionSnapshot* 874 const SyncSessionSnapshot*
894 ProfileSyncServiceHarness::GetLastSessionSnapshot() const { 875 ProfileSyncServiceHarness::GetLastSessionSnapshot() const {
895 DCHECK(service_ != NULL) << "Sync service has not yet been set up."; 876 DCHECK(service_ != NULL) << "Sync service has not yet been set up.";
896 if (service_->sync_initialized()) { 877 if (service_->sync_initialized()) {
897 return service_->GetLastSessionSnapshot(); 878 return service_->GetLastSessionSnapshot();
898 } 879 }
899 return NULL; 880 return NULL;
900 } 881 }
901 882
902 bool ProfileSyncServiceHarness::EnableSyncForDatatype( 883 bool ProfileSyncServiceHarness::EnableSyncForDatatype(
903 syncable::ModelType datatype) { 884 syncable::ModelType datatype) {
904 DVLOG(1) << GetClientInfoString( 885 DVLOG(1) << GetClientInfoString(
905 "EnableSyncForDatatype(" 886 "EnableSyncForDatatype("
906 + std::string(syncable::ModelTypeToString(datatype)) + ")"); 887 + std::string(syncable::ModelTypeToString(datatype)) + ")");
907 888
908 syncable::ModelTypeSet synced_datatypes; 889 syncable::ModelEnumSet synced_datatypes;
909 if (wait_state_ == SYNC_DISABLED) { 890 if (wait_state_ == SYNC_DISABLED) {
910 synced_datatypes.insert(datatype); 891 synced_datatypes.Put(datatype);
911 return SetupSync(synced_datatypes); 892 return SetupSync(synced_datatypes);
912 } 893 }
913 894
914 if (service() == NULL) { 895 if (service() == NULL) {
915 LOG(ERROR) << "EnableSyncForDatatype(): service() is null."; 896 LOG(ERROR) << "EnableSyncForDatatype(): service() is null.";
916 return false; 897 return false;
917 } 898 }
918 899
919 service()->GetPreferredDataTypes(&synced_datatypes); 900 synced_datatypes = service()->GetPreferredDataTypes();
920 syncable::ModelTypeSet::iterator it = synced_datatypes.find(datatype); 901 if (synced_datatypes.Has(datatype)) {
921 if (it != synced_datatypes.end()) {
922 DVLOG(1) << "EnableSyncForDatatype(): Sync already enabled for datatype " 902 DVLOG(1) << "EnableSyncForDatatype(): Sync already enabled for datatype "
923 << syncable::ModelTypeToString(datatype) 903 << syncable::ModelTypeToString(datatype)
924 << " on " << profile_debug_name_ << "."; 904 << " on " << profile_debug_name_ << ".";
925 return true; 905 return true;
926 } 906 }
927 907
928 synced_datatypes.insert(syncable::ModelTypeFromInt(datatype)); 908 synced_datatypes.Put(syncable::ModelTypeFromInt(datatype));
929 service()->OnUserChoseDatatypes(false, synced_datatypes); 909 service()->OnUserChoseDatatypes(false, synced_datatypes);
930 if (AwaitFullSyncCompletion("Datatype configuration.")) { 910 if (AwaitFullSyncCompletion("Datatype configuration.")) {
931 DVLOG(1) << "EnableSyncForDatatype(): Enabled sync for datatype " 911 DVLOG(1) << "EnableSyncForDatatype(): Enabled sync for datatype "
932 << syncable::ModelTypeToString(datatype) 912 << syncable::ModelTypeToString(datatype)
933 << " on " << profile_debug_name_ << "."; 913 << " on " << profile_debug_name_ << ".";
934 return true; 914 return true;
935 } 915 }
936 916
937 DVLOG(0) << GetClientInfoString("EnableSyncForDatatype failed"); 917 DVLOG(0) << GetClientInfoString("EnableSyncForDatatype failed");
938 return false; 918 return false;
939 } 919 }
940 920
941 bool ProfileSyncServiceHarness::DisableSyncForDatatype( 921 bool ProfileSyncServiceHarness::DisableSyncForDatatype(
942 syncable::ModelType datatype) { 922 syncable::ModelType datatype) {
943 DVLOG(1) << GetClientInfoString( 923 DVLOG(1) << GetClientInfoString(
944 "DisableSyncForDatatype(" 924 "DisableSyncForDatatype("
945 + std::string(syncable::ModelTypeToString(datatype)) + ")"); 925 + std::string(syncable::ModelTypeToString(datatype)) + ")");
946 926
947 syncable::ModelTypeSet synced_datatypes; 927 syncable::ModelEnumSet synced_datatypes;
948 if (service() == NULL) { 928 if (service() == NULL) {
949 LOG(ERROR) << "DisableSyncForDatatype(): service() is null."; 929 LOG(ERROR) << "DisableSyncForDatatype(): service() is null.";
950 return false; 930 return false;
951 } 931 }
952 932
953 service()->GetPreferredDataTypes(&synced_datatypes); 933 synced_datatypes = service()->GetPreferredDataTypes();
954 syncable::ModelTypeSet::iterator it = synced_datatypes.find(datatype); 934 if (synced_datatypes.Has(datatype)) {
955 if (it == synced_datatypes.end()) {
956 DVLOG(1) << "DisableSyncForDatatype(): Sync already disabled for datatype " 935 DVLOG(1) << "DisableSyncForDatatype(): Sync already disabled for datatype "
957 << syncable::ModelTypeToString(datatype) 936 << syncable::ModelTypeToString(datatype)
958 << " on " << profile_debug_name_ << "."; 937 << " on " << profile_debug_name_ << ".";
959 return true; 938 return true;
960 } 939 }
961 940
962 synced_datatypes.erase(it); 941 synced_datatypes.Remove(datatype);
963 service()->OnUserChoseDatatypes(false, synced_datatypes); 942 service()->OnUserChoseDatatypes(false, synced_datatypes);
964 if (AwaitFullSyncCompletion("Datatype reconfiguration.")) { 943 if (AwaitFullSyncCompletion("Datatype reconfiguration.")) {
965 DVLOG(1) << "DisableSyncForDatatype(): Disabled sync for datatype " 944 DVLOG(1) << "DisableSyncForDatatype(): Disabled sync for datatype "
966 << syncable::ModelTypeToString(datatype) 945 << syncable::ModelTypeToString(datatype)
967 << " on " << profile_debug_name_ << "."; 946 << " on " << profile_debug_name_ << ".";
968 return true; 947 return true;
969 } 948 }
970 949
971 DVLOG(0) << GetClientInfoString("DisableSyncForDatatype failed"); 950 DVLOG(0) << GetClientInfoString("DisableSyncForDatatype failed");
972 return false; 951 return false;
973 } 952 }
974 953
975 bool ProfileSyncServiceHarness::EnableSyncForAllDatatypes() { 954 bool ProfileSyncServiceHarness::EnableSyncForAllDatatypes() {
976 DVLOG(1) << GetClientInfoString("EnableSyncForAllDatatypes"); 955 DVLOG(1) << GetClientInfoString("EnableSyncForAllDatatypes");
977 956
978 if (wait_state_ == SYNC_DISABLED) { 957 if (wait_state_ == SYNC_DISABLED) {
979 return SetupSync(); 958 return SetupSync();
980 } 959 }
981 960
982 if (service() == NULL) { 961 if (service() == NULL) {
983 LOG(ERROR) << "EnableSyncForAllDatatypes(): service() is null."; 962 LOG(ERROR) << "EnableSyncForAllDatatypes(): service() is null.";
984 return false; 963 return false;
985 } 964 }
986 965
987 syncable::ModelTypeSet synced_datatypes; 966 syncable::ModelEnumSet synced_datatypes;
988 for (int i = syncable::FIRST_REAL_MODEL_TYPE; 967 for (int i = syncable::FIRST_REAL_MODEL_TYPE;
989 i < syncable::MODEL_TYPE_COUNT; 968 i < syncable::MODEL_TYPE_COUNT;
990 ++i) { 969 ++i) {
991 synced_datatypes.insert(syncable::ModelTypeFromInt(i)); 970 synced_datatypes.Put(syncable::ModelTypeFromInt(i));
992 } 971 }
993 service()->OnUserChoseDatatypes(true, synced_datatypes); 972 service()->OnUserChoseDatatypes(true, synced_datatypes);
994 if (AwaitFullSyncCompletion("Datatype reconfiguration.")) { 973 if (AwaitFullSyncCompletion("Datatype reconfiguration.")) {
995 DVLOG(1) << "EnableSyncForAllDatatypes(): Enabled sync for all datatypes " 974 DVLOG(1) << "EnableSyncForAllDatatypes(): Enabled sync for all datatypes "
996 << "on " << profile_debug_name_ << "."; 975 << "on " << profile_debug_name_ << ".";
997 return true; 976 return true;
998 } 977 }
999 978
1000 DVLOG(0) << GetClientInfoString("EnableSyncForAllDatatypes failed"); 979 DVLOG(0) << GetClientInfoString("EnableSyncForAllDatatypes failed");
1001 return false; 980 return false;
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1059 } else { 1038 } else {
1060 os << "Sync service not available"; 1039 os << "Sync service not available";
1061 } 1040 }
1062 return os.str(); 1041 return os.str();
1063 } 1042 }
1064 1043
1065 // TODO(zea): Rename this EnableEncryption, since we no longer turn on 1044 // TODO(zea): Rename this EnableEncryption, since we no longer turn on
1066 // encryption for individual types but for all. 1045 // encryption for individual types but for all.
1067 bool ProfileSyncServiceHarness::EnableEncryptionForType( 1046 bool ProfileSyncServiceHarness::EnableEncryptionForType(
1068 syncable::ModelType type) { 1047 syncable::ModelType type) {
1069 syncable::ModelTypeSet encrypted_types; 1048 syncable::ModelEnumSet encrypted_types =
1070 service_->GetEncryptedDataTypes(&encrypted_types); 1049 service_->GetEncryptedDataTypes();
1071 if (encrypted_types.count(type) > 0) 1050 if (encrypted_types.Has(type))
1072 return true; 1051 return true;
1073 service_->EnableEncryptEverything(); 1052 service_->EnableEncryptEverything();
1074 1053
1075 // In order to kick off the encryption we have to reconfigure. Just grab the 1054 // In order to kick off the encryption we have to reconfigure. Just grab the
1076 // currently synced types and use them. 1055 // currently synced types and use them.
1077 syncable::ModelTypeSet synced_datatypes; 1056 syncable::ModelEnumSet synced_datatypes =
1078 service_->GetPreferredDataTypes(&synced_datatypes); 1057 service_->GetPreferredDataTypes();
1079 bool sync_everything = (synced_datatypes.size() == 1058 bool sync_everything = (synced_datatypes.Size() ==
1080 (syncable::MODEL_TYPE_COUNT - syncable::FIRST_REAL_MODEL_TYPE)); 1059 (syncable::MODEL_TYPE_COUNT - syncable::FIRST_REAL_MODEL_TYPE));
1081 service_->OnUserChoseDatatypes(sync_everything, 1060 service_->OnUserChoseDatatypes(sync_everything,
1082 synced_datatypes); 1061 synced_datatypes);
1083 1062
1084 // Wait some time to let the enryption finish. 1063 // Wait some time to let the enryption finish.
1085 return WaitForTypeEncryption(type); 1064 return WaitForTypeEncryption(type);
1086 } 1065 }
1087 1066
1088 bool ProfileSyncServiceHarness::WaitForTypeEncryption( 1067 bool ProfileSyncServiceHarness::WaitForTypeEncryption(
1089 syncable::ModelType type) { 1068 syncable::ModelType type) {
(...skipping 13 matching lines...) Expand all
1103 if (!AwaitStatusChangeWithTimeout(kLiveSyncOperationTimeoutMs, reason)) { 1082 if (!AwaitStatusChangeWithTimeout(kLiveSyncOperationTimeoutMs, reason)) {
1104 LOG(ERROR) << "Did not receive EncryptionComplete notification after" 1083 LOG(ERROR) << "Did not receive EncryptionComplete notification after"
1105 << kLiveSyncOperationTimeoutMs / 1000 1084 << kLiveSyncOperationTimeoutMs / 1000
1106 << " seconds."; 1085 << " seconds.";
1107 return false; 1086 return false;
1108 } 1087 }
1109 return IsTypeEncrypted(type); 1088 return IsTypeEncrypted(type);
1110 } 1089 }
1111 1090
1112 bool ProfileSyncServiceHarness::IsTypeEncrypted(syncable::ModelType type) { 1091 bool ProfileSyncServiceHarness::IsTypeEncrypted(syncable::ModelType type) {
1113 syncable::ModelTypeSet encrypted_types; 1092 syncable::ModelEnumSet encrypted_types =
1114 service_->GetEncryptedDataTypes(&encrypted_types); 1093 service_->GetEncryptedDataTypes();
1115 bool is_type_encrypted = (encrypted_types.count(type) != 0); 1094 bool is_type_encrypted = encrypted_types.Has(type);
1116 DVLOG(2) << syncable::ModelTypeToString(type) << " is " 1095 DVLOG(2) << syncable::ModelTypeToString(type) << " is "
1117 << (is_type_encrypted ? "" : "not ") << "encrypted; " 1096 << (is_type_encrypted ? "" : "not ") << "encrypted; "
1118 << "encrypted types = " 1097 << "encrypted types = "
1119 << syncable::ModelTypeSetToString(encrypted_types); 1098 << syncable::ModelEnumSetToString(encrypted_types);
1120 return is_type_encrypted; 1099 return is_type_encrypted;
1121 } 1100 }
1122 1101
1123 bool ProfileSyncServiceHarness::IsTypeRunning(syncable::ModelType type) { 1102 bool ProfileSyncServiceHarness::IsTypeRunning(syncable::ModelType type) {
1124 browser_sync::DataTypeController::StateMap state_map; 1103 browser_sync::DataTypeController::StateMap state_map;
1125 service_->GetDataTypeControllerStates(&state_map); 1104 service_->GetDataTypeControllerStates(&state_map);
1126 return (state_map.count(type) != 0 && 1105 return (state_map.count(type) != 0 &&
1127 state_map[type] == browser_sync::DataTypeController::RUNNING); 1106 state_map[type] == browser_sync::DataTypeController::RUNNING);
1128 } 1107 }
1129 1108
1130 bool ProfileSyncServiceHarness::IsTypePreferred(syncable::ModelType type) { 1109 bool ProfileSyncServiceHarness::IsTypePreferred(syncable::ModelType type) {
1131 syncable::ModelTypeSet synced_types; 1110 return service_->GetPreferredDataTypes().Has(type);
1132 service_->GetPreferredDataTypes(&synced_types);
1133 return (synced_types.count(type) != 0);
1134 } 1111 }
1135 1112
1136 std::string ProfileSyncServiceHarness::GetServiceStatus() { 1113 std::string ProfileSyncServiceHarness::GetServiceStatus() {
1137 DictionaryValue value; 1114 DictionaryValue value;
1138 sync_ui_util::ConstructAboutInformation(service_, &value); 1115 sync_ui_util::ConstructAboutInformation(service_, &value);
1139 std::string service_status; 1116 std::string service_status;
1140 base::JSONWriter::Write(&value, true, &service_status); 1117 base::JSONWriter::Write(&value, true, &service_status);
1141 return service_status; 1118 return service_status;
1142 } 1119 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698