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

Unified Diff: chrome/browser/ui/sync/one_click_signin_helper.cc

Issue 16172007: Show email confirmation for sign in from the hot-dog menu (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 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
« no previous file with comments | « chrome/browser/ui/sync/one_click_signin_helper.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/sync/one_click_signin_helper.cc
diff --git a/chrome/browser/ui/sync/one_click_signin_helper.cc b/chrome/browser/ui/sync/one_click_signin_helper.cc
index 8240c194c8c035ae8ff900f174d9ed407d7f253f..d96d17f1a1af02ff058d38364c573b9a471b30bd 100644
--- a/chrome/browser/ui/sync/one_click_signin_helper.cc
+++ b/chrome/browser/ui/sync/one_click_signin_helper.cc
@@ -10,7 +10,7 @@
#include <vector>
#include "base/bind.h"
-#include "base/callback_forward.h"
+#include "base/callback.h"
#include "base/callback_helpers.h"
#include "base/compiler_specific.h"
#include "base/metrics/field_trial.h"
@@ -245,6 +245,7 @@ void StartSync(const StartSyncArgs& args,
void StartExplicitSync(const StartSyncArgs& args,
content::WebContents* contents,
OneClickSigninSyncStarter::StartSyncMode start_mode,
+ base::Closure start_sync_callback,
int button) {
if (button == IDS_ONE_CLICK_SIGNIN_CONFIRM_EMAIL_DIALOG_OK_BUTTON) {
contents->GetController().LoadURL(
@@ -254,6 +255,7 @@ void StartExplicitSync(const StartSyncArgs& args,
std::string(chrome::kSearchUsersSubPage));
} else {
StartSync(args, start_mode);
+ start_sync_callback.Run();
}
}
@@ -916,6 +918,12 @@ void OneClickSigninHelper::RedirectToNtpOrAppsPage() {
contents->OpenURL(params);
}
+void OneClickSigninHelper::RedirectToNtpOrAppsPageIfNecessary() {
+ if (source_ != SyncPromoUI::SOURCE_SETTINGS &&
+ source_ != SyncPromoUI::SOURCE_WEBSTORE_INSTALL)
+ RedirectToNtpOrAppsPage();
Roger Tawa OOO till Jul 10th 2013/06/05 23:48:37 Add { and } for if statement.
fdoray 2013/06/10 15:44:13 Done.
+}
+
void OneClickSigninHelper::RedirectToSignin() {
VLOG(1) << "OneClickSigninHelper::RedirectToSignin";
@@ -1176,6 +1184,15 @@ void OneClickSigninHelper::DidStopLoading(
LogHistogramValue(source_, one_click_signin::HISTOGRAM_ACCEPTED);
LogHistogramValue(source_, one_click_signin::HISTOGRAM_WITH_DEFAULTS);
}
+
+ // Remove the blank page from the history of the current tab. It's not
+ // necessary to do this if the sign in is from the Settings page /
+ // Webstore because the current tab will be closed after sign in
+ // completes.
+ if (source_ != SyncPromoUI::SOURCE_SETTINGS &&
+ source_ != SyncPromoUI::SOURCE_WEBSTORE_INSTALL)
+ RemoveCurrentHistoryItem(contents);
+
OneClickSigninSyncStarter::StartSyncMode start_mode =
source_ == SyncPromoUI::SOURCE_SETTINGS ?
OneClickSigninSyncStarter::CONFIGURE_SYNC_FIRST :
@@ -1201,13 +1218,22 @@ void OneClickSigninHelper::DidStopLoading(
force_same_tab_navigation,
false /* confirmation_required */, source_),
contents,
- start_mode));
+ start_mode,
+ base::Bind(
+ &OneClickSigninHelper::RedirectToNtpOrAppsPageIfNecessary,
+ base::Unretained(this))));
} else {
StartSync(
StartSyncArgs(profile, browser, auto_accept_, session_index_,
email_, password_, force_same_tab_navigation,
untrusted_confirmation_required_, source_),
start_mode);
+
+ // If this explicit sign in is not from settings page/webstore, show
+ // the NTP/Apps page after sign in completes. In the case of the
+ // settings page, it will get closed by SyncSetupHandler. In the case
+ // of webstore, it will redirect back to webstore.
+ RedirectToNtpOrAppsPageIfNecessary();
}
if (source_ == SyncPromoUI::SOURCE_SETTINGS &&
@@ -1219,16 +1245,6 @@ void OneClickSigninHelper::DidStopLoading(
if (sync_service)
sync_service->AddObserver(this);
}
-
- // If this explicit sign in is not from settings page/webstore, show the
- // NTP/Apps page after sign in completes. In the case of the settings
- // page, it will get closed by SyncSetupHandler. In the case of webstore,
- // it will redirect back to webstore.
- if (source_ != SyncPromoUI::SOURCE_SETTINGS &&
- source_ != SyncPromoUI::SOURCE_WEBSTORE_INSTALL) {
- RemoveCurrentHistoryItem(contents);
- RedirectToNtpOrAppsPage();
- }
break;
}
case AUTO_ACCEPT_REJECTED_FOR_PROFILE:
« no previous file with comments | « chrome/browser/ui/sync/one_click_signin_helper.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698