Chromium Code Reviews| Index: chrome/browser/sync/startup_controller.cc |
| diff --git a/chrome/browser/sync/startup_controller.cc b/chrome/browser/sync/startup_controller.cc |
| index bd6c0c469b78061f73c0faacb3d20dc4e675a30c..0e1bae9269468ea5f61e661ee4608bb70897af9b 100644 |
| --- a/chrome/browser/sync/startup_controller.cc |
| +++ b/chrome/browser/sync/startup_controller.cc |
| @@ -7,6 +7,7 @@ |
| #include "base/command_line.h" |
| #include "base/message_loop/message_loop.h" |
| #include "base/metrics/histogram.h" |
| +#include "base/strings/string_number_conversions.h" |
| #include "chrome/browser/managed_mode/managed_user_signin_manager_wrapper.h" |
| #include "chrome/browser/signin/profile_oauth2_token_service.h" |
| #include "chrome/browser/sync/sync_prefs.h" |
| @@ -46,9 +47,17 @@ StartupController::StartupController( |
| token_service_(token_service), |
| signin_(signin), |
| start_backend_(start_backend), |
| - fallback_timeout_( |
| - base::TimeDelta::FromSeconds(kDeferredInitFallbackSeconds)), |
| - weak_factory_(this) {} |
| + weak_factory_(this) { |
| + |
| + int timeout = kDeferredInitFallbackSeconds; |
| + if (CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kSyncDeferredStartupTimeoutSeconds)) { |
| + base::StringToInt(CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
|
rlarocque
2014/03/07 20:00:27
Could you check the return value? And maybe sanit
|
| + switches::kSyncDeferredStartupTimeoutSeconds), &timeout); |
| + } |
| + |
| + fallback_timeout_ = base::TimeDelta::FromSeconds(timeout); |
| +} |
| StartupController::~StartupController() {} |
| @@ -72,8 +81,8 @@ bool StartupController::StartUp(StartUpDeferredOption deferred_option) { |
| start_up_time_ = base::Time::Now(); |
| if (deferred_option == STARTUP_BACKEND_DEFERRED && |
| - CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kSyncEnableDeferredStartup) && |
| + !CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kSyncDisableDeferredStartup) && |
| sync_prefs_->GetPreferredDataTypes(registered_types_) |
| .Has(syncer::SESSIONS)) { |
| if (first_start) { |
| @@ -152,8 +161,8 @@ bool StartupController::TryStart() { |
| } |
| void StartupController::OnFallbackStartupTimerExpired() { |
| - DCHECK(CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kSyncEnableDeferredStartup)); |
| + DCHECK(!CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kSyncDisableDeferredStartup)); |
| if (!start_backend_time_.is_null()) |
| return; |
| @@ -179,8 +188,8 @@ std::string StartupController::GetBackendInitializationStateString() const { |
| } |
| void StartupController::OnDataTypeRequestsSyncStartup(syncer::ModelType type) { |
| - if (!CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kSyncEnableDeferredStartup)) { |
| + if (CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kSyncDisableDeferredStartup)) { |
| DVLOG(2) << "Ignoring data type request for sync startup: " |
| << syncer::ModelTypeToString(type); |
| return; |