Index: sync/engine/sync_scheduler.h |
diff --git a/sync/engine/sync_scheduler.h b/sync/engine/sync_scheduler.h |
index 37ca968c928341f46a96a7c43cca66ba48e253d3..4e5e694b94d1436ab003239b0a86c4a289575832 100644 |
--- a/sync/engine/sync_scheduler.h |
+++ b/sync/engine/sync_scheduler.h |
@@ -46,6 +46,14 @@ struct SYNC_EXPORT_PRIVATE ConfigurationParams { |
base::Closure retry_task; |
}; |
+struct SYNC_EXPORT_PRIVATE ClearParams { |
+ ClearParams(const base::Closure& report_success_task); |
+ ~ClearParams(); |
+ |
+ // Callback to invoke on successful completion. |
+ base::Closure report_success_task; |
+}; |
+ |
class SYNC_EXPORT_PRIVATE SyncScheduler |
: public sessions::SyncSession::Delegate { |
public: |
@@ -55,6 +63,10 @@ class SYNC_EXPORT_PRIVATE SyncScheduler |
// specific type only, and not continue syncing until we are moved into |
// normal mode. |
CONFIGURATION_MODE, |
+ // This mode is used to issue a clear server data command. The scheduler |
+ // may only transition to this mode from the CONFIGURATION_MODE. When in |
+ // this mode, the only schedulable operation is |SchedulerClearServerData|. |
+ CLEAR_SERVER_DATA_MODE, |
// Resumes polling and allows nudges, drops configuration tasks. Runs |
// through entire sync cycle. |
NORMAL_MODE, |
@@ -81,6 +93,11 @@ class SYNC_EXPORT_PRIVATE SyncScheduler |
// Note: must already be in CONFIGURATION mode. |
virtual void ScheduleConfiguration(const ConfigurationParams& params) = 0; |
+ // Schedules clear of server data in preparation for transitioning to |
+ // passphrase encryption. The scheduler must be in CLEAR_SERVER_DATA_MODE |
+ // before calling this method. |
+ virtual void ScheduleClearServerData(const ClearParams& params) = 0; |
+ |
// Request that the syncer avoid starting any new tasks and prepare for |
// shutdown. |
virtual void Stop() = 0; |