Index: chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc |
diff --git a/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc b/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc |
index a7c2bf7be22ee97903f4358d5273c7f12f9daa5c..9633aca66e1c69bcfd32d83675c40f298a43fb5d 100644 |
--- a/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc |
+++ b/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc |
@@ -316,7 +316,8 @@ void ResourcePrefetchPredictorTablesTest::TestUpdateData() { |
precache::PrecacheManifest theverge; |
InitializePrecacheResource(theverge.add_resource(), |
- "https://www.theverge.com/main.js", 0.7); |
+ "https://www.theverge.com/main.js", 0.7, |
+ precache::PrecacheResource::RESOURCE_TYPE_SCRIPT); |
tables_->UpdateManifestData("theverge.com", theverge); |
@@ -725,16 +726,20 @@ void ResourcePrefetchPredictorTablesTest::InitializeSampleData() { |
{ // Manifest data. |
precache::PrecacheManifest wikipedia; |
+ InitializePrecacheResource( |
+ wikipedia.add_resource(), "https://en.wikipedia.org/script.js", 0.7, |
+ precache::PrecacheResource::RESOURCE_TYPE_SCRIPT); |
InitializePrecacheResource(wikipedia.add_resource(), |
- "https://en.wikipedia.org/script.js", 0.7); |
- InitializePrecacheResource(wikipedia.add_resource(), |
- "https://en.wikipedia.org/image.png", 0.3); |
+ "https://en.wikipedia.org/image.png", 0.3, |
+ precache::PrecacheResource::RESOURCE_TYPE_IMAGE); |
precache::PrecacheManifest youtube; |
InitializePrecacheResource(youtube.add_resource(), |
- "https://youtube.com/photo.jpg", 0.5); |
- InitializePrecacheResource(youtube.add_resource(), |
- "https://youtube.com/base.js", 0.2); |
+ "https://youtube.com/photo.jpg", 0.5, |
+ precache::PrecacheResource::RESOURCE_TYPE_IMAGE); |
+ InitializePrecacheResource( |
+ youtube.add_resource(), "https://youtube.com/base.js", 0.2, |
+ precache::PrecacheResource::RESOURCE_TYPE_SCRIPT); |
test_manifest_data_.clear(); |
test_manifest_data_.insert(std::make_pair("en.wikipedia.org", wikipedia)); |
@@ -797,13 +802,10 @@ TEST_F(ResourcePrefetchPredictorTablesTest, ComputeResourceScore) { |
EXPECT_GT(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.), |
compute_score(net::IDLE, content::RESOURCE_TYPE_SCRIPT, 1.)); |
- // Scripts and stylesheets are equivalent. |
- EXPECT_NEAR( |
- compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.), |
- compute_score(net::HIGHEST, content::RESOURCE_TYPE_STYLESHEET, 42.), |
- 1e-4); |
- |
- // Scripts are more important than fonts and images, and the rest. |
+ // Stylesheets are are more important than scripts, fonts and images, and the |
+ // rest. |
+ EXPECT_GT(compute_score(net::HIGHEST, content::RESOURCE_TYPE_STYLESHEET, 42.), |
+ compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.)); |
EXPECT_GT( |
compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.), |
compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.)); |
@@ -819,6 +821,33 @@ TEST_F(ResourcePrefetchPredictorTablesTest, ComputeResourceScore) { |
compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.)); |
} |
+TEST_F(ResourcePrefetchPredictorTablesTest, ComputePrecacheResourceScore) { |
+ auto compute_score = [](precache::PrecacheResource::Type resource_type, |
+ float weight_ratio) { |
+ precache::PrecacheResource resource; |
+ InitializePrecacheResource(&resource, "", weight_ratio, resource_type); |
+ return ResourcePrefetchPredictorTables::ComputePrecacheResourceScore( |
+ resource); |
+ }; |
+ |
+ // Stylesheets are the most impotant followed by scripts, fonts and images in |
+ // this order. |
+ EXPECT_GT( |
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_STYLESHEET, 0.1), |
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_SCRIPT, 0.9)); |
+ EXPECT_GT( |
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_SCRIPT, 0.1), |
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_FONT, 0.9)); |
+ EXPECT_GT( |
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_FONT, 0.1), |
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_IMAGE, 0.9)); |
+ |
+ // If resource types are equal, weight ratio matters. |
+ EXPECT_GT( |
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_SCRIPT, 0.7), |
+ compute_score(precache::PrecacheResource::RESOURCE_TYPE_SCRIPT, 0.6)); |
+} |
+ |
TEST_F(ResourcePrefetchPredictorTablesTest, ComputeOriginScore) { |
auto compute_score = [](int hits, int misses, double average_position, |
bool always_access_network, bool accessed_network) { |