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

Unified Diff: chrome/browser/sync/sync_setup_flow.cc

Issue 7093004: Sync: Refactor the ProfileSyncService and sync setup flow to remove use of WebUI from PSS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Win fix. Created 9 years, 6 months 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: chrome/browser/sync/sync_setup_flow.cc
diff --git a/chrome/browser/sync/sync_setup_flow.cc b/chrome/browser/sync/sync_setup_flow.cc
index 034edf44daa88a4070783163c550082561e021ea..945359d8eb456bb4b465ce5376575da61c444624 100644
--- a/chrome/browser/sync/sync_setup_flow.cc
+++ b/chrome/browser/sync/sync_setup_flow.cc
@@ -35,6 +35,34 @@ void DisablePasswordSync(ProfileSyncService* service) {
service->OnUserChoseDatatypes(false, types);
}
+// Fills |args| for the enter passphrase screen.
+void GetArgsForEnterPassphrase(bool tried_creating_explicit_passphrase,
+ bool tried_setting_explicit_passphrase,
+ DictionaryValue* args) {
+ args->SetBoolean("show_passphrase", true);
+ args->SetBoolean("passphrase_creation_rejected",
+ tried_creating_explicit_passphrase);
+ args->SetBoolean("passphrase_setting_rejected",
+ tried_setting_explicit_passphrase);
+}
+
+// Returns the next step for the non-fatal error case.
+SyncSetupWizard::State GetStepForNonFatalError(ProfileSyncService* service) {
+ if (service->IsPassphraseRequired() && service->IsUsingSecondaryPassphrase())
+ return SyncSetupWizard::ENTER_PASSPHRASE;
+
+ const GoogleServiceAuthError& error = service->GetAuthError();
+ if (error.state() == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS ||
+ error.state() == GoogleServiceAuthError::CAPTCHA_REQUIRED ||
+ error.state() == GoogleServiceAuthError::ACCOUNT_DELETED ||
+ error.state() == GoogleServiceAuthError::ACCOUNT_DISABLED ||
+ error.state() == GoogleServiceAuthError::SERVICE_UNAVAILABLE)
+ return SyncSetupWizard::GAIA_LOGIN;
+
+ NOTREACHED();
+ return SyncSetupWizard::FATAL_ERROR;
+}
+
} // namespace
SyncConfiguration::SyncConfiguration()
@@ -53,13 +81,16 @@ SyncSetupFlow* SyncSetupFlow::Run(ProfileSyncService* service,
SyncSetupFlowContainer* container,
SyncSetupWizard::State start,
SyncSetupWizard::State end) {
+ if (start == SyncSetupWizard::NONFATAL_ERROR)
+ start = GetStepForNonFatalError(service);
+
DictionaryValue args;
if (start == SyncSetupWizard::GAIA_LOGIN)
SyncSetupFlow::GetArgsForGaiaLogin(service, &args);
else if (start == SyncSetupWizard::CONFIGURE)
SyncSetupFlow::GetArgsForConfigure(service, &args);
else if (start == SyncSetupWizard::ENTER_PASSPHRASE)
- SyncSetupFlow::GetArgsForEnterPassphrase(false, false, &args);
+ GetArgsForEnterPassphrase(false, false, &args);
std::string json_args;
base::JSONWriter::Write(&args, false, &json_args);
@@ -146,18 +177,6 @@ void SyncSetupFlow::GetArgsForConfigure(ProfileSyncService* service,
args->SetBoolean("usePassphrase", service->IsUsingSecondaryPassphrase());
}
-// static
-void SyncSetupFlow::GetArgsForEnterPassphrase(
- bool tried_creating_explicit_passphrase,
- bool tried_setting_explicit_passphrase,
- DictionaryValue* args) {
- args->SetBoolean("show_passphrase", true);
- args->SetBoolean("passphrase_creation_rejected",
- tried_creating_explicit_passphrase);
- args->SetBoolean("passphrase_setting_rejected",
- tried_setting_explicit_passphrase);
-}
-
void SyncSetupFlow::AttachSyncSetupHandler(SyncSetupFlowHandler* handler) {
flow_handler_ = handler;
ActivateState(current_state_);
@@ -310,6 +329,7 @@ bool SyncSetupFlow::ShouldAdvance(SyncSetupWizard::State state) {
return current_state_ == SyncSetupWizard::SYNC_EVERYTHING ||
current_state_ == SyncSetupWizard::CONFIGURE ||
current_state_ == SyncSetupWizard::ENTER_PASSPHRASE;
+ case SyncSetupWizard::NONFATAL_ERROR:
case SyncSetupWizard::FATAL_ERROR:
return true; // You can always hit the panic button.
case SyncSetupWizard::DONE:
@@ -322,6 +342,9 @@ bool SyncSetupFlow::ShouldAdvance(SyncSetupWizard::State state) {
}
void SyncSetupFlow::ActivateState(SyncSetupWizard::State state) {
+ if (state == SyncSetupWizard::NONFATAL_ERROR)
+ state = GetStepForNonFatalError(service_);
+
switch (state) {
case SyncSetupWizard::GAIA_LOGIN: {
DictionaryValue args;
@@ -352,10 +375,9 @@ void SyncSetupFlow::ActivateState(SyncSetupWizard::State state) {
case SyncSetupWizard::ENTER_PASSPHRASE: {
DictionaryValue args;
SyncSetupFlow::GetArgsForConfigure(service_, &args);
- SyncSetupFlow::GetArgsForEnterPassphrase(
- tried_creating_explicit_passphrase_,
- tried_setting_explicit_passphrase_,
- &args);
+ GetArgsForEnterPassphrase(tried_creating_explicit_passphrase_,
+ tried_setting_explicit_passphrase_,
+ &args);
flow_handler_->ShowPassphraseEntry(args);
break;
}

Powered by Google App Engine
This is Rietveld 408576698