OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "components/google/core/browser/google_url_tracker.h" | 5 #include "components/google/core/browser/google_url_tracker.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 // Some switches should disable the Google URL tracker entirely. If we can't | 141 // Some switches should disable the Google URL tracker entirely. If we can't |
142 // do background networking, we can't do the necessary fetch, and if the user | 142 // do background networking, we can't do the necessary fetch, and if the user |
143 // specified a Google base URL manually, we shouldn't bother to look up any | 143 // specified a Google base URL manually, we shouldn't bother to look up any |
144 // alternatives or offer to switch to them. | 144 // alternatives or offer to switch to them. |
145 if (!client_->IsBackgroundNetworkingEnabled() || | 145 if (!client_->IsBackgroundNetworkingEnabled() || |
146 base::CommandLine::ForCurrentProcess()->HasSwitch( | 146 base::CommandLine::ForCurrentProcess()->HasSwitch( |
147 switches::kGoogleBaseURL)) | 147 switches::kGoogleBaseURL)) |
148 return; | 148 return; |
149 | 149 |
150 already_fetched_ = true; | 150 already_fetched_ = true; |
151 fetcher_.reset(net::URLFetcher::Create( | 151 fetcher_ = net::URLFetcher::Create(fetcher_id_, GURL(kSearchDomainCheckURL), |
152 fetcher_id_, GURL(kSearchDomainCheckURL), net::URLFetcher::GET, this)); | 152 net::URLFetcher::GET, this); |
153 ++fetcher_id_; | 153 ++fetcher_id_; |
154 // We don't want this fetch to set new entries in the cache or cookies, lest | 154 // We don't want this fetch to set new entries in the cache or cookies, lest |
155 // we alarm the user. | 155 // we alarm the user. |
156 fetcher_->SetLoadFlags(net::LOAD_DISABLE_CACHE | | 156 fetcher_->SetLoadFlags(net::LOAD_DISABLE_CACHE | |
157 net::LOAD_DO_NOT_SAVE_COOKIES); | 157 net::LOAD_DO_NOT_SAVE_COOKIES); |
158 fetcher_->SetRequestContext(client_->GetRequestContext()); | 158 fetcher_->SetRequestContext(client_->GetRequestContext()); |
159 | 159 |
160 // Configure to retry at most kMaxRetries times for 5xx errors. | 160 // Configure to retry at most kMaxRetries times for 5xx errors. |
161 static const int kMaxRetries = 5; | 161 static const int kMaxRetries = 5; |
162 fetcher_->SetMaxRetriesOn5xx(kMaxRetries); | 162 fetcher_->SetMaxRetriesOn5xx(kMaxRetries); |
163 | 163 |
164 // Also retry kMaxRetries times on network change errors. A network change can | 164 // Also retry kMaxRetries times on network change errors. A network change can |
165 // propagate through Chrome in various stages, so it's possible for this code | 165 // propagate through Chrome in various stages, so it's possible for this code |
166 // to be reached via OnNetworkChanged(), and then have the fetch we kick off | 166 // to be reached via OnNetworkChanged(), and then have the fetch we kick off |
167 // be canceled due to e.g. the DNS server changing at a later time. In general | 167 // be canceled due to e.g. the DNS server changing at a later time. In general |
168 // it's not possible to ensure that by the time we reach here any requests we | 168 // it's not possible to ensure that by the time we reach here any requests we |
169 // start won't be canceled in this fashion, so retrying is the best we can do. | 169 // start won't be canceled in this fashion, so retrying is the best we can do. |
170 fetcher_->SetAutomaticallyRetryOnNetworkChanges(kMaxRetries); | 170 fetcher_->SetAutomaticallyRetryOnNetworkChanges(kMaxRetries); |
171 | 171 |
172 fetcher_->Start(); | 172 fetcher_->Start(); |
173 } | 173 } |
OLD | NEW |