Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Unified Diff: components/sync/engine/engine_components_factory_impl.cc

Issue 2479313004: [sync] "TwoClientBookmarksSyncTest.Sanity" is flaky (Closed)
Patch Set: addressed comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/sync/engine/engine_components_factory_impl.cc
diff --git a/components/sync/engine/engine_components_factory_impl.cc b/components/sync/engine/engine_components_factory_impl.cc
index 73c7a551f48132d2bc4bae63c3dddb3690ebe333..d3d3a88057b32d315b66dde205f32543760f1530 100644
--- a/components/sync/engine/engine_components_factory_impl.cc
+++ b/components/sync/engine/engine_components_factory_impl.cc
@@ -4,6 +4,7 @@
#include "components/sync/engine/engine_components_factory_impl.h"
+#include "base/memory/ptr_util.h"
#include "components/sync/engine_impl/backoff_delay_provider.h"
#include "components/sync/engine_impl/cycle/sync_cycle_context.h"
#include "components/sync/engine_impl/sync_scheduler_impl.h"
@@ -12,6 +13,10 @@
using base::TimeDelta;
+namespace {
+const int kShortNudgeDelayDurationMS = 1;
+}
+
namespace syncer {
EngineComponentsFactoryImpl::EngineComponentsFactoryImpl(
@@ -27,11 +32,28 @@ std::unique_ptr<SyncScheduler> EngineComponentsFactoryImpl::BuildScheduler(
std::unique_ptr<BackoffDelayProvider> delay(
BackoffDelayProvider::FromDefaults());
- if (switches_.backoff_override == BACKOFF_SHORT_INITIAL_RETRY_OVERRIDE)
+ if (switches_.backoff_override == BACKOFF_SHORT_INITIAL_RETRY_OVERRIDE) {
delay.reset(BackoffDelayProvider::WithShortInitialRetryOverride());
+ }
- return std::unique_ptr<SyncScheduler>(new SyncSchedulerImpl(
- name, delay.release(), context, new Syncer(cancelation_signal)));
+ std::unique_ptr<SyncSchedulerImpl> scheduler =
+ base::MakeUnique<SyncSchedulerImpl>(name, delay.release(), context,
+ new Syncer(cancelation_signal));
+ if (switches_.nudge_delay == NudgeDelay::SHORT_NUDGE_DELAY) {
+ // Set the default nudge delay to 0 because the default is used as a floor
+ // for override values, and we don't want the below override to be ignored.
+ scheduler->SetDefaultNudgeDelay(TimeDelta::FromMilliseconds(0));
+ // Only protocol types can have their delay customized.
+ ModelTypeSet protocol_types = syncer::ProtocolTypes();
+ std::map<ModelType, base::TimeDelta> nudge_delays;
+ for (ModelTypeSet::Iterator it = protocol_types.First(); it.Good();
+ it.Inc()) {
+ nudge_delays[it.Get()] =
+ TimeDelta::FromMilliseconds(kShortNudgeDelayDurationMS);
+ }
+ scheduler->OnReceivedCustomNudgeDelays(nudge_delays);
+ }
+ return std::move(scheduler);
}
std::unique_ptr<SyncCycleContext> EngineComponentsFactoryImpl::BuildContext(
« no previous file with comments | « components/sync/engine/engine_components_factory.h ('k') | components/sync/engine_impl/sync_scheduler_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698