| Index: chrome/browser/sync/engine/sync_scheduler.cc
|
| diff --git a/chrome/browser/sync/engine/sync_scheduler.cc b/chrome/browser/sync/engine/sync_scheduler.cc
|
| index f87d83a003bf2140eb7f83d9a0fa98e624e4f4d3..da39e737fb36bdec1bcb228c295da8987a6257e3 100644
|
| --- a/chrome/browser/sync/engine/sync_scheduler.cc
|
| +++ b/chrome/browser/sync/engine/sync_scheduler.cc
|
| @@ -75,6 +75,7 @@ const char* SyncScheduler::SyncSessionJob::GetPurposeString(
|
| ENUM_CASE(NUDGE);
|
| ENUM_CASE(CLEAR_USER_DATA);
|
| ENUM_CASE(CONFIGURATION);
|
| + ENUM_CASE(CLEANUP_DISABLED_TYPES);
|
| }
|
| NOTREACHED();
|
| return "";
|
| @@ -391,6 +392,13 @@ void SyncScheduler::ScheduleClearUserData() {
|
| &SyncScheduler::ScheduleClearUserDataImpl));
|
| }
|
|
|
| +void SyncScheduler::ScheduleDisabledTypesCleanup() {
|
| + DCHECK_EQ(MessageLoop::current(), sync_loop_);
|
| + PostTask(FROM_HERE, "ScheduleDisabledTypesCleanup",
|
| + method_factory_.NewRunnableMethod(
|
| + &SyncScheduler::ScheduleDisabledTypesCleanupImpl));
|
| +}
|
| +
|
| void SyncScheduler::ScheduleNudge(
|
| const TimeDelta& delay,
|
| NudgeSource source, const ModelTypeBitSet& types,
|
| @@ -430,13 +438,24 @@ void SyncScheduler::ScheduleNudgeWithPayloads(
|
|
|
| void SyncScheduler::ScheduleClearUserDataImpl() {
|
| DCHECK_EQ(MessageLoop::current(), sync_loop_);
|
| - SyncSession* session = new SyncSession(session_context_.get(), this,
|
| - SyncSourceInfo(), ModelSafeRoutingInfo(),
|
| - std::vector<ModelSafeWorker*>());
|
| + SyncSession* session =
|
| + new SyncSession(session_context_.get(), this,
|
| + SyncSourceInfo(), ModelSafeRoutingInfo(),
|
| + std::vector<ModelSafeWorker*>());
|
| ScheduleSyncSessionJob(TimeDelta::FromSeconds(0),
|
| SyncSessionJob::CLEAR_USER_DATA, session, FROM_HERE);
|
| }
|
|
|
| +void SyncScheduler::ScheduleDisabledTypesCleanupImpl() {
|
| + DCHECK_EQ(MessageLoop::current(), sync_loop_);
|
| + SyncSession* session =
|
| + new SyncSession(session_context_.get(), this,
|
| + SyncSourceInfo(), ModelSafeRoutingInfo(),
|
| + std::vector<ModelSafeWorker*>());
|
| + ScheduleSyncSessionJob(TimeDelta::FromSeconds(0),
|
| + SyncSessionJob::CLEANUP_DISABLED_TYPES, session, FROM_HERE);
|
| +}
|
| +
|
| void SyncScheduler::ScheduleNudgeImpl(
|
| const TimeDelta& delay,
|
| GetUpdatesCallerInfo::GetUpdatesSource source,
|
| @@ -631,7 +650,6 @@ void SyncScheduler::SetSyncerStepsForPurpose(
|
| SyncSessionJob::SyncSessionJobPurpose purpose,
|
| SyncerStep* start, SyncerStep* end) {
|
| DCHECK_EQ(MessageLoop::current(), sync_loop_);
|
| - *end = SYNCER_END;
|
| switch (purpose) {
|
| case SyncSessionJob::CONFIGURATION:
|
| *start = DOWNLOAD_UPDATES;
|
| @@ -639,13 +657,22 @@ void SyncScheduler::SetSyncerStepsForPurpose(
|
| return;
|
| case SyncSessionJob::CLEAR_USER_DATA:
|
| *start = CLEAR_PRIVATE_DATA;
|
| + *end = CLEAR_PRIVATE_DATA;
|
| + return;
|
| + case SyncSessionJob::CLEANUP_DISABLED_TYPES:
|
| + *start = CLEANUP_DISABLED_TYPES;
|
| + *end = CLEANUP_DISABLED_TYPES;
|
| return;
|
| case SyncSessionJob::NUDGE:
|
| case SyncSessionJob::POLL:
|
| *start = SYNCER_BEGIN;
|
| + *end = SYNCER_END;
|
| return;
|
| default:
|
| NOTREACHED();
|
| + *start = SYNCER_END;
|
| + *end = SYNCER_END;
|
| + return;
|
| }
|
| }
|
|
|
| @@ -677,7 +704,7 @@ void SyncScheduler::DoSyncSessionJob(const SyncSessionJob& job) {
|
| SVLOG(2) << "DoSyncSessionJob with "
|
| << SyncSessionJob::GetPurposeString(job.purpose) << " job";
|
|
|
| - SyncerStep begin(SYNCER_BEGIN);
|
| + SyncerStep begin(SYNCER_END);
|
| SyncerStep end(SYNCER_END);
|
| SetSyncerStepsForPurpose(job.purpose, &begin, &end);
|
|
|
|
|