OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/predictors/resource_prefetch_predictor_test_util.h" | 5 #include "chrome/browser/predictors/loading_test_util.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <memory> | |
9 | |
10 #include "content/public/browser/resource_request_info.h" | |
11 #include "net/http/http_response_headers.h" | |
12 #include "net/url_request/url_request_test_util.h" | |
8 | 13 |
9 namespace { | 14 namespace { |
10 | 15 |
16 predictors::EmptyURLRequestDelegate empty_url_request_delegate; | |
Benoit L
2017/06/07 12:01:05
nit: g_empty_url_request_delegate.
| |
17 | |
11 bool AlmostEqual(const double x, const double y) { | 18 bool AlmostEqual(const double x, const double y) { |
12 return std::fabs(x - y) <= 1e-6; // Arbitrary but close enough. | 19 return std::fabs(x - y) <= 1e-6; // Arbitrary but close enough. |
13 } | 20 } |
14 | 21 |
15 } // namespace | 22 } // namespace |
16 | 23 |
17 namespace predictors { | 24 namespace predictors { |
18 | 25 |
19 using URLRequestSummary = ResourcePrefetchPredictor::URLRequestSummary; | 26 using URLRequestSummary = ResourcePrefetchPredictor::URLRequestSummary; |
20 using PageRequestSummary = ResourcePrefetchPredictor::PageRequestSummary; | 27 using PageRequestSummary = ResourcePrefetchPredictor::PageRequestSummary; |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
185 config->max_consecutive_misses = 2; | 192 config->max_consecutive_misses = 2; |
186 config->max_redirect_consecutive_misses = 2; | 193 config->max_redirect_consecutive_misses = 2; |
187 config->min_resource_confidence_to_trigger_prefetch = 0.5; | 194 config->min_resource_confidence_to_trigger_prefetch = 0.5; |
188 } | 195 } |
189 config->is_url_learning_enabled = true; | 196 config->is_url_learning_enabled = true; |
190 config->is_manifests_enabled = true; | 197 config->is_manifests_enabled = true; |
191 config->is_origin_learning_enabled = true; | 198 config->is_origin_learning_enabled = true; |
192 config->mode = LoadingPredictorConfig::LEARNING; | 199 config->mode = LoadingPredictorConfig::LEARNING; |
193 } | 200 } |
194 | 201 |
202 scoped_refptr<net::HttpResponseHeaders> MakeResponseHeaders( | |
203 const char* headers) { | |
204 return make_scoped_refptr(new net::HttpResponseHeaders( | |
205 net::HttpUtil::AssembleRawHeaders(headers, strlen(headers)))); | |
206 } | |
207 | |
208 MockURLRequestJob::MockURLRequestJob(net::URLRequest* request, | |
209 const net::HttpResponseInfo& response_info, | |
210 const std::string& mime_type) | |
211 : net::URLRequestJob(request, nullptr), | |
212 response_info_(response_info), | |
213 mime_type_(mime_type) {} | |
214 | |
215 bool MockURLRequestJob::GetMimeType(std::string* mime_type) const { | |
216 *mime_type = mime_type_; | |
217 return true; | |
218 } | |
219 | |
220 void MockURLRequestJob::Start() { | |
221 NotifyHeadersComplete(); | |
222 } | |
223 | |
224 void MockURLRequestJob::GetResponseInfo(net::HttpResponseInfo* info) { | |
225 *info = response_info_; | |
226 } | |
227 | |
228 MockURLRequestJobFactory::MockURLRequestJobFactory() {} | |
229 MockURLRequestJobFactory::~MockURLRequestJobFactory() {} | |
230 | |
231 void MockURLRequestJobFactory::Reset() { | |
232 response_info_ = net::HttpResponseInfo(); | |
233 mime_type_ = std::string(); | |
234 } | |
235 | |
236 net::URLRequestJob* MockURLRequestJobFactory::MaybeCreateJobWithProtocolHandler( | |
237 const std::string& scheme, | |
238 net::URLRequest* request, | |
239 net::NetworkDelegate* network_delegate) const { | |
240 return new MockURLRequestJob(request, response_info_, mime_type_); | |
241 } | |
242 | |
243 net::URLRequestJob* MockURLRequestJobFactory::MaybeInterceptRedirect( | |
244 net::URLRequest* request, | |
245 net::NetworkDelegate* network_delegate, | |
246 const GURL& location) const { | |
247 return nullptr; | |
248 } | |
249 | |
250 net::URLRequestJob* MockURLRequestJobFactory::MaybeInterceptResponse( | |
251 net::URLRequest* request, | |
252 net::NetworkDelegate* network_delegate) const { | |
253 return nullptr; | |
254 } | |
255 | |
256 bool MockURLRequestJobFactory::IsHandledProtocol( | |
257 const std::string& scheme) const { | |
258 return true; | |
259 } | |
260 | |
261 bool MockURLRequestJobFactory::IsSafeRedirectTarget( | |
262 const GURL& location) const { | |
263 return true; | |
264 } | |
265 | |
266 std::unique_ptr<net::URLRequest> CreateURLRequest( | |
267 const net::TestURLRequestContext& url_request_context, | |
268 const GURL& url, | |
269 net::RequestPriority priority, | |
270 content::ResourceType resource_type, | |
271 bool is_main_frame) { | |
272 std::unique_ptr<net::URLRequest> request = url_request_context.CreateRequest( | |
273 url, priority, &empty_url_request_delegate); | |
274 request->set_first_party_for_cookies(url); | |
275 content::ResourceRequestInfo::AllocateForTesting( | |
276 request.get(), resource_type, nullptr, -1, -1, -1, is_main_frame, false, | |
277 false, true, content::PREVIEWS_OFF); | |
278 request->Start(); | |
279 return request; | |
280 } | |
281 | |
195 std::ostream& operator<<(std::ostream& os, const PrefetchData& data) { | 282 std::ostream& operator<<(std::ostream& os, const PrefetchData& data) { |
196 os << "[" << data.primary_key() << "," << data.last_visit_time() << "]" | 283 os << "[" << data.primary_key() << "," << data.last_visit_time() << "]" |
197 << std::endl; | 284 << std::endl; |
198 for (const ResourceData& resource : data.resources()) | 285 for (const ResourceData& resource : data.resources()) |
199 os << "\t\t" << resource << std::endl; | 286 os << "\t\t" << resource << std::endl; |
200 return os; | 287 return os; |
201 } | 288 } |
202 | 289 |
203 std::ostream& operator<<(std::ostream& os, const ResourceData& resource) { | 290 std::ostream& operator<<(std::ostream& os, const ResourceData& resource) { |
204 return os << "[" << resource.resource_url() << "," << resource.resource_type() | 291 return os << "[" << resource.resource_url() << "," << resource.resource_type() |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
377 | 464 |
378 return equal; | 465 return equal; |
379 } | 466 } |
380 | 467 |
381 bool operator==(const PrecacheResource& lhs, const PrecacheResource& rhs) { | 468 bool operator==(const PrecacheResource& lhs, const PrecacheResource& rhs) { |
382 return lhs.url() == rhs.url() && | 469 return lhs.url() == rhs.url() && |
383 AlmostEqual(lhs.weight_ratio(), rhs.weight_ratio()); | 470 AlmostEqual(lhs.weight_ratio(), rhs.weight_ratio()); |
384 } | 471 } |
385 | 472 |
386 } // namespace precache | 473 } // namespace precache |
OLD | NEW |