Index: chrome/browser/printing/cloud_print/cloud_print_url.cc |
diff --git a/chrome/browser/printing/cloud_print/cloud_print_url.cc b/chrome/browser/printing/cloud_print/cloud_print_url.cc |
index de9967bb9af3b5c8a2f83883057dc7aed39c8b28..46a1f06cdccf622d71f1e7cbb87be9c0aa04ea82 100644 |
--- a/chrome/browser/printing/cloud_print/cloud_print_url.cc |
+++ b/chrome/browser/printing/cloud_print/cloud_print_url.cc |
@@ -14,7 +14,7 @@ |
#include "chrome/common/pref_names.h" |
#include "components/user_prefs/pref_registry_syncable.h" |
#include "google_apis/gaia/gaia_urls.h" |
-#include "net/base/escape.h" |
+#include "net/base/url_util.h" |
#include "url/gurl.h" |
// Url must not be matched by "urls" section of |
@@ -30,16 +30,23 @@ const char kTestPageURL[] = |
// static |
void CloudPrintURL::RegisterProfilePrefs( |
user_prefs::PrefRegistrySyncable* registry) { |
+ const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
+ GURL cloud_print_url( |
+ command_line->GetSwitchValueASCII(switches::kCloudPrintServiceURL)); |
+ if (cloud_print_url.is_empty()) |
+ cloud_print_url = GURL(kDefaultCloudPrintServiceURL); |
registry->RegisterStringPref( |
prefs::kCloudPrintServiceURL, |
- kDefaultCloudPrintServiceURL, |
+ cloud_print_url.spec(), |
user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
- std::string url = GaiaUrls::GetInstance()->service_login_url(); |
- url.append("?service=cloudprint&sarp=1&continue="); |
- url.append(net::EscapeQueryParamValue(kDefaultCloudPrintServiceURL, false)); |
+ GURL gaia_url(GaiaUrls::GetInstance()->service_login_url()); |
+ gaia_url = net::AppendQueryParameter(gaia_url, "service", "cloudprint"); |
+ gaia_url = net::AppendQueryParameter(gaia_url, "sarp", "1"); |
+ gaia_url = net::AppendQueryParameter(gaia_url, "continue", |
+ cloud_print_url.spec()); |
registry->RegisterStringPref( |
prefs::kCloudPrintSigninURL, |
- url, |
+ gaia_url.spec(), |
user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); |
} |
@@ -48,21 +55,12 @@ void CloudPrintURL::RegisterProfilePrefs( |
// command line or by the user preferences. |
GURL CloudPrintURL::GetCloudPrintServiceURL() { |
DCHECK(profile_); |
- |
- const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
- GURL cloud_print_service_url = GURL(command_line.GetSwitchValueASCII( |
- switches::kCloudPrintServiceURL)); |
- if (cloud_print_service_url.is_empty()) { |
- cloud_print_service_url = GURL( |
- profile_->GetPrefs()->GetString(prefs::kCloudPrintServiceURL)); |
- } |
- return cloud_print_service_url; |
+ return GURL(profile_->GetPrefs()->GetString(prefs::kCloudPrintServiceURL)); |
} |
GURL CloudPrintURL::GetCloudPrintSigninURL() { |
DCHECK(profile_); |
- |
- GURL cloud_print_signin_url = GURL( |
+ GURL cloud_print_signin_url( |
profile_->GetPrefs()->GetString(prefs::kCloudPrintSigninURL)); |
return google_util::AppendGoogleLocaleParam(cloud_print_signin_url); |
} |