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

Side by Side Diff: components/sync/engine_impl/syncer.cc

Issue 2718533003: [Sync] Adjust types to configure during shutdown (Closed)
Patch Set: Created 3 years, 10 months 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 | « chrome/browser/sync/test/integration/sync_errors_test.cc ('k') | no next file » | 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 "components/sync/engine_impl/syncer.h" 5 #include "components/sync/engine_impl/syncer.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 } 75 }
76 76
77 bool Syncer::ConfigureSyncShare( 77 bool Syncer::ConfigureSyncShare(
78 ModelTypeSet request_types, 78 ModelTypeSet request_types,
79 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source, 79 sync_pb::GetUpdatesCallerInfo::GetUpdatesSource source,
80 SyncCycle* cycle) { 80 SyncCycle* cycle) {
81 base::AutoReset<bool> is_syncing(&is_syncing_, true); 81 base::AutoReset<bool> is_syncing(&is_syncing_, true);
82 VLOG(1) << "Configuring types " << ModelTypeSetToString(request_types); 82 VLOG(1) << "Configuring types " << ModelTypeSetToString(request_types);
83 HandleCycleBegin(cycle); 83 HandleCycleBegin(cycle);
84 ConfigureGetUpdatesDelegate configure_delegate(source); 84 ConfigureGetUpdatesDelegate configure_delegate(source);
85
86 // It is possible during shutdown that datatypes get unregistered from
87 // ModelTypeRegistry before scheduled configure sync cycle gets executed.
88 // When it happens we should adjust set of types to download to only include
89 // registered types.
90 if (cancelation_signal_->IsSignalled())
skym 2017/02/24 17:04:25 Would be good to have a unit test for this as well
pavely 2017/02/24 18:54:32 Done.
91 request_types.RetainAll(
92 cycle->context()->model_type_registry()->GetEnabledTypes());
93
85 GetUpdatesProcessor get_updates_processor( 94 GetUpdatesProcessor get_updates_processor(
86 cycle->context()->model_type_registry()->update_handler_map(), 95 cycle->context()->model_type_registry()->update_handler_map(),
87 configure_delegate); 96 configure_delegate);
88 DownloadAndApplyUpdates(&request_types, cycle, &get_updates_processor, 97 DownloadAndApplyUpdates(&request_types, cycle, &get_updates_processor,
89 kCreateMobileBookmarksFolder); 98 kCreateMobileBookmarksFolder);
90 return HandleCycleEnd(cycle, source); 99 return HandleCycleEnd(cycle, source);
91 } 100 }
92 101
93 bool Syncer::PollSyncShare(ModelTypeSet request_types, SyncCycle* cycle) { 102 bool Syncer::PollSyncShare(ModelTypeSet request_types, SyncCycle* cycle) {
94 base::AutoReset<bool> is_syncing(&is_syncing_, true); 103 base::AutoReset<bool> is_syncing(&is_syncing_, true);
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 } 200 }
192 201
193 bool Syncer::PostClearServerData(SyncCycle* cycle) { 202 bool Syncer::PostClearServerData(SyncCycle* cycle) {
194 DCHECK(cycle); 203 DCHECK(cycle);
195 ClearServerData clear_server_data(cycle->context()->account_name()); 204 ClearServerData clear_server_data(cycle->context()->account_name());
196 const SyncerError post_result = clear_server_data.SendRequest(cycle); 205 const SyncerError post_result = clear_server_data.SendRequest(cycle);
197 return post_result == SYNCER_OK; 206 return post_result == SYNCER_OK;
198 } 207 }
199 208
200 } // namespace syncer 209 } // namespace syncer
OLDNEW
« no previous file with comments | « chrome/browser/sync/test/integration/sync_errors_test.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698