| 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 "chrome/browser/predictors/resource_prefetch_predictor.h" | 5 #include "chrome/browser/predictors/resource_prefetch_predictor.h" |
| 6 | 6 |
| 7 #include <iostream> | 7 #include <iostream> |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 1232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1243 CreateURLRequest(GURL("https://www.google.com"), net::MEDIUM, | 1243 CreateURLRequest(GURL("https://www.google.com"), net::MEDIUM, |
| 1244 content::RESOURCE_TYPE_IMAGE, true); | 1244 content::RESOURCE_TYPE_IMAGE, true); |
| 1245 EXPECT_TRUE(ResourcePrefetchPredictor::ShouldRecordRequest( | 1245 EXPECT_TRUE(ResourcePrefetchPredictor::ShouldRecordRequest( |
| 1246 https_request.get(), content::RESOURCE_TYPE_MAIN_FRAME)); | 1246 https_request.get(), content::RESOURCE_TYPE_MAIN_FRAME)); |
| 1247 | 1247 |
| 1248 std::unique_ptr<net::URLRequest> file_request = | 1248 std::unique_ptr<net::URLRequest> file_request = |
| 1249 CreateURLRequest(GURL("file://www.google.com"), net::MEDIUM, | 1249 CreateURLRequest(GURL("file://www.google.com"), net::MEDIUM, |
| 1250 content::RESOURCE_TYPE_IMAGE, true); | 1250 content::RESOURCE_TYPE_IMAGE, true); |
| 1251 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordRequest( | 1251 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordRequest( |
| 1252 file_request.get(), content::RESOURCE_TYPE_MAIN_FRAME)); | 1252 file_request.get(), content::RESOURCE_TYPE_MAIN_FRAME)); |
| 1253 |
| 1254 std::unique_ptr<net::URLRequest> https_request_with_port = |
| 1255 CreateURLRequest(GURL("https://www.google.com:666"), net::MEDIUM, |
| 1256 content::RESOURCE_TYPE_IMAGE, true); |
| 1257 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordRequest( |
| 1258 https_request_with_port.get(), content::RESOURCE_TYPE_MAIN_FRAME)); |
| 1253 } | 1259 } |
| 1254 | 1260 |
| 1255 TEST_F(ResourcePrefetchPredictorTest, ShouldRecordRequestSubResource) { | 1261 TEST_F(ResourcePrefetchPredictorTest, ShouldRecordRequestSubResource) { |
| 1256 std::unique_ptr<net::URLRequest> http_request = | 1262 std::unique_ptr<net::URLRequest> http_request = |
| 1257 CreateURLRequest(GURL("http://www.google.com/cat.png"), net::MEDIUM, | 1263 CreateURLRequest(GURL("http://www.google.com/cat.png"), net::MEDIUM, |
| 1258 content::RESOURCE_TYPE_IMAGE, false); | 1264 content::RESOURCE_TYPE_IMAGE, false); |
| 1259 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordRequest( | 1265 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordRequest( |
| 1260 http_request.get(), content::RESOURCE_TYPE_IMAGE)); | 1266 http_request.get(), content::RESOURCE_TYPE_IMAGE)); |
| 1261 | 1267 |
| 1262 std::unique_ptr<net::URLRequest> https_request = | 1268 std::unique_ptr<net::URLRequest> https_request = |
| 1263 CreateURLRequest(GURL("https://www.google.com/cat.png"), net::MEDIUM, | 1269 CreateURLRequest(GURL("https://www.google.com/cat.png"), net::MEDIUM, |
| 1264 content::RESOURCE_TYPE_IMAGE, false); | 1270 content::RESOURCE_TYPE_IMAGE, false); |
| 1265 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordRequest( | 1271 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordRequest( |
| 1266 https_request.get(), content::RESOURCE_TYPE_IMAGE)); | 1272 https_request.get(), content::RESOURCE_TYPE_IMAGE)); |
| 1267 | 1273 |
| 1268 std::unique_ptr<net::URLRequest> file_request = | 1274 std::unique_ptr<net::URLRequest> file_request = |
| 1269 CreateURLRequest(GURL("file://www.google.com/cat.png"), net::MEDIUM, | 1275 CreateURLRequest(GURL("file://www.google.com/cat.png"), net::MEDIUM, |
| 1270 content::RESOURCE_TYPE_IMAGE, false); | 1276 content::RESOURCE_TYPE_IMAGE, false); |
| 1271 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordRequest( | 1277 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordRequest( |
| 1272 file_request.get(), content::RESOURCE_TYPE_IMAGE)); | 1278 file_request.get(), content::RESOURCE_TYPE_IMAGE)); |
| 1279 |
| 1280 std::unique_ptr<net::URLRequest> https_request_with_port = |
| 1281 CreateURLRequest(GURL("https://www.google.com:666/cat.png"), net::MEDIUM, |
| 1282 content::RESOURCE_TYPE_IMAGE, false); |
| 1283 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordRequest( |
| 1284 https_request_with_port.get(), content::RESOURCE_TYPE_IMAGE)); |
| 1273 } | 1285 } |
| 1274 | 1286 |
| 1275 TEST_F(ResourcePrefetchPredictorTest, ShouldRecordResponseMainFrame) { | 1287 TEST_F(ResourcePrefetchPredictorTest, ShouldRecordResponseMainFrame) { |
| 1276 net::HttpResponseInfo response_info; | 1288 net::HttpResponseInfo response_info; |
| 1277 response_info.headers = MakeResponseHeaders(""); | 1289 response_info.headers = MakeResponseHeaders(""); |
| 1278 url_request_job_factory_.set_response_info(response_info); | 1290 url_request_job_factory_.set_response_info(response_info); |
| 1279 | 1291 |
| 1280 std::unique_ptr<net::URLRequest> http_request = | 1292 std::unique_ptr<net::URLRequest> http_request = |
| 1281 CreateURLRequest(GURL("http://www.google.com"), net::MEDIUM, | 1293 CreateURLRequest(GURL("http://www.google.com"), net::MEDIUM, |
| 1282 content::RESOURCE_TYPE_MAIN_FRAME, true); | 1294 content::RESOURCE_TYPE_MAIN_FRAME, true); |
| 1283 EXPECT_TRUE( | 1295 EXPECT_TRUE( |
| 1284 ResourcePrefetchPredictor::ShouldRecordResponse(http_request.get())); | 1296 ResourcePrefetchPredictor::ShouldRecordResponse(http_request.get())); |
| 1285 | 1297 |
| 1286 std::unique_ptr<net::URLRequest> https_request = | 1298 std::unique_ptr<net::URLRequest> https_request = |
| 1287 CreateURLRequest(GURL("https://www.google.com"), net::MEDIUM, | 1299 CreateURLRequest(GURL("https://www.google.com"), net::MEDIUM, |
| 1288 content::RESOURCE_TYPE_MAIN_FRAME, true); | 1300 content::RESOURCE_TYPE_MAIN_FRAME, true); |
| 1289 EXPECT_TRUE( | 1301 EXPECT_TRUE( |
| 1290 ResourcePrefetchPredictor::ShouldRecordResponse(https_request.get())); | 1302 ResourcePrefetchPredictor::ShouldRecordResponse(https_request.get())); |
| 1291 | 1303 |
| 1292 std::unique_ptr<net::URLRequest> file_request = | 1304 std::unique_ptr<net::URLRequest> file_request = |
| 1293 CreateURLRequest(GURL("file://www.google.com"), net::MEDIUM, | 1305 CreateURLRequest(GURL("file://www.google.com"), net::MEDIUM, |
| 1294 content::RESOURCE_TYPE_MAIN_FRAME, true); | 1306 content::RESOURCE_TYPE_MAIN_FRAME, true); |
| 1295 EXPECT_FALSE( | 1307 EXPECT_FALSE( |
| 1296 ResourcePrefetchPredictor::ShouldRecordResponse(file_request.get())); | 1308 ResourcePrefetchPredictor::ShouldRecordResponse(file_request.get())); |
| 1309 |
| 1310 std::unique_ptr<net::URLRequest> https_request_with_port = |
| 1311 CreateURLRequest(GURL("https://www.google.com:666"), net::MEDIUM, |
| 1312 content::RESOURCE_TYPE_MAIN_FRAME, true); |
| 1313 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordResponse( |
| 1314 https_request_with_port.get())); |
| 1297 } | 1315 } |
| 1298 | 1316 |
| 1299 TEST_F(ResourcePrefetchPredictorTest, ShouldRecordResponseSubresource) { | 1317 TEST_F(ResourcePrefetchPredictorTest, ShouldRecordResponseSubresource) { |
| 1300 net::HttpResponseInfo response_info; | 1318 net::HttpResponseInfo response_info; |
| 1301 response_info.headers = | 1319 response_info.headers = |
| 1302 MakeResponseHeaders("HTTP/1.1 200 OK\n\nSome: Headers\n"); | 1320 MakeResponseHeaders("HTTP/1.1 200 OK\n\nSome: Headers\n"); |
| 1303 response_info.was_cached = true; | 1321 response_info.was_cached = true; |
| 1304 url_request_job_factory_.set_response_info(response_info); | 1322 url_request_job_factory_.set_response_info(response_info); |
| 1305 | 1323 |
| 1306 // Protocol. | 1324 // Protocol. |
| 1307 std::unique_ptr<net::URLRequest> http_image_request = | 1325 std::unique_ptr<net::URLRequest> http_image_request = |
| 1308 CreateURLRequest(GURL("http://www.google.com/cat.png"), net::MEDIUM, | 1326 CreateURLRequest(GURL("http://www.google.com/cat.png"), net::MEDIUM, |
| 1309 content::RESOURCE_TYPE_IMAGE, true); | 1327 content::RESOURCE_TYPE_IMAGE, true); |
| 1310 EXPECT_TRUE(ResourcePrefetchPredictor::ShouldRecordResponse( | 1328 EXPECT_TRUE(ResourcePrefetchPredictor::ShouldRecordResponse( |
| 1311 http_image_request.get())); | 1329 http_image_request.get())); |
| 1312 | 1330 |
| 1313 std::unique_ptr<net::URLRequest> https_image_request = | 1331 std::unique_ptr<net::URLRequest> https_image_request = |
| 1314 CreateURLRequest(GURL("https://www.google.com/cat.png"), net::MEDIUM, | 1332 CreateURLRequest(GURL("https://www.google.com/cat.png"), net::MEDIUM, |
| 1315 content::RESOURCE_TYPE_IMAGE, true); | 1333 content::RESOURCE_TYPE_IMAGE, true); |
| 1316 EXPECT_TRUE(ResourcePrefetchPredictor::ShouldRecordResponse( | 1334 EXPECT_TRUE(ResourcePrefetchPredictor::ShouldRecordResponse( |
| 1317 https_image_request.get())); | 1335 https_image_request.get())); |
| 1318 | 1336 |
| 1337 std::unique_ptr<net::URLRequest> https_image_request_with_port = |
| 1338 CreateURLRequest(GURL("https://www.google.com:666/cat.png"), net::MEDIUM, |
| 1339 content::RESOURCE_TYPE_IMAGE, true); |
| 1340 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordResponse( |
| 1341 https_image_request_with_port.get())); |
| 1342 |
| 1319 std::unique_ptr<net::URLRequest> file_image_request = | 1343 std::unique_ptr<net::URLRequest> file_image_request = |
| 1320 CreateURLRequest(GURL("file://www.google.com/cat.png"), net::MEDIUM, | 1344 CreateURLRequest(GURL("file://www.google.com/cat.png"), net::MEDIUM, |
| 1321 content::RESOURCE_TYPE_IMAGE, true); | 1345 content::RESOURCE_TYPE_IMAGE, true); |
| 1322 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordResponse( | 1346 EXPECT_FALSE(ResourcePrefetchPredictor::ShouldRecordResponse( |
| 1323 file_image_request.get())); | 1347 file_image_request.get())); |
| 1324 | 1348 |
| 1325 // ResourceType. | 1349 // ResourceType. |
| 1326 std::unique_ptr<net::URLRequest> sub_frame_request = | 1350 std::unique_ptr<net::URLRequest> sub_frame_request = |
| 1327 CreateURLRequest(GURL("http://www.google.com/frame.html"), net::MEDIUM, | 1351 CreateURLRequest(GURL("http://www.google.com/frame.html"), net::MEDIUM, |
| 1328 content::RESOURCE_TYPE_SUB_FRAME, true); | 1352 content::RESOURCE_TYPE_SUB_FRAME, true); |
| (...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1719 predictor_->host_table_cache_->insert( | 1743 predictor_->host_table_cache_->insert( |
| 1720 std::make_pair(google.primary_key(), google)); | 1744 std::make_pair(google.primary_key(), google)); |
| 1721 | 1745 |
| 1722 predictor_->StartPrefetching(GURL(main_frame_url), PrefetchOrigin::EXTERNAL); | 1746 predictor_->StartPrefetching(GURL(main_frame_url), PrefetchOrigin::EXTERNAL); |
| 1723 predictor_->StopPrefetching(GURL(main_frame_url)); | 1747 predictor_->StopPrefetching(GURL(main_frame_url)); |
| 1724 histogram_tester_->ExpectTotalCount( | 1748 histogram_tester_->ExpectTotalCount( |
| 1725 internal::kResourcePrefetchPredictorPrefetchingDurationHistogram, 1); | 1749 internal::kResourcePrefetchPredictorPrefetchingDurationHistogram, 1); |
| 1726 } | 1750 } |
| 1727 | 1751 |
| 1728 } // namespace predictors | 1752 } // namespace predictors |
| OLD | NEW |