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

Side by Side Diff: chrome/browser/ui/sync/one_click_signin_helper.cc

Issue 134333008: Allow 'continue' URL to match even if redirected to another Google TLD. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: allow subdomains off google.com for continue URLs Created 6 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/sync/one_click_signin_helper.h" 5 #include "chrome/browser/ui/sync/one_click_signin_helper.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 1224 matching lines...) Expand 10 before | Expand all | Expand 10 after
1235 if (source_ == signin::SOURCE_UNKNOWN) 1235 if (source_ == signin::SOURCE_UNKNOWN)
1236 LogOneClickHistogramValue(one_click_signin::HISTOGRAM_SHOWN); 1236 LogOneClickHistogramValue(one_click_signin::HISTOGRAM_SHOWN);
1237 else 1237 else
1238 LogHistogramValue(source_, one_click_signin::HISTOGRAM_SHOWN); 1238 LogHistogramValue(source_, one_click_signin::HISTOGRAM_SHOWN);
1239 } 1239 }
1240 showing_signin_ = true; 1240 showing_signin_ = true;
1241 } 1241 }
1242 1242
1243 // When Gaia finally redirects to the continue URL, Gaia will add some 1243 // When Gaia finally redirects to the continue URL, Gaia will add some
1244 // extra query parameters. So ignore the parameters when checking to see 1244 // extra query parameters. So ignore the parameters when checking to see
1245 // if the user has continued. 1245 // if the user has continued. Sometimes locales will redirect to a country-
1246 // specific TLD so just make sure it's a valid domain instead of comparing
1247 // for an exact match.
1246 GURL::Replacements replacements; 1248 GURL::Replacements replacements;
1247 replacements.ClearQuery(); 1249 replacements.ClearQuery();
1248 const bool continue_url_match = ( 1250 const bool continue_url_match = (
1249 continue_url_.is_valid() && 1251 google_util::IsGoogleDomainUrl(
1250 url.ReplaceComponents(replacements) == 1252 continue_url_,
1251 continue_url_.ReplaceComponents(replacements)); 1253 google_util::ALLOW_SUBDOMAIN,
1254 google_util::DISALLOW_NON_STANDARD_PORTS) &&
1255 url.ReplaceComponents(replacements).path() ==
1256 continue_url_.ReplaceComponents(replacements).path());
1252 const bool original_continue_url_match = ( 1257 const bool original_continue_url_match = (
1253 original_continue_url_.is_valid() && 1258 google_util::IsGoogleDomainUrl(
1254 url.ReplaceComponents(replacements) == 1259 original_continue_url_,
1255 original_continue_url_.ReplaceComponents(replacements)); 1260 google_util::ALLOW_SUBDOMAIN,
1261 google_util::DISALLOW_NON_STANDARD_PORTS) &&
1262 url.ReplaceComponents(replacements).path() ==
1263 original_continue_url_.ReplaceComponents(replacements).path());
1256 1264
1257 if (continue_url_match) 1265 if (continue_url_match)
1258 RemoveSigninRedirectURLHistoryItem(contents); 1266 RemoveSigninRedirectURLHistoryItem(contents);
1259 1267
1260 // If there is no valid email yet, there is nothing to do. As of M26, the 1268 // If there is no valid email yet, there is nothing to do. As of M26, the
1261 // password is allowed to be empty, since its no longer required to setup 1269 // password is allowed to be empty, since its no longer required to setup
1262 // sync. 1270 // sync.
1263 if (email_.empty()) { 1271 if (email_.empty()) {
1264 VLOG(1) << "OneClickSigninHelper::DidStopLoading: nothing to do"; 1272 VLOG(1) << "OneClickSigninHelper::DidStopLoading: nothing to do";
1265 // Original-url check done because some user actions cans get us to a page 1273 // Original-url check done because some user actions cans get us to a page
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
1515 // If the web contents is showing a blank page and not about to be closed, 1523 // If the web contents is showing a blank page and not about to be closed,
1516 // redirect to the NTP or apps page. 1524 // redirect to the NTP or apps page.
1517 if (signin::IsContinueUrlForWebBasedSigninFlow(current_url) && 1525 if (signin::IsContinueUrlForWebBasedSigninFlow(current_url) &&
1518 !signin::IsAutoCloseEnabledInURL(original_continue_url_)) { 1526 !signin::IsAutoCloseEnabledInURL(original_continue_url_)) {
1519 RedirectToNtpOrAppsPage( 1527 RedirectToNtpOrAppsPage(
1520 web_contents(), 1528 web_contents(),
1521 signin::GetSourceForPromoURL(original_continue_url_)); 1529 signin::GetSourceForPromoURL(original_continue_url_));
1522 } 1530 }
1523 } 1531 }
1524 } 1532 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698