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

Unified Diff: chrome/browser/google/google_url_tracker.cc

Issue 256423004: Force usage of HTTPS for Google services. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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/google/google_url_tracker.cc
diff --git a/chrome/browser/google/google_url_tracker.cc b/chrome/browser/google/google_url_tracker.cc
index 535cbbaa8ecac4a3a3c9bec030592abe7f3d8783..fd047d3d8713f26dec0481abb59d317fcbab4311 100644
--- a/chrome/browser/google/google_url_tracker.cc
+++ b/chrome/browser/google/google_url_tracker.cc
@@ -22,15 +22,14 @@
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/notification_service.h"
#include "net/base/load_flags.h"
-#include "net/base/net_util.h"
#include "net/url_request/url_fetcher.h"
#include "net/url_request/url_request_status.h"
const char GoogleURLTracker::kDefaultGoogleHomepage[] =
- "http://www.google.com/";
+ "https://www.google.com/";
const char GoogleURLTracker::kSearchDomainCheckURL[] =
- "https://www.google.com/searchdomaincheck?format=url&type=chrome";
+ "https://www.google.com/searchdomaincheck?format=domain&type=chrome";
GoogleURLTracker::GoogleURLTracker(
Profile* profile,
@@ -101,7 +100,7 @@ void GoogleURLTracker::GoogleURLSearchCommitted(Profile* profile) {
tracker->SearchCommitted();
}
-void GoogleURLTracker::AcceptGoogleURL(bool redo_searches) {
+void GoogleURLTracker::AcceptGoogleURL() {
UpdatedDetails urls(google_url_, fetched_google_url_);
google_url_ = fetched_google_url_;
PrefService* prefs = profile_->GetPrefs();
@@ -112,7 +111,7 @@ void GoogleURLTracker::AcceptGoogleURL(bool redo_searches) {
content::Source<Profile>(profile_),
content::Details<UpdatedDetails>(&urls));
need_to_prompt_ = false;
- CloseAllEntries(redo_searches);
+ CloseAllEntries(true);
}
void GoogleURLTracker::CancelGoogleURL() {
@@ -132,14 +131,14 @@ void GoogleURLTracker::OnURLFetchComplete(const net::URLFetcher* source) {
return;
}
- // See if the response data was valid. It should be
- // "<scheme>://[www.]google.<TLD>/".
+ // See if the response data was valid. It should be ".google.<TLD>".
std::string url_str;
source->GetResponseAsString(&url_str);
base::TrimWhitespace(url_str, base::TRIM_ALL, &url_str);
- GURL url(url_str);
- if (!url.is_valid() || (url.path().length() > 1) || url.has_query() ||
- url.has_ref() ||
+ if (!StartsWithASCII(url_str, ".google.", false))
+ return;
+ GURL url("https://www" + url_str);
+ if ((url.path().length() > 1) || url.has_query() || url.has_ref() ||
!google_util::IsGoogleDomainUrl(url, google_util::DISALLOW_SUBDOMAIN,
google_util::DISALLOW_NON_STANDARD_PORTS))
return;
@@ -151,33 +150,20 @@ void GoogleURLTracker::OnURLFetchComplete(const net::URLFetcher* source) {
if (last_prompted_url.is_empty()) {
// On the very first run of Chrome, when we've never looked up the URL at
// all, we should just silently switch over to whatever we get immediately.
- AcceptGoogleURL(true); // Arg is irrelevant.
- return;
- }
-
- base::string16 fetched_host(net::StripWWWFromHost(fetched_google_url_));
- if (fetched_google_url_ == google_url_) {
- // Either the user has continually been on this URL, or we prompted for a
- // different URL but have now changed back before they responded to any of
- // the prompts. In this latter case we want to close any infobars and stop
- // prompting.
- CancelGoogleURL();
- } else if (fetched_host == net::StripWWWFromHost(google_url_)) {
- // Similar to the above case, but this time the new URL differs from the
- // existing one, probably due to switching between HTTP and HTTPS searching.
- // Like before we want to close any infobars and stop prompting; we also
- // want to silently accept the change in scheme. We don't redo open
- // searches so as to avoid suddenly changing a page the user might be
- // interacting with; it's enough to simply get future searches right.
- AcceptGoogleURL(false);
- } else if (fetched_host == net::StripWWWFromHost(last_prompted_url)) {
- // We've re-fetched a TLD the user previously turned down. Although the new
- // URL might have a different scheme than the old, we want to preserve the
- // user's decision. Note that it's possible that, like in the above two
- // cases, we fetched yet another different URL in the meantime, which we
- // have infobars prompting about; in this case, as in those above, we want
- // to go ahead and close the infobars and stop prompting, since we've
- // switched back away from that URL.
+ AcceptGoogleURL();
+ } else if ((fetched_google_url_ == google_url_) ||
+ (fetched_google_url_ == last_prompted_url)) {
+ // If we re-fetched the current URL, then either the user has continually
+ // been on this URL, or we prompted for a different URL but have now changed
+ // back before they responded to any of the prompts.
+ //
+ // If we re-fetched the last prompted URL, then we've refetched something
+ // the user previously turned down, and we should preserve their decision.
+ // Once again, we might have fetched a different URL in the meantime, which
+ // we have infobars prompting about.
+ //
+ // In both these cases, any existing infobars are about an irrelevant URL,
+ // so we should close them.
CancelGoogleURL();
} else {
// We've fetched a URL with a different TLD than the user is currently using
@@ -185,13 +171,8 @@ void GoogleURLTracker::OnURLFetchComplete(const net::URLFetcher* source) {
need_to_prompt_ = true;
// As in all the above cases, there could be infobars prompting about some
- // URL. If these URLs have the same TLD (e.g. for scheme changes), we can
- // simply leave the existing infobars open as their messages will still be
- // accurate. Otherwise we go ahead and close them because we need to
- // display a new message.
- // Note: |url| is the previous |fetched_google_url_|.
- if (url.is_valid() && (fetched_host != net::StripWWWFromHost(url)))
- CloseAllEntries(false);
+ // URL. We go ahead and close them so we can display a new message.
+ CloseAllEntries(false);
}
}
« no previous file with comments | « chrome/browser/google/google_url_tracker.h ('k') | chrome/browser/google/google_url_tracker_infobar_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698