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

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

Issue 9592015: Added multi-login support to one-click signin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix member init order in ctor" Created 8 years, 9 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/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 b8e18c80c1f9b6bf6706c8b3198ae4015a73665d..8b3f08ed78ea55e6bfc59922ddf67006e7b30a32 100644
--- a/chrome/browser/ui/sync/one_click_signin_helper.cc
+++ b/chrome/browser/ui/sync/one_click_signin_helper.cc
@@ -62,6 +62,7 @@ enum {
class OneClickLoginInfoBarDelegate : public ConfirmInfoBarDelegate {
public:
OneClickLoginInfoBarDelegate(InfoBarTabHelper* owner,
+ const std::string& session_index,
const std::string& email,
const std::string& password);
virtual ~OneClickLoginInfoBarDelegate();
@@ -80,7 +81,8 @@ class OneClickLoginInfoBarDelegate : public ConfirmInfoBarDelegate {
Profile* profile_;
- // Email address and password of the account that has just logged in.
+ // Information about the account that has just logged in.
+ std::string session_index_;
std::string email_;
std::string password_;
@@ -92,11 +94,13 @@ class OneClickLoginInfoBarDelegate : public ConfirmInfoBarDelegate {
OneClickLoginInfoBarDelegate::OneClickLoginInfoBarDelegate(
InfoBarTabHelper* owner,
+ const std::string& session_index,
const std::string& email,
const std::string& password)
: ConfirmInfoBarDelegate(owner),
profile_(Profile::FromBrowserContext(
owner->web_contents()->GetBrowserContext())),
+ session_index_(session_index),
email_(email),
password_(password),
button_pressed_(false) {
@@ -135,7 +139,7 @@ string16 OneClickLoginInfoBarDelegate::GetButtonLabel(
bool OneClickLoginInfoBarDelegate::Accept() {
RecordHistogramAction(HISTOGRAM_ACCEPTED);
- ShowOneClickSigninDialog(profile_, email_, password_);
+ ShowOneClickSigninDialog(profile_, session_index_, email_, password_);
button_pressed_ = true;
return true;
}
@@ -177,19 +181,23 @@ void OneClickSigninHelper::ShowInfoBarIfPossible(net::URLRequest* request,
// Parse the information from the value string.
std::string email;
+ std::string session_index;
for (size_t i = 0; i < pairs.size(); ++i) {
const std::pair<std::string, std::string>& pair = pairs[i];
- if (pair.first == "email")
+ if (pair.first == "email") {
TrimString(pair.second, "\"", &email);
+ } else if (pair.first == "sessionindex") {
+ session_index = pair.second;
+ }
}
- if (email.empty())
+ if (email.empty() || session_index.empty())
return;
content::BrowserThread::PostTask(
content::BrowserThread::UI, FROM_HERE,
- base::Bind(&OneClickSigninHelper::ShowInfoBarUIThread, email,
- child_id, route_id));
+ base::Bind(&OneClickSigninHelper::ShowInfoBarUIThread, session_index,
+ email, child_id, route_id));
}
OneClickSigninHelper::OneClickSigninHelper(content::WebContents* web_contents)
@@ -201,6 +209,7 @@ OneClickSigninHelper::~OneClickSigninHelper() {
// static
void OneClickSigninHelper::ShowInfoBarUIThread(
+ const std::string& session_index,
const std::string& email,
int child_id,
int route_id) {
@@ -237,7 +246,7 @@ void OneClickSigninHelper::ShowInfoBarUIThread(
// connected to a Google account.
OneClickSigninHelper* helper = wrapper->one_click_signin_helper();
if (helper)
- helper->SaveEmail(email);
+ helper->SaveSessionIndexAndEmail(session_index, email);
#endif
}
@@ -257,15 +266,16 @@ void OneClickSigninHelper::DidStopLoading() {
wrapper->infobar_tab_helper()->AddInfoBar(
new OneClickLoginInfoBarDelegate(wrapper->infobar_tab_helper(),
- email_, password_));
+ session_index_, email_, password_));
email_.clear();
password_.clear();
}
-void OneClickSigninHelper::SaveEmail(const std::string& email) {
- // TODO(rogerta): validate that the email address is the same as set in
- // the form?
+void OneClickSigninHelper::SaveSessionIndexAndEmail(
+ const std::string& session_index,
+ const std::string& email) {
+ session_index_ = session_index;
email_ = email;
}
« no previous file with comments | « chrome/browser/ui/sync/one_click_signin_helper.h ('k') | chrome/browser/ui/sync/one_click_signin_sync_starter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698