Index: trunk/src/sync/engine/sync_scheduler_impl.cc |
=================================================================== |
--- trunk/src/sync/engine/sync_scheduler_impl.cc (revision 244437) |
+++ trunk/src/sync/engine/sync_scheduler_impl.cc (working copy) |
@@ -234,8 +234,7 @@ |
if (old_mode != mode_ && |
mode_ == NORMAL_MODE && |
- (nudge_tracker_.IsSyncRequired() || |
- nudge_tracker_.IsRetryRequired(base::TimeTicks::Now())) && |
+ nudge_tracker_.IsSyncRequired() && |
CanRunNudgeJobNow(NORMAL_PRIORITY)) { |
// We just got back to normal mode. Let's try to run the work that was |
// queued up while we were configuring. |
@@ -470,7 +469,7 @@ |
if (success) { |
// That cycle took care of any outstanding work we had. |
SDVLOG(2) << "Nudge succeeded."; |
- nudge_tracker_.RecordSuccessfulSyncCycle(base::TimeTicks::Now()); |
+ nudge_tracker_.RecordSuccessfulSyncCycle(); |
scheduled_nudge_time_ = base::TimeTicks(); |
// If we're here, then we successfully reached the server. End all backoff. |
@@ -550,8 +549,18 @@ |
void SyncSchedulerImpl::DoPollSyncSessionJob() { |
base::AutoReset<bool> protector(&no_scheduling_allowed_, true); |
+ if (!CanRunJobNow(NORMAL_PRIORITY)) { |
+ SDVLOG(2) << "Unable to run a poll job right now."; |
+ return; |
+ } |
+ |
+ if (mode_ != NORMAL_MODE) { |
+ SDVLOG(2) << "Not running poll job in configure mode."; |
+ return; |
+ } |
+ |
SDVLOG(2) << "Polling with types " |
- << ModelTypeSetToString(GetEnabledAndUnthrottledTypes()); |
+ << ModelTypeSetToString(session_context_->enabled_types()); |
scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this)); |
syncer_->PollSyncShare( |
GetEnabledAndUnthrottledTypes(), |
@@ -567,25 +576,6 @@ |
} |
} |
-void SyncSchedulerImpl::DoRetrySyncSessionJob() { |
- DCHECK(CalledOnValidThread()); |
- DCHECK_EQ(mode_, NORMAL_MODE); |
- |
- base::AutoReset<bool> protector(&no_scheduling_allowed_, true); |
- |
- SDVLOG(2) << "Retrying with types " |
- << ModelTypeSetToString(GetEnabledAndUnthrottledTypes()); |
- scoped_ptr<SyncSession> session(SyncSession::Build(session_context_, this)); |
- if (syncer_->RetrySyncShare(GetEnabledAndUnthrottledTypes(), |
- session.get()) && |
- !sessions::HasSyncerError( |
- session->status_controller().model_neutral_state())) { |
- nudge_tracker_.RecordSuccessfulSyncCycle(base::TimeTicks::Now()); |
- } else { |
- HandleFailure(session->status_controller().model_neutral_state()); |
- } |
-} |
- |
void SyncSchedulerImpl::UpdateNudgeTimeRecords(ModelTypeSet types) { |
DCHECK(CalledOnValidThread()); |
base::TimeTicks now = TimeTicks::Now(); |
@@ -693,12 +683,11 @@ |
SDVLOG(2) << "Found pending configure job"; |
DoConfigurationSyncSessionJob(priority); |
} |
- } else if (CanRunNudgeJobNow(priority)) { |
- if (nudge_tracker_.IsSyncRequired()) { |
+ } else { |
+ DCHECK(mode_ == NORMAL_MODE); |
+ if (nudge_tracker_.IsSyncRequired() && CanRunNudgeJobNow(priority)) { |
SDVLOG(2) << "Found pending nudge job"; |
DoNudgeSyncSessionJob(priority); |
- } else if (nudge_tracker_.IsRetryRequired(base::TimeTicks::Now())) { |
- DoRetrySyncSessionJob(); |
} else if (do_poll_after_credentials_updated_ || |
((base::TimeTicks::Now() - last_poll_reset_) >= GetPollInterval())) { |
DoPollSyncSessionJob(); |
@@ -748,10 +737,6 @@ |
TrySyncSessionJob(); |
} |
-void SyncSchedulerImpl::RetryTimerCallback() { |
- TrySyncSessionJob(); |
-} |
- |
void SyncSchedulerImpl::Unthrottle() { |
DCHECK(CalledOnValidThread()); |
DCHECK_EQ(WaitInterval::THROTTLED, wait_interval_->mode); |
@@ -905,12 +890,6 @@ |
OnActionableError(snapshot); |
} |
-void SyncSchedulerImpl::OnReceivedGuRetryDelay(const base::TimeDelta& delay) { |
- nudge_tracker_.set_next_retry_time(base::TimeTicks::Now() + delay); |
- retry_timer_.Start(FROM_HERE, delay, this, |
- &SyncSchedulerImpl::RetryTimerCallback); |
-} |
- |
void SyncSchedulerImpl::SetNotificationsEnabled(bool notifications_enabled) { |
DCHECK(CalledOnValidThread()); |
session_context_->set_notifications_enabled(notifications_enabled); |