| Index: chrome/browser/signin/signin_promo.cc
|
| diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
|
| index 0f0c1e0ddaec0b6c4dc0b8b0c76adcfae9c82ca2..0445117d0554b342eae4cfc7431441217655acb7 100644
|
| --- a/chrome/browser/signin/signin_promo.cc
|
| +++ b/chrome/browser/signin/signin_promo.cc
|
| @@ -195,14 +195,22 @@ GURL GetReauthURL(Profile* profile, const std::string& account_id) {
|
| AccountTrackerService::AccountInfo info =
|
| AccountTrackerServiceFactory::GetForProfile(profile)->
|
| GetAccountInfo(account_id);
|
| + return GetReauthURL(std::string::npos, info.email);
|
| +}
|
|
|
| +GURL GetReauthURL(size_t profile_index, const std::string& email) {
|
| signin_metrics::Source source = switches::IsNewAvatarMenu() ?
|
| signin_metrics::SOURCE_REAUTH : signin_metrics::SOURCE_SETTINGS;
|
|
|
| GURL url = signin::GetPromoURL(
|
| source, true /* auto_close */,
|
| switches::IsNewAvatarMenu() /* is_constrained */);
|
| - url = net::AppendQueryParameter(url, "email", info.email);
|
| +
|
| + if (profile_index != std::string::npos)
|
| + url = net::AppendQueryParameter(url, kSignInPromoQueryKeyProfileIndex,
|
| + base::SizeTToString(profile_index));
|
| +
|
| + url = net::AppendQueryParameter(url, "email", email);
|
| url = net::AppendQueryParameter(url, "validateEmail", "1");
|
| return net::AppendQueryParameter(url, "readOnlyEmail", "1");
|
| }
|
| @@ -218,6 +226,18 @@ GURL GetNextPageURLForPromoURL(const GURL& url) {
|
| return GURL();
|
| }
|
|
|
| +size_t GetProfileIndexForPromoURL(const GURL& url) {
|
| + size_t index = std::string::npos;
|
| + std::string value;
|
| + if (net::GetValueForKeyInQuery(url, kSignInPromoQueryKeyProfileIndex,
|
| + &value) &&
|
| + base::StringToSizeT(value, &index)) {
|
| + return index;
|
| + }
|
| +
|
| + return std::string::npos;
|
| +}
|
| +
|
| GURL GetSigninPartitionURL() {
|
| return GURL("chrome-guest://chrome-signin/?");
|
| }
|
|
|