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

Unified Diff: chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc

Issue 2385173002: predictors: Take the priority into account for scoring resources. (Closed)
Patch Set: Address comments. Created 4 years, 2 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/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 c969bdea82ca3b0a9bb3bcfb7a65177696bf64a9..f037497399b2d003a44b98e73e08b157cd367175 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc
+++ b/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc
@@ -575,33 +575,47 @@ void ResourcePrefetchPredictorTablesTest::ReopenDatabase() {
// Test cases.
TEST_F(ResourcePrefetchPredictorTablesTest, ComputeResourceScore) {
- ResourceData js_resource = CreateResourceData(
- "http://www.resources.google.com/script.js",
- content::RESOURCE_TYPE_SCRIPT, 11, 0, 0, 1., net::MEDIUM, false, false);
- ResourceData image_resource = CreateResourceData(
- "http://www.resources.google.com/image.jpg", content::RESOURCE_TYPE_IMAGE,
- 11, 0, 0, 1., net::MEDIUM, false, false);
- ResourceData css_resource =
- CreateResourceData("http://www.resources.google.com/stylesheet.css",
- content::RESOURCE_TYPE_STYLESHEET, 11, 0, 0, 1.,
- net::MEDIUM, false, false);
- ResourceData font_resource =
- CreateResourceData("http://www.resources.google.com/font.woff",
- content::RESOURCE_TYPE_FONT_RESOURCE, 11, 0, 0, 1.,
- net::MEDIUM, false, false);
- float js_resource_score =
- ResourcePrefetchPredictorTables::ComputeResourceScore(js_resource);
- float css_resource_score =
- ResourcePrefetchPredictorTables::ComputeResourceScore(css_resource);
- float font_resource_score =
- ResourcePrefetchPredictorTables::ComputeResourceScore(font_resource);
- float image_resource_score =
- ResourcePrefetchPredictorTables::ComputeResourceScore(image_resource);
-
- EXPECT_TRUE(js_resource_score == css_resource_score);
- EXPECT_TRUE(js_resource_score == font_resource_score);
- EXPECT_NEAR(199., js_resource_score, 1e-4);
- EXPECT_NEAR(99., image_resource_score, 1e-4);
+ auto compute_score = [](net::RequestPriority priority,
+ content::ResourceType resource_type,
+ double average_position) {
+ return ResourcePrefetchPredictorTables::ComputeResourceScore(
+ CreateResourceData("", resource_type, 0, 0, 0, average_position,
+ priority, false, false));
+ };
+
+ // Priority is more important than the rest.
+ EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 1.) >
+ compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.));
+
+ EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) >
+ compute_score(net::MEDIUM, content::RESOURCE_TYPE_SCRIPT, 1.));
+ EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) >
+ compute_score(net::LOW, content::RESOURCE_TYPE_SCRIPT, 1.));
+ EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) >
+ compute_score(net::LOWEST, content::RESOURCE_TYPE_SCRIPT, 1.));
+ EXPECT_TRUE(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.
+ EXPECT_TRUE(
+ compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.) >
+ compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.));
+ EXPECT_TRUE(
+ compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.) >
+ compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.));
+ EXPECT_TRUE(
+ compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.) >
+ compute_score(net::HIGHEST, content::RESOURCE_TYPE_FAVICON, 42.));
+
+ // All else being equal, position matters.
+ EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 12.) >
+ compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.));
}
TEST_F(ResourcePrefetchPredictorTablesTest, GetAllData) {

Powered by Google App Engine
This is Rietveld 408576698