summaryrefslogtreecommitdiffstats
path: root/sync/internal_api/public/sync_manager.h
diff options
context:
space:
mode:
authorzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 02:30:24 +0000
committerzea@chromium.org <zea@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 02:30:24 +0000
commit1f51ad94964af7f256ac1d762a04cfac1e9935c5 (patch)
tree621e43948dbd9825f0d1ab1f501ab0a91bbe9ede /sync/internal_api/public/sync_manager.h
parent3c372a1ae0e609691994bc74ade55175a3e2ea97 (diff)
downloadchromium_src-1f51ad94964af7f256ac1d762a04cfac1e9935c5.zip
chromium_src-1f51ad94964af7f256ac1d762a04cfac1e9935c5.tar.gz
chromium_src-1f51ad94964af7f256ac1d762a04cfac1e9935c5.tar.bz2
[Sync] Allow enabling partial sets of types instead of blocking
Blocking the datatype manager when datatypes fail to start is a sign of encryption issues, but is not fatal to sync. Therefore, it makes more sense to sync what we can (particularly so we can receive birthday updates), while marking those types with encryption problems as failed. To accomplish this we move all automatic reconfiguration logic into the data type manager itself, and add support for delayed association by unapplying all types with cryptographer errors. This also lays the groundwork for delayed association when a transaction version discrepancy is detected. BUG=238712 Review URL: https://chromiumcodereview.appspot.com/15013004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204695 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/internal_api/public/sync_manager.h')
-rw-r--r--sync/internal_api/public/sync_manager.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/sync/internal_api/public/sync_manager.h b/sync/internal_api/public/sync_manager.h
index d754bf0..3f961fb 100644
--- a/sync/internal_api/public/sync_manager.h
+++ b/sync/internal_api/public/sync_manager.h
@@ -375,16 +375,20 @@ class SYNC_EXPORT SyncManager {
// syncer will remain in CONFIGURATION_MODE until StartSyncingNormally is
// called.
// Data whose types are not in |new_routing_info| are purged from sync
- // directory. The purged data is backed up in delete journal for recovery in
- // next session if its type is in |failed_types|.
+ // directory, unless they're part of |to_ignore|, in which case they're left
+ // untouched. The purged data is backed up in delete journal for recovery in
+ // next session if its type is in |to_journal|. If in |to_unapply|
+ // only the local data is removed; the server data is preserved.
// |ready_task| is invoked when the configuration completes.
// |retry_task| is invoked if the configuration job could not immediately
// execute. |ready_task| will still be called when it eventually
// does finish.
virtual void ConfigureSyncer(
ConfigureReason reason,
- ModelTypeSet types_to_config,
- ModelTypeSet failed_types,
+ ModelTypeSet to_download,
+ ModelTypeSet to_journal,
+ ModelTypeSet to_unapply,
+ ModelTypeSet to_ignore,
const ModelSafeRoutingInfo& new_routing_info,
const base::Closure& ready_task,
const base::Closure& retry_task) = 0;