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

Side by Side Diff: chrome/browser/sync/glue/sync_backend_host.cc

Issue 8919021: [Sync] Rename ModelEnumSet to ModelTypeSet (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 "build/build_config.h" 5 #include "build/build_config.h"
6 6
7 #include "chrome/browser/sync/glue/sync_backend_host.h" 7 #include "chrome/browser/sync/glue/sync_backend_host.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <map> 10 #include <map>
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 95
96 SyncBackendHost::~SyncBackendHost() { 96 SyncBackendHost::~SyncBackendHost() {
97 DCHECK(!core_ && !frontend_) << "Must call Shutdown before destructor."; 97 DCHECK(!core_ && !frontend_) << "Must call Shutdown before destructor.";
98 DCHECK(!registrar_.get()); 98 DCHECK(!registrar_.get());
99 } 99 }
100 100
101 void SyncBackendHost::Initialize( 101 void SyncBackendHost::Initialize(
102 SyncFrontend* frontend, 102 SyncFrontend* frontend,
103 const WeakHandle<JsEventHandler>& event_handler, 103 const WeakHandle<JsEventHandler>& event_handler,
104 const GURL& sync_service_url, 104 const GURL& sync_service_url,
105 syncable::ModelEnumSet initial_types, 105 syncable::ModelTypeSet initial_types,
106 const SyncCredentials& credentials, 106 const SyncCredentials& credentials,
107 bool delete_sync_data_folder) { 107 bool delete_sync_data_folder) {
108 if (!sync_thread_.Start()) 108 if (!sync_thread_.Start())
109 return; 109 return;
110 110
111 frontend_ = frontend; 111 frontend_ = frontend;
112 DCHECK(frontend); 112 DCHECK(frontend);
113 113
114 syncable::ModelEnumSet initial_types_with_nigori(initial_types); 114 syncable::ModelTypeSet initial_types_with_nigori(initial_types);
115 CHECK(sync_prefs_.get()); 115 CHECK(sync_prefs_.get());
116 if (sync_prefs_->HasSyncSetupCompleted()) { 116 if (sync_prefs_->HasSyncSetupCompleted()) {
117 initial_types_with_nigori.Put(syncable::NIGORI); 117 initial_types_with_nigori.Put(syncable::NIGORI);
118 } 118 }
119 119
120 registrar_.reset(new SyncBackendRegistrar(initial_types_with_nigori, 120 registrar_.reset(new SyncBackendRegistrar(initial_types_with_nigori,
121 name_, 121 name_,
122 profile_, 122 profile_,
123 sync_thread_.message_loop())); 123 sync_thread_.message_loop()));
124 initialization_state_ = CREATING_SYNC_MANAGER; 124 initialization_state_ = CREATING_SYNC_MANAGER;
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 base::ThreadRestrictions::ScopedAllowIO allow_io; 240 base::ThreadRestrictions::ScopedAllowIO allow_io;
241 sync_thread_.Stop(); 241 sync_thread_.Stop();
242 } 242 }
243 243
244 registrar_.reset(); 244 registrar_.reset();
245 frontend_ = NULL; 245 frontend_ = NULL;
246 core_ = NULL; // Releases reference to core_. 246 core_ = NULL; // Releases reference to core_.
247 } 247 }
248 248
249 void SyncBackendHost::ConfigureDataTypes( 249 void SyncBackendHost::ConfigureDataTypes(
250 syncable::ModelEnumSet types_to_add, 250 syncable::ModelTypeSet types_to_add,
251 syncable::ModelEnumSet types_to_remove, 251 syncable::ModelTypeSet types_to_remove,
252 sync_api::ConfigureReason reason, 252 sync_api::ConfigureReason reason,
253 base::Callback<void(syncable::ModelEnumSet)> ready_task, 253 base::Callback<void(syncable::ModelTypeSet)> ready_task,
254 bool enable_nigori) { 254 bool enable_nigori) {
255 syncable::ModelEnumSet types_to_add_with_nigori = types_to_add; 255 syncable::ModelTypeSet types_to_add_with_nigori = types_to_add;
256 syncable::ModelEnumSet types_to_remove_with_nigori = types_to_remove; 256 syncable::ModelTypeSet types_to_remove_with_nigori = types_to_remove;
257 if (enable_nigori) { 257 if (enable_nigori) {
258 types_to_add_with_nigori.Put(syncable::NIGORI); 258 types_to_add_with_nigori.Put(syncable::NIGORI);
259 types_to_remove_with_nigori.Remove(syncable::NIGORI); 259 types_to_remove_with_nigori.Remove(syncable::NIGORI);
260 } else { 260 } else {
261 types_to_add_with_nigori.Remove(syncable::NIGORI); 261 types_to_add_with_nigori.Remove(syncable::NIGORI);
262 types_to_remove_with_nigori.Put(syncable::NIGORI); 262 types_to_remove_with_nigori.Put(syncable::NIGORI);
263 } 263 }
264 // Only one configure is allowed at a time. 264 // Only one configure is allowed at a time.
265 DCHECK(!pending_config_mode_state_.get()); 265 DCHECK(!pending_config_mode_state_.get());
266 DCHECK(!pending_download_state_.get()); 266 DCHECK(!pending_download_state_.get());
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 475
476 void SyncBackendHost::Core::OnClearServerDataSucceeded() { 476 void SyncBackendHost::Core::OnClearServerDataSucceeded() {
477 if (!sync_loop_) 477 if (!sync_loop_)
478 return; 478 return;
479 DCHECK_EQ(MessageLoop::current(), sync_loop_); 479 DCHECK_EQ(MessageLoop::current(), sync_loop_);
480 host_->frontend_loop_->PostTask(FROM_HERE, base::Bind( 480 host_->frontend_loop_->PostTask(FROM_HERE, base::Bind(
481 &Core::HandleClearServerDataSucceededOnFrontendLoop, this)); 481 &Core::HandleClearServerDataSucceededOnFrontendLoop, this));
482 } 482 }
483 483
484 void SyncBackendHost::Core::OnEncryptedTypesChanged( 484 void SyncBackendHost::Core::OnEncryptedTypesChanged(
485 syncable::ModelEnumSet encrypted_types, 485 syncable::ModelTypeSet encrypted_types,
486 bool encrypt_everything) { 486 bool encrypt_everything) {
487 if (!sync_loop_) 487 if (!sync_loop_)
488 return; 488 return;
489 DCHECK_EQ(MessageLoop::current(), sync_loop_); 489 DCHECK_EQ(MessageLoop::current(), sync_loop_);
490 // NOTE: We're in a transaction. 490 // NOTE: We're in a transaction.
491 host_->frontend_loop_->PostTask( 491 host_->frontend_loop_->PostTask(
492 FROM_HERE, 492 FROM_HERE,
493 base::Bind(&Core::NotifyEncryptedTypesChanged, this, 493 base::Bind(&Core::NotifyEncryptedTypesChanged, this,
494 encrypted_types, encrypt_everything)); 494 encrypted_types, encrypt_everything));
495 } 495 }
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 677
678 if (sync_disabled) 678 if (sync_disabled)
679 DeleteSyncDataFolder(); 679 DeleteSyncDataFolder();
680 680
681 sync_loop_ = NULL; 681 sync_loop_ = NULL;
682 682
683 host_ = NULL; 683 host_ = NULL;
684 } 684 }
685 685
686 void SyncBackendHost::Core::DoRequestConfig( 686 void SyncBackendHost::Core::DoRequestConfig(
687 syncable::ModelEnumSet types_to_config, 687 syncable::ModelTypeSet types_to_config,
688 sync_api::ConfigureReason reason) { 688 sync_api::ConfigureReason reason) {
689 DCHECK_EQ(MessageLoop::current(), sync_loop_); 689 DCHECK_EQ(MessageLoop::current(), sync_loop_);
690 sync_manager_->RequestConfig(types_to_config, reason); 690 sync_manager_->RequestConfig(types_to_config, reason);
691 } 691 }
692 692
693 void SyncBackendHost::Core::DoStartConfiguration( 693 void SyncBackendHost::Core::DoStartConfiguration(
694 const base::Closure& callback) { 694 const base::Closure& callback) {
695 DCHECK_EQ(MessageLoop::current(), sync_loop_); 695 DCHECK_EQ(MessageLoop::current(), sync_loop_);
696 sync_manager_->StartConfigurationMode(callback); 696 sync_manager_->StartConfigurationMode(callback);
697 } 697 }
(...skipping 15 matching lines...) Expand all
713 void SyncBackendHost::Core::HandleInitializationCompletedOnFrontendLoop( 713 void SyncBackendHost::Core::HandleInitializationCompletedOnFrontendLoop(
714 const WeakHandle<JsBackend>& js_backend, 714 const WeakHandle<JsBackend>& js_backend,
715 bool success) { 715 bool success) {
716 if (!host_) 716 if (!host_)
717 return; 717 return;
718 host_->HandleInitializationCompletedOnFrontendLoop(js_backend, success); 718 host_->HandleInitializationCompletedOnFrontendLoop(js_backend, success);
719 } 719 }
720 720
721 void SyncBackendHost::Core::HandleNigoriConfigurationCompletedOnFrontendLoop( 721 void SyncBackendHost::Core::HandleNigoriConfigurationCompletedOnFrontendLoop(
722 const WeakHandle<JsBackend>& js_backend, 722 const WeakHandle<JsBackend>& js_backend,
723 const syncable::ModelEnumSet failed_configuration_types) { 723 const syncable::ModelTypeSet failed_configuration_types) {
724 if (!host_) 724 if (!host_)
725 return; 725 return;
726 host_->HandleInitializationCompletedOnFrontendLoop( 726 host_->HandleInitializationCompletedOnFrontendLoop(
727 js_backend, failed_configuration_types.Empty()); 727 js_backend, failed_configuration_types.Empty());
728 } 728 }
729 729
730 void SyncBackendHost::Core::StartSavingChanges() { 730 void SyncBackendHost::Core::StartSavingChanges() {
731 // We may already be shut down. 731 // We may already be shut down.
732 if (!sync_loop_) 732 if (!sync_loop_)
733 return; 733 return;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 return; 787 return;
788 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 788 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
789 TokenAvailableDetails details(GaiaConstants::kSyncService, token); 789 TokenAvailableDetails details(GaiaConstants::kSyncService, token);
790 content::NotificationService::current()->Notify( 790 content::NotificationService::current()->Notify(
791 chrome::NOTIFICATION_TOKEN_UPDATED, 791 chrome::NOTIFICATION_TOKEN_UPDATED,
792 content::Source<Profile>(host_->profile_), 792 content::Source<Profile>(host_->profile_),
793 content::Details<const TokenAvailableDetails>(&details)); 793 content::Details<const TokenAvailableDetails>(&details));
794 } 794 }
795 795
796 void SyncBackendHost::Core::NotifyEncryptedTypesChanged( 796 void SyncBackendHost::Core::NotifyEncryptedTypesChanged(
797 syncable::ModelEnumSet encrypted_types, 797 syncable::ModelTypeSet encrypted_types,
798 bool encrypt_everything) { 798 bool encrypt_everything) {
799 if (!host_) 799 if (!host_)
800 return; 800 return;
801 DCHECK_EQ(MessageLoop::current(), host_->frontend_loop_); 801 DCHECK_EQ(MessageLoop::current(), host_->frontend_loop_);
802 host_->frontend_->OnEncryptedTypesChanged( 802 host_->frontend_->OnEncryptedTypesChanged(
803 encrypted_types, encrypt_everything); 803 encrypted_types, encrypt_everything);
804 } 804 }
805 805
806 void SyncBackendHost::Core::NotifyEncryptionComplete() { 806 void SyncBackendHost::Core::NotifyEncryptionComplete() {
807 if (!host_) 807 if (!host_)
808 return; 808 return;
809 DCHECK_EQ(MessageLoop::current(), host_->frontend_loop_); 809 DCHECK_EQ(MessageLoop::current(), host_->frontend_loop_);
810 host_->frontend_->OnEncryptionComplete(); 810 host_->frontend_->OnEncryptionComplete();
811 } 811 }
812 812
813 void SyncBackendHost::Core::HandleSyncCycleCompletedOnFrontendLoop( 813 void SyncBackendHost::Core::HandleSyncCycleCompletedOnFrontendLoop(
814 SyncSessionSnapshot* snapshot) { 814 SyncSessionSnapshot* snapshot) {
815 if (!host_ || !host_->frontend_) 815 if (!host_ || !host_->frontend_)
816 return; 816 return;
817 DCHECK_EQ(MessageLoop::current(), host_->frontend_loop_); 817 DCHECK_EQ(MessageLoop::current(), host_->frontend_loop_);
818 818
819 host_->last_snapshot_.reset(snapshot); 819 host_->last_snapshot_.reset(snapshot);
820 820
821 SVLOG(1) << "Got snapshot " << snapshot->ToString(); 821 SVLOG(1) << "Got snapshot " << snapshot->ToString();
822 822
823 const syncable::ModelEnumSet to_migrate = 823 const syncable::ModelTypeSet to_migrate =
824 snapshot->syncer_status.types_needing_local_migration; 824 snapshot->syncer_status.types_needing_local_migration;
825 if (!to_migrate.Empty()) 825 if (!to_migrate.Empty())
826 host_->frontend_->OnMigrationNeededForTypes(to_migrate); 826 host_->frontend_->OnMigrationNeededForTypes(to_migrate);
827 827
828 // Process any changes to the datatypes we're syncing. 828 // Process any changes to the datatypes we're syncing.
829 // TODO(sync): add support for removing types. 829 // TODO(sync): add support for removing types.
830 if (host_->initialized()) 830 if (host_->initialized())
831 host_->AddExperimentalTypes(); 831 host_->AddExperimentalTypes();
832 832
833 // If we are waiting for a configuration change, check here to see 833 // If we are waiting for a configuration change, check here to see
834 // if this sync cycle has initialized all of the types we've been 834 // if this sync cycle has initialized all of the types we've been
835 // waiting for. 835 // waiting for.
836 if (host_->pending_download_state_.get()) { 836 if (host_->pending_download_state_.get()) {
837 scoped_ptr<PendingConfigureDataTypesState> state( 837 scoped_ptr<PendingConfigureDataTypesState> state(
838 host_->pending_download_state_.release()); 838 host_->pending_download_state_.release());
839 const syncable::ModelEnumSet types_to_add = state->types_to_add; 839 const syncable::ModelTypeSet types_to_add = state->types_to_add;
840 const syncable::ModelEnumSet added_types = state->added_types; 840 const syncable::ModelTypeSet added_types = state->added_types;
841 DCHECK(types_to_add.HasAll(added_types)); 841 DCHECK(types_to_add.HasAll(added_types));
842 const syncable::ModelEnumSet initial_sync_ended = 842 const syncable::ModelTypeSet initial_sync_ended =
843 snapshot->initial_sync_ended; 843 snapshot->initial_sync_ended;
844 const syncable::ModelEnumSet failed_configuration_types = 844 const syncable::ModelTypeSet failed_configuration_types =
845 Difference(added_types, initial_sync_ended); 845 Difference(added_types, initial_sync_ended);
846 SVLOG(1) 846 SVLOG(1)
847 << "Added types: " 847 << "Added types: "
848 << syncable::ModelEnumSetToString(added_types) 848 << syncable::ModelTypeSetToString(added_types)
849 << ", configured types: " 849 << ", configured types: "
850 << syncable::ModelEnumSetToString(initial_sync_ended) 850 << syncable::ModelTypeSetToString(initial_sync_ended)
851 << ", failed configuration types: " 851 << ", failed configuration types: "
852 << syncable::ModelEnumSetToString(failed_configuration_types); 852 << syncable::ModelTypeSetToString(failed_configuration_types);
853 state->ready_task.Run(failed_configuration_types); 853 state->ready_task.Run(failed_configuration_types);
854 if (!failed_configuration_types.Empty()) 854 if (!failed_configuration_types.Empty())
855 return; 855 return;
856 } 856 }
857 857
858 if (host_->initialized()) 858 if (host_->initialized())
859 host_->frontend_->OnSyncCycleCompleted(); 859 host_->frontend_->OnSyncCycleCompleted();
860 } 860 }
861 861
862 void SyncBackendHost::Core::HandleStopSyncingPermanentlyOnFrontendLoop() { 862 void SyncBackendHost::Core::HandleStopSyncingPermanentlyOnFrontendLoop() {
(...skipping 13 matching lines...) Expand all
876 return; 876 return;
877 host_->frontend_->OnClearServerDataFailed(); 877 host_->frontend_->OnClearServerDataFailed();
878 } 878 }
879 879
880 void SyncBackendHost::Core::FinishConfigureDataTypesOnFrontendLoop() { 880 void SyncBackendHost::Core::FinishConfigureDataTypesOnFrontendLoop() {
881 host_->FinishConfigureDataTypesOnFrontendLoop(); 881 host_->FinishConfigureDataTypesOnFrontendLoop();
882 } 882 }
883 883
884 void SyncBackendHost::AddExperimentalTypes() { 884 void SyncBackendHost::AddExperimentalTypes() {
885 CHECK(initialized()); 885 CHECK(initialized());
886 syncable::ModelEnumSet to_add; 886 syncable::ModelTypeSet to_add;
887 if (core_->sync_manager()->ReceivedExperimentalTypes(&to_add)) 887 if (core_->sync_manager()->ReceivedExperimentalTypes(&to_add))
888 frontend_->OnDataTypesChanged(to_add); 888 frontend_->OnDataTypesChanged(to_add);
889 } 889 }
890 890
891 void SyncBackendHost::HandleInitializationCompletedOnFrontendLoop( 891 void SyncBackendHost::HandleInitializationCompletedOnFrontendLoop(
892 const WeakHandle<JsBackend>& js_backend, bool success) { 892 const WeakHandle<JsBackend>& js_backend, bool success) {
893 DCHECK_NE(NOT_ATTEMPTED, initialization_state_); 893 DCHECK_NE(NOT_ATTEMPTED, initialization_state_);
894 if (!frontend_) 894 if (!frontend_)
895 return; 895 return;
896 896
(...skipping 15 matching lines...) Expand all
912 if (sync_prefs_->HasSyncSetupCompleted() && 912 if (sync_prefs_->HasSyncSetupCompleted() &&
913 initialization_state_ < DOWNLOADING_NIGORI) { 913 initialization_state_ < DOWNLOADING_NIGORI) {
914 initialization_state_ = DOWNLOADING_NIGORI; 914 initialization_state_ = DOWNLOADING_NIGORI;
915 } 915 }
916 916
917 // Run initialization state machine. 917 // Run initialization state machine.
918 switch (initialization_state_) { 918 switch (initialization_state_) {
919 case NOT_INITIALIZED: 919 case NOT_INITIALIZED:
920 initialization_state_ = DOWNLOADING_NIGORI; 920 initialization_state_ = DOWNLOADING_NIGORI;
921 ConfigureDataTypes( 921 ConfigureDataTypes(
922 syncable::ModelEnumSet(), 922 syncable::ModelTypeSet(),
923 syncable::ModelEnumSet(), 923 syncable::ModelTypeSet(),
924 sync_api::CONFIGURE_REASON_NEW_CLIENT, 924 sync_api::CONFIGURE_REASON_NEW_CLIENT,
925 // Calls back into this function. 925 // Calls back into this function.
926 base::Bind( 926 base::Bind(
927 &SyncBackendHost::Core:: 927 &SyncBackendHost::Core::
928 HandleNigoriConfigurationCompletedOnFrontendLoop, 928 HandleNigoriConfigurationCompletedOnFrontendLoop,
929 core_.get(), js_backend), 929 core_.get(), js_backend),
930 true); 930 true);
931 break; 931 break;
932 case DOWNLOADING_NIGORI: 932 case DOWNLOADING_NIGORI:
933 initialization_state_ = REFRESHING_ENCRYPTION; 933 initialization_state_ = REFRESHING_ENCRYPTION;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
970 // downloading updates for newly added data types. Once this is 970 // downloading updates for newly added data types. Once this is
971 // complete, the configure_state_.ready_task_ is run via an 971 // complete, the configure_state_.ready_task_ is run via an
972 // OnInitializationComplete notification. 972 // OnInitializationComplete notification.
973 973
974 SVLOG(1) << "Syncer in config mode. SBH executing " 974 SVLOG(1) << "Syncer in config mode. SBH executing "
975 << "FinishConfigureDataTypesOnFrontendLoop"; 975 << "FinishConfigureDataTypesOnFrontendLoop";
976 976
977 if (pending_config_mode_state_->added_types.Empty() && 977 if (pending_config_mode_state_->added_types.Empty() &&
978 !core_->sync_manager()->InitialSyncEndedForAllEnabledTypes()) { 978 !core_->sync_manager()->InitialSyncEndedForAllEnabledTypes()) {
979 979
980 syncable::ModelEnumSet enabled_types; 980 syncable::ModelTypeSet enabled_types;
981 ModelSafeRoutingInfo routing_info; 981 ModelSafeRoutingInfo routing_info;
982 registrar_->GetModelSafeRoutingInfo(&routing_info); 982 registrar_->GetModelSafeRoutingInfo(&routing_info);
983 for (ModelSafeRoutingInfo::const_iterator i = routing_info.begin(); 983 for (ModelSafeRoutingInfo::const_iterator i = routing_info.begin();
984 i != routing_info.end(); ++i) { 984 i != routing_info.end(); ++i) {
985 enabled_types.Put(i->first); 985 enabled_types.Put(i->first);
986 } 986 }
987 987
988 // TODO(tim): Log / UMA / count this somehow? 988 // TODO(tim): Log / UMA / count this somehow?
989 // Add only the types with empty progress markers. Note: it is possible 989 // Add only the types with empty progress markers. Note: it is possible
990 // that some types have their initial_sync_ended be false but with non 990 // that some types have their initial_sync_ended be false but with non
991 // empty progress marker. Which is ok as the rest of the changes would 991 // empty progress marker. Which is ok as the rest of the changes would
992 // be downloaded on a regular nudge and initial_sync_ended should be set 992 // be downloaded on a regular nudge and initial_sync_ended should be set
993 // to true. However this is a very corner case. So it is not explicitly 993 // to true. However this is a very corner case. So it is not explicitly
994 // handled. 994 // handled.
995 pending_config_mode_state_->added_types = 995 pending_config_mode_state_->added_types =
996 sync_api::GetTypesWithEmptyProgressMarkerToken(enabled_types, 996 sync_api::GetTypesWithEmptyProgressMarkerToken(enabled_types,
997 GetUserShare()); 997 GetUserShare());
998 } 998 }
999 999
1000 // If we've added types, we always want to request a nudge/config (even if 1000 // If we've added types, we always want to request a nudge/config (even if
1001 // the initial sync is ended), in case we could not decrypt the data. 1001 // the initial sync is ended), in case we could not decrypt the data.
1002 if (pending_config_mode_state_->added_types.Empty()) { 1002 if (pending_config_mode_state_->added_types.Empty()) {
1003 SVLOG(1) << "No new types added; calling ready_task directly"; 1003 SVLOG(1) << "No new types added; calling ready_task directly";
1004 // No new types - just notify the caller that the types are available. 1004 // No new types - just notify the caller that the types are available.
1005 const syncable::ModelEnumSet failed_configuration_types; 1005 const syncable::ModelTypeSet failed_configuration_types;
1006 pending_config_mode_state_->ready_task.Run(failed_configuration_types); 1006 pending_config_mode_state_->ready_task.Run(failed_configuration_types);
1007 } else { 1007 } else {
1008 pending_download_state_.reset(pending_config_mode_state_.release()); 1008 pending_download_state_.reset(pending_config_mode_state_.release());
1009 1009
1010 // Always configure nigori if it's enabled. 1010 // Always configure nigori if it's enabled.
1011 syncable::ModelEnumSet types_to_config = 1011 syncable::ModelTypeSet types_to_config =
1012 pending_download_state_->added_types; 1012 pending_download_state_->added_types;
1013 if (IsNigoriEnabled()) { 1013 if (IsNigoriEnabled()) {
1014 // Note: Nigori is the only type that gets added with a nonempty 1014 // Note: Nigori is the only type that gets added with a nonempty
1015 // progress marker during config. If the server returns a migration 1015 // progress marker during config. If the server returns a migration
1016 // error then we will go into unrecoverable error. We dont handle it 1016 // error then we will go into unrecoverable error. We dont handle it
1017 // explicitly because server might help us out here by not sending a 1017 // explicitly because server might help us out here by not sending a
1018 // migraiton error for nigori during config. 1018 // migraiton error for nigori during config.
1019 types_to_config.Put(syncable::NIGORI); 1019 types_to_config.Put(syncable::NIGORI);
1020 } 1020 }
1021 SVLOG(1) << "Types " 1021 SVLOG(1) << "Types "
1022 << syncable::ModelEnumSetToString(types_to_config) 1022 << syncable::ModelTypeSetToString(types_to_config)
1023 << " added; calling DoRequestConfig"; 1023 << " added; calling DoRequestConfig";
1024 sync_thread_.message_loop()->PostTask(FROM_HERE, 1024 sync_thread_.message_loop()->PostTask(FROM_HERE,
1025 base::Bind(&SyncBackendHost::Core::DoRequestConfig, 1025 base::Bind(&SyncBackendHost::Core::DoRequestConfig,
1026 core_.get(), 1026 core_.get(),
1027 types_to_config, 1027 types_to_config,
1028 pending_download_state_->reason)); 1028 pending_download_state_->reason));
1029 } 1029 }
1030 1030
1031 pending_config_mode_state_.reset(); 1031 pending_config_mode_state_.reset();
1032 1032
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1073 FROM_HERE, 1073 FROM_HERE,
1074 base::Bind(&SyncBackendHost::Core::DoRefreshEncryption, 1074 base::Bind(&SyncBackendHost::Core::DoRefreshEncryption,
1075 core_.get(), sync_thread_done_callback)); 1075 core_.get(), sync_thread_done_callback));
1076 } 1076 }
1077 1077
1078 #undef SVLOG 1078 #undef SVLOG
1079 1079
1080 #undef SLOG 1080 #undef SLOG
1081 1081
1082 } // namespace browser_sync 1082 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/sync_backend_host.h ('k') | chrome/browser/sync/glue/sync_backend_host_mock.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698