diff options
author | rlarocque@chromium.org <rlarocque@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-14 19:45:30 +0000 |
---|---|---|
committer | rlarocque@chromium.org <rlarocque@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-14 19:45:30 +0000 |
commit | d9d8f9f150646e0adcb2948097cea99f89db41c4 (patch) | |
tree | 77437a172d1a057e8c465b20ec8ef517187dddde /sync/internal_api/sync_manager_impl.h | |
parent | 3c6de13983e12c3506fd53502fc92075b2595136 (diff) | |
download | chromium_src-d9d8f9f150646e0adcb2948097cea99f89db41c4.zip chromium_src-d9d8f9f150646e0adcb2948097cea99f89db41c4.tar.gz chromium_src-d9d8f9f150646e0adcb2948097cea99f89db41c4.tar.bz2 |
sync: Handle type throttling in NudgeTracker
This change removes the ThrottledDataTypeTracker and moves much of its
functionality into the NudgeTracker. This allows us to better control
throttling behavior and fix crbug.com/155296.
This CL re-routes syncer_proto_util type throttling callbacks through
the SyncSession::Delegate to the SyncScheduler. It adds a timer and
some related functions to the SyncScheduler, so the scheduler can now
wake up, unthrottle types, and attempt a sync cycle at the exact time
when throttling expires.
The information about which types are currently throttled has been moved
to the NudgeTracker. This allows the NudgeTracker to take type
throttling into account in functions like NudgeTracker::IsSyncRequired()
and NudgeTracker::RecordSuccessfulSyncCycle().
The DownloadUpdatesCommand's special case for nudge-type syncs has been
extended to take throttling into account. GetCommitIdsCommand has been
updated to fetch its list of throttled types from the nudge tracker.
Unfortunately, this meant that committing from poll-triggered sync
sessions had to be disabled, since poll sync cycles do not have access
to the nudge tracker.
BUG=155296, 116184
Review URL: https://chromiumcodereview.appspot.com/16402013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206475 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/internal_api/sync_manager_impl.h')
-rw-r--r-- | sync/internal_api/sync_manager_impl.h | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/sync/internal_api/sync_manager_impl.h b/sync/internal_api/sync_manager_impl.h index a078e6a..3d2c2cf 100644 --- a/sync/internal_api/sync_manager_impl.h +++ b/sync/internal_api/sync_manager_impl.h @@ -13,7 +13,6 @@ #include "sync/engine/all_status.h" #include "sync/engine/net/server_connection_manager.h" #include "sync/engine/sync_engine_event.h" -#include "sync/engine/throttled_data_type_tracker.h" #include "sync/engine/traffic_recorder.h" #include "sync/internal_api/change_reorder_buffer.h" #include "sync/internal_api/debug_info_event_listener.h" @@ -374,8 +373,6 @@ class SYNC_EXPORT_PRIVATE SyncManagerImpl : JsMutationEventObserver js_mutation_event_observer_; JsSyncEncryptionHandlerObserver js_sync_encryption_handler_observer_; - ThrottledDataTypeTracker throttled_data_type_tracker_; - // This is for keeping track of client events to send to the server. DebugInfoEventListener debug_info_event_listener_; |