Index: sync/engine/sync_scheduler_impl.h |
diff --git a/sync/engine/sync_scheduler_impl.h b/sync/engine/sync_scheduler_impl.h |
index e3c505b26027c2422344263ea065fc736e9ecdff..b7d8d0beef277cea87bd14162fa60ff777c14c40 100644 |
--- a/sync/engine/sync_scheduler_impl.h |
+++ b/sync/engine/sync_scheduler_impl.h |
@@ -51,7 +51,7 @@ class SYNC_EXPORT_PRIVATE SyncSchedulerImpl |
// Calls Stop(). |
~SyncSchedulerImpl() override; |
- void Start(Mode mode) override; |
+ void Start(Mode mode, base::Time last_poll_time) override; |
void ScheduleConfiguration(const ConfigurationParams& params) override; |
void Stop() override; |
void ScheduleLocalNudge( |
@@ -151,7 +151,10 @@ class SYNC_EXPORT_PRIVATE SyncSchedulerImpl |
// Invoke the syncer to perform a configuration job. |
void DoConfigurationSyncSessionJob(JobPriority priority); |
- // Helper function for Do{Nudge,Configuration}SyncSessionJob. |
+ // Helper function for Do{Nudge,Configuration,Poll}SyncSessionJob. |
+ void HandleSuccess(); |
+ |
+ // Helper function for Do{Nudge,Configuration,Poll}SyncSessionJob. |
void HandleFailure( |
const sessions::ModelNeutralState& model_neutral_state); |
@@ -246,8 +249,10 @@ class SYNC_EXPORT_PRIVATE SyncSchedulerImpl |
base::TimeDelta syncer_short_poll_interval_seconds_; |
base::TimeDelta syncer_long_poll_interval_seconds_; |
- // Periodic timer for polling. See AdjustPolling. |
- base::RepeatingTimer<SyncSchedulerImpl> poll_timer_; |
+ // Timer for polling. Restarted on each successful poll, and when entering |
+ // normal sync mode or exiting an error state. Not active in configuration |
+ // mode. |
+ base::OneShotTimer<SyncSchedulerImpl> poll_timer_; |
// The mode of operation. |
Mode mode_; |
@@ -291,15 +296,6 @@ class SYNC_EXPORT_PRIVATE SyncSchedulerImpl |
// could result in tight sync loops hitting sync servers. |
bool no_scheduling_allowed_; |
- // crbug/251307. This is a workaround for M29. crbug/259913 tracks proper fix |
- // for M30. |
- // The issue is that poll job runs after few hours of inactivity and therefore |
- // will always fail with auth error because of expired access token. Once |
- // fresh access token is requested poll job is not retried. |
- // The change is to remember that poll timer just fired and retry poll job |
- // after credentials are updated. |
- bool do_poll_after_credentials_updated_; |
- |
// TryJob might get called for multiple reasons. It should only call |
// DoPollSyncSessionJob after some time since the last attempt. |
// last_poll_reset_ keeps track of when was last attempt. |