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

Side by Side Diff: components/sync/driver/glue/sync_backend_host_core.cc

Issue 2563883006: [Sync] Separate purge types step from sync manager configuration. (Closed)
Patch Set: Created 4 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "components/sync/driver/glue/sync_backend_host_core.h" 5 #include "components/sync/driver/glue/sync_backend_host_core.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 restored_keystore_key_for_bootstrapping( 95 restored_keystore_key_for_bootstrapping(
96 restored_keystore_key_for_bootstrapping), 96 restored_keystore_key_for_bootstrapping),
97 engine_components_factory(std::move(engine_components_factory)), 97 engine_components_factory(std::move(engine_components_factory)),
98 unrecoverable_error_handler(unrecoverable_error_handler), 98 unrecoverable_error_handler(unrecoverable_error_handler),
99 report_unrecoverable_error_function(report_unrecoverable_error_function), 99 report_unrecoverable_error_function(report_unrecoverable_error_function),
100 saved_nigori_state(std::move(saved_nigori_state)), 100 saved_nigori_state(std::move(saved_nigori_state)),
101 invalidation_versions(invalidation_versions) {} 101 invalidation_versions(invalidation_versions) {}
102 102
103 DoInitializeOptions::~DoInitializeOptions() {} 103 DoInitializeOptions::~DoInitializeOptions() {}
104 104
105 DoConfigureSyncerTypes::DoConfigureSyncerTypes() {}
106
107 DoConfigureSyncerTypes::DoConfigureSyncerTypes(
108 const DoConfigureSyncerTypes& other) = default;
109
110 DoConfigureSyncerTypes::~DoConfigureSyncerTypes() {}
111
112 SyncBackendHostCore::SyncBackendHostCore( 105 SyncBackendHostCore::SyncBackendHostCore(
113 const std::string& name, 106 const std::string& name,
114 const base::FilePath& sync_data_folder_path, 107 const base::FilePath& sync_data_folder_path,
115 const base::WeakPtr<SyncBackendHostImpl>& backend) 108 const base::WeakPtr<SyncBackendHostImpl>& backend)
116 : name_(name), 109 : name_(name),
117 sync_data_folder_path_(sync_data_folder_path), 110 sync_data_folder_path_(sync_data_folder_path),
118 host_(backend), 111 host_(backend),
119 weak_ptr_factory_(this) { 112 weak_ptr_factory_(this) {
120 DCHECK(backend.get()); 113 DCHECK(backend.get());
121 // This is constructed on the UI thread but used from the sync thread. 114 // This is constructed on the UI thread but used from the sync thread.
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 ModelTypeSet new_control_types = 188 ModelTypeSet new_control_types =
196 registrar_->ConfigureDataTypes(ControlTypes(), ModelTypeSet()); 189 registrar_->ConfigureDataTypes(ControlTypes(), ModelTypeSet());
197 ModelSafeRoutingInfo routing_info; 190 ModelSafeRoutingInfo routing_info;
198 registrar_->GetModelSafeRoutingInfo(&routing_info); 191 registrar_->GetModelSafeRoutingInfo(&routing_info);
199 SDVLOG(1) << "Control Types " << ModelTypeSetToString(new_control_types) 192 SDVLOG(1) << "Control Types " << ModelTypeSetToString(new_control_types)
200 << " added; calling ConfigureSyncer"; 193 << " added; calling ConfigureSyncer";
201 194
202 ModelTypeSet types_to_purge = 195 ModelTypeSet types_to_purge =
203 Difference(ModelTypeSet::All(), GetRoutingInfoTypes(routing_info)); 196 Difference(ModelTypeSet::All(), GetRoutingInfoTypes(routing_info));
204 197
198 sync_manager_->PurgeDisabledTypes(types_to_purge, ModelTypeSet(),
199 ModelTypeSet());
205 sync_manager_->ConfigureSyncer( 200 sync_manager_->ConfigureSyncer(
206 reason, new_control_types, types_to_purge, ModelTypeSet(), ModelTypeSet(), 201 reason, new_control_types, routing_info,
207 routing_info,
208 base::Bind(&SyncBackendHostCore::DoInitialProcessControlTypes, 202 base::Bind(&SyncBackendHostCore::DoInitialProcessControlTypes,
209 weak_ptr_factory_.GetWeakPtr()), 203 weak_ptr_factory_.GetWeakPtr()),
210 base::Closure()); 204 base::Closure());
211 } 205 }
212 206
213 void SyncBackendHostCore::OnConnectionStatusChange(ConnectionStatus status) { 207 void SyncBackendHostCore::OnConnectionStatusChange(ConnectionStatus status) {
214 DCHECK(thread_checker_.CalledOnValidThread()); 208 DCHECK(thread_checker_.CalledOnValidThread());
215 host_.Call(FROM_HERE, 209 host_.Call(FROM_HERE,
216 &SyncBackendHostImpl::HandleConnectionStatusChangeOnFrontendLoop, 210 &SyncBackendHostImpl::HandleConnectionStatusChangeOnFrontendLoop,
217 status); 211 status);
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 this); 541 this);
548 if (sync_manager_) { 542 if (sync_manager_) {
549 DisableDirectoryTypeDebugInfoForwarding(); 543 DisableDirectoryTypeDebugInfoForwarding();
550 save_changes_timer_.reset(); 544 save_changes_timer_.reset();
551 sync_manager_->RemoveObserver(this); 545 sync_manager_->RemoveObserver(this);
552 sync_manager_->ShutdownOnSyncThread(reason); 546 sync_manager_->ShutdownOnSyncThread(reason);
553 sync_manager_.reset(); 547 sync_manager_.reset();
554 } 548 }
555 } 549 }
556 550
551 void SyncBackendHostCore::DoPurgeDisabledTypes(const ModelTypeSet& to_purge,
552 const ModelTypeSet& to_journal,
553 const ModelTypeSet& to_unapply) {
554 DCHECK(thread_checker_.CalledOnValidThread());
555 sync_manager_->PurgeDisabledTypes(to_purge, to_journal, to_unapply);
556 }
557
557 void SyncBackendHostCore::DoConfigureSyncer( 558 void SyncBackendHostCore::DoConfigureSyncer(
558 ConfigureReason reason, 559 ConfigureReason reason,
559 const DoConfigureSyncerTypes& config_types, 560 const ModelTypeSet& to_download,
560 const ModelSafeRoutingInfo routing_info, 561 const ModelSafeRoutingInfo routing_info,
561 const base::Callback<void(ModelTypeSet, ModelTypeSet)>& ready_task, 562 const base::Callback<void(ModelTypeSet, ModelTypeSet)>& ready_task,
562 const base::Closure& retry_callback) { 563 const base::Closure& retry_callback) {
563 DCHECK(thread_checker_.CalledOnValidThread()); 564 DCHECK(thread_checker_.CalledOnValidThread());
564 DCHECK(!ready_task.is_null()); 565 DCHECK(!ready_task.is_null());
565 DCHECK(!retry_callback.is_null()); 566 DCHECK(!retry_callback.is_null());
566 base::Closure chained_ready_task(base::Bind( 567 base::Closure chained_ready_task(
567 &SyncBackendHostCore::DoFinishConfigureDataTypes, 568 base::Bind(&SyncBackendHostCore::DoFinishConfigureDataTypes,
568 weak_ptr_factory_.GetWeakPtr(), config_types.to_download, ready_task)); 569 weak_ptr_factory_.GetWeakPtr(), to_download, ready_task));
569 base::Closure chained_retry_task( 570 base::Closure chained_retry_task(
570 base::Bind(&SyncBackendHostCore::DoRetryConfiguration, 571 base::Bind(&SyncBackendHostCore::DoRetryConfiguration,
571 weak_ptr_factory_.GetWeakPtr(), retry_callback)); 572 weak_ptr_factory_.GetWeakPtr(), retry_callback));
572 sync_manager_->ConfigureSyncer(reason, config_types.to_download, 573 sync_manager_->ConfigureSyncer(reason, to_download, routing_info,
573 config_types.to_purge, config_types.to_journal,
574 config_types.to_unapply, routing_info,
575 chained_ready_task, chained_retry_task); 574 chained_ready_task, chained_retry_task);
576 } 575 }
577 576
578 void SyncBackendHostCore::DoFinishConfigureDataTypes( 577 void SyncBackendHostCore::DoFinishConfigureDataTypes(
579 ModelTypeSet types_to_config, 578 ModelTypeSet types_to_config,
580 const base::Callback<void(ModelTypeSet, ModelTypeSet)>& ready_task) { 579 const base::Callback<void(ModelTypeSet, ModelTypeSet)>& ready_task) {
581 DCHECK(thread_checker_.CalledOnValidThread()); 580 DCHECK(thread_checker_.CalledOnValidThread());
582 581
583 // Update the enabled types for the bridge and sync manager. 582 // Update the enabled types for the bridge and sync manager.
584 ModelSafeRoutingInfo routing_info; 583 ModelSafeRoutingInfo routing_info;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 } 688 }
690 689
691 void SyncBackendHostCore::ClearServerDataDone( 690 void SyncBackendHostCore::ClearServerDataDone(
692 const base::Closure& frontend_callback) { 691 const base::Closure& frontend_callback) {
693 DCHECK(thread_checker_.CalledOnValidThread()); 692 DCHECK(thread_checker_.CalledOnValidThread());
694 host_.Call(FROM_HERE, &SyncBackendHostImpl::ClearServerDataDoneOnFrontendLoop, 693 host_.Call(FROM_HERE, &SyncBackendHostImpl::ClearServerDataDoneOnFrontendLoop,
695 frontend_callback); 694 frontend_callback);
696 } 695 }
697 696
698 } // namespace syncer 697 } // namespace syncer
OLDNEW
« no previous file with comments | « components/sync/driver/glue/sync_backend_host_core.h ('k') | components/sync/driver/glue/sync_backend_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698