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

Unified Diff: chrome/browser/signin/signin_promo.cc

Issue 196783002: Export a private webstore API to call into the new inline sign-in flow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Redirect to the continue URL when Sync is disabled Created 6 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/signin/signin_promo.cc
diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
index be633aca22a9e59eab23075232c91d18422a8444..82faab613b838696b149ff1ed377b0b4a0cd4851 100644
--- a/chrome/browser/signin/signin_promo.cc
+++ b/chrome/browser/signin/signin_promo.cc
@@ -45,6 +45,7 @@ namespace {
const char kSignInPromoQueryKeyAutoClose[] = "auto_close";
const char kSignInPromoQueryKeyContinue[] = "continue";
+const char kSignInPromoQueryKeyContinueUrl[] = "continueUrl";
guohui 2014/03/24 20:55:58 for better consistency with other param names such
Ilya Sherman 2014/03/26 08:21:39 Done.
const char kSignInPromoQueryKeySource[] = "source";
const char kSignInPromoQueryKeyConstrained[] = "constrained";
@@ -178,6 +179,13 @@ GURL GetPromoURL(Source source, bool auto_close) {
}
GURL GetPromoURL(Source source, bool auto_close, bool is_constrained) {
+ return GetPromoURLWithContinueURL(source, auto_close, is_constrained, GURL());
+}
+
+GURL GetPromoURLWithContinueURL(Source source,
+ bool auto_close,
+ bool is_constrained,
+ GURL continue_url) {
DCHECK_NE(SOURCE_UNKNOWN, source);
if (!switches::IsEnableWebBasedSignin()) {
@@ -187,6 +195,15 @@ GURL GetPromoURL(Source source, bool auto_close, bool is_constrained) {
base::StringAppendF(&url, "&%s=1", kSignInPromoQueryKeyAutoClose);
if (is_constrained)
base::StringAppendF(&url, "&%s=1", kSignInPromoQueryKeyConstrained);
+ if (!continue_url.is_empty()) {
+ DCHECK(continue_url.is_valid());
+ std::string escaped_continue_url =
+ net::EscapeQueryParamValue(continue_url.spec(), false);
+ base::StringAppendF(&url,
+ "&%s=%s",
+ kSignInPromoQueryKeyContinueUrl,
+ escaped_continue_url.c_str());
+ }
return GURL(url);
}
@@ -206,14 +223,19 @@ GURL GetPromoURL(Source source, bool auto_close, bool is_constrained) {
// See OneClickSigninHelper for details.
std::string query_string = "?service=chromiumsync&sarp=1";
- std::string continue_url = GetLandingURL(kSignInPromoQueryKeySource,
- static_cast<int>(source)).spec();
- if (auto_close)
- base::StringAppendF(&continue_url, "&%s=1", kSignInPromoQueryKeyAutoClose);
+ DCHECK(continue_url.is_empty());
+ std::string continue_url_str = GetLandingURL(kSignInPromoQueryKeySource,
+ static_cast<int>(source)).spec();
+ if (auto_close) {
+ base::StringAppendF(
+ &continue_url_str, "&%s=1", kSignInPromoQueryKeyAutoClose);
+ }
- base::StringAppendF(&query_string, "&%s=%s", kSignInPromoQueryKeyContinue,
- net::EscapeQueryParamValue(
- continue_url, false).c_str());
+ base::StringAppendF(
+ &query_string,
+ "&%s=%s",
+ kSignInPromoQueryKeyContinue,
+ net::EscapeQueryParamValue(continue_url_str, false).c_str());
return GaiaUrls::GetInstance()->service_login_url().Resolve(query_string);
}

Powered by Google App Engine
This is Rietveld 408576698