Index: chrome/browser/ui/sync/one_click_signin_sync_starter.cc |
diff --git a/chrome/browser/ui/sync/one_click_signin_sync_starter.cc b/chrome/browser/ui/sync/one_click_signin_sync_starter.cc |
index 157d23b4dcf3204d6457285646d3bedeba4fd7f9..9ddb2fc1afa0289ef7392a06c58c108ba9712c0b 100644 |
--- a/chrome/browser/ui/sync/one_click_signin_sync_starter.cc |
+++ b/chrome/browser/ui/sync/one_click_signin_sync_starter.cc |
@@ -187,15 +187,10 @@ void OneClickSigninSyncStarter::SigninDialogDelegate::OnContinueSignin() { |
if (sync_starter_ != NULL) { |
// If the user signs in from the new avatar bubble, the enterprise |
- // confirmation dialog would dismiss the avatar bubble, thus it won't show |
- // any confirmation upon sign in completes. This cofirmation dialog already |
- // mentions that user data would be synced, thus we just start sync |
- // immediately. |
- |
- // TODO(guohui): add a sync settings link to allow user to configure sync |
- // settings before sync starts. |
+ // confirmation dialog would dismiss the avatar bubble, thus we need to |
+ // manually re-show the avatar bubble to confirm sync settings. |
if (sync_starter_->GetStartSyncMode() == CONFIRM_SYNC_SETTINGS_FIRST) |
- sync_starter_->SetStartSyncMode(SYNC_WITH_DEFAULT_SETTINGS); |
+ sync_starter_->SetConfirmationRequired(CONFIRM_AFTER_SIGNIN); |
sync_starter_->LoadPolicyWithCachedCredentials(); |
} |
} |
@@ -204,16 +199,15 @@ void OneClickSigninSyncStarter::SigninDialogDelegate::OnSigninWithNewProfile() { |
SetUserChoiceHistogram(SIGNIN_CHOICE_NEW_PROFILE); |
if (sync_starter_ != NULL) { |
- // TODO(guohui): add a sync settings link to allow user to configure sync |
- // settings before sync starts. |
if (sync_starter_->GetStartSyncMode() == CONFIRM_SYNC_SETTINGS_FIRST) |
- sync_starter_->SetStartSyncMode(SYNC_WITH_DEFAULT_SETTINGS); |
+ sync_starter_->SetConfirmationRequired(CONFIRM_AFTER_SIGNIN); |
sync_starter_->CreateNewSignedInProfile(); |
} |
} |
-void OneClickSigninSyncStarter::SetStartSyncMode(StartSyncMode start_mode) { |
- start_mode_ = start_mode; |
+void OneClickSigninSyncStarter::SetConfirmationRequired( |
+ ConfirmationRequired confirmation_required) { |
+ confirmation_required_ = confirmation_required; |
} |
OneClickSigninSyncStarter::StartSyncMode |
@@ -482,6 +476,8 @@ void OneClickSigninSyncStarter::MergeSessionComplete( |
} |
case CONFIRM_SYNC_SETTINGS_FIRST: |
// Blocks sync until the sync settings confirmation UI is closed. |
+ if (confirmation_required_ == CONFIRM_AFTER_SIGNIN) |
+ DisplayFinalConfirmationBubble(base::string16()); |
Roger Tawa OOO till Jul 10th
2014/08/15 15:49:13
What if you always call DisplayFinalConfirmationBu
guohui
2014/08/15 15:57:52
as discussed yesterday, that would be a cleaner so
|
return; |
case CONFIGURE_SYNC_FIRST: |
ShowSettingsPage(true); // Show sync config UI. |
@@ -506,6 +502,16 @@ void OneClickSigninSyncStarter::MergeSessionComplete( |
void OneClickSigninSyncStarter::DisplayFinalConfirmationBubble( |
const base::string16& custom_message) { |
browser_ = EnsureBrowser(browser_, profile_, desktop_type_); |
+ // Show the success confirmation message in the new avatar menu if it is |
+ // enabled. |
+ // TODO(guohui): needs to handle custom messages. |
+ if (custom_message.empty() && switches::IsNewAvatarMenu()) { |
+ browser_->window()->ShowAvatarBubbleFromAvatarButton( |
+ BrowserWindow::AVATAR_BUBBLE_MODE_CONFIRM_SIGNIN, |
+ signin::ManageAccountsParams()); |
+ return; |
+ } |
+ |
browser_->window()->ShowOneClickSigninBubble( |
BrowserWindow::ONE_CLICK_SIGNIN_BUBBLE_TYPE_BUBBLE, |
base::string16(), // No email required - this is not a SAML confirmation. |