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

Side by Side 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 unified diff | Download patch
OLDNEW
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 <memory> 5 #include <memory>
6 #include <set> 6 #include <set>
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 568
569 void ResourcePrefetchPredictorTablesTest::ReopenDatabase() { 569 void ResourcePrefetchPredictorTablesTest::ReopenDatabase() {
570 db_.reset(new PredictorDatabase(&profile_)); 570 db_.reset(new PredictorDatabase(&profile_));
571 base::RunLoop().RunUntilIdle(); 571 base::RunLoop().RunUntilIdle();
572 tables_ = db_->resource_prefetch_tables(); 572 tables_ = db_->resource_prefetch_tables();
573 } 573 }
574 574
575 // Test cases. 575 // Test cases.
576 576
577 TEST_F(ResourcePrefetchPredictorTablesTest, ComputeResourceScore) { 577 TEST_F(ResourcePrefetchPredictorTablesTest, ComputeResourceScore) {
578 ResourceData js_resource = CreateResourceData( 578 auto compute_score = [](net::RequestPriority priority,
579 "http://www.resources.google.com/script.js", 579 content::ResourceType resource_type,
580 content::RESOURCE_TYPE_SCRIPT, 11, 0, 0, 1., net::MEDIUM, false, false); 580 double average_position) {
581 ResourceData image_resource = CreateResourceData( 581 return ResourcePrefetchPredictorTables::ComputeResourceScore(
582 "http://www.resources.google.com/image.jpg", content::RESOURCE_TYPE_IMAGE, 582 CreateResourceData("", resource_type, 0, 0, 0, average_position,
583 11, 0, 0, 1., net::MEDIUM, false, false); 583 priority, false, false));
584 ResourceData css_resource = 584 };
585 CreateResourceData("http://www.resources.google.com/stylesheet.css",
586 content::RESOURCE_TYPE_STYLESHEET, 11, 0, 0, 1.,
587 net::MEDIUM, false, false);
588 ResourceData font_resource =
589 CreateResourceData("http://www.resources.google.com/font.woff",
590 content::RESOURCE_TYPE_FONT_RESOURCE, 11, 0, 0, 1.,
591 net::MEDIUM, false, false);
592 float js_resource_score =
593 ResourcePrefetchPredictorTables::ComputeResourceScore(js_resource);
594 float css_resource_score =
595 ResourcePrefetchPredictorTables::ComputeResourceScore(css_resource);
596 float font_resource_score =
597 ResourcePrefetchPredictorTables::ComputeResourceScore(font_resource);
598 float image_resource_score =
599 ResourcePrefetchPredictorTables::ComputeResourceScore(image_resource);
600 585
601 EXPECT_TRUE(js_resource_score == css_resource_score); 586 // Priority is more important than the rest.
602 EXPECT_TRUE(js_resource_score == font_resource_score); 587 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 1.) >
603 EXPECT_NEAR(199., js_resource_score, 1e-4); 588 compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.));
604 EXPECT_NEAR(99., image_resource_score, 1e-4); 589
590 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) >
591 compute_score(net::MEDIUM, content::RESOURCE_TYPE_SCRIPT, 1.));
592 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) >
593 compute_score(net::LOW, content::RESOURCE_TYPE_SCRIPT, 1.));
594 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) >
595 compute_score(net::LOWEST, content::RESOURCE_TYPE_SCRIPT, 1.));
596 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.) >
597 compute_score(net::IDLE, content::RESOURCE_TYPE_SCRIPT, 1.));
598
599 // Scripts and stylesheets are equivalent.
600 EXPECT_NEAR(
601 compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.),
602 compute_score(net::HIGHEST, content::RESOURCE_TYPE_STYLESHEET, 42.),
603 1e-4);
604
605 // Scripts are more important than fonts and images, and the rest.
606 EXPECT_TRUE(
607 compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.) >
608 compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.));
609 EXPECT_TRUE(
610 compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.) >
611 compute_score(net::HIGHEST, content::RESOURCE_TYPE_IMAGE, 42.));
612 EXPECT_TRUE(
613 compute_score(net::HIGHEST, content::RESOURCE_TYPE_FONT_RESOURCE, 42.) >
614 compute_score(net::HIGHEST, content::RESOURCE_TYPE_FAVICON, 42.));
615
616 // All else being equal, position matters.
617 EXPECT_TRUE(compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 12.) >
618 compute_score(net::HIGHEST, content::RESOURCE_TYPE_SCRIPT, 42.));
605 } 619 }
606 620
607 TEST_F(ResourcePrefetchPredictorTablesTest, GetAllData) { 621 TEST_F(ResourcePrefetchPredictorTablesTest, GetAllData) {
608 TestGetAllData(); 622 TestGetAllData();
609 } 623 }
610 624
611 TEST_F(ResourcePrefetchPredictorTablesTest, UpdateData) { 625 TEST_F(ResourcePrefetchPredictorTablesTest, UpdateData) {
612 TestUpdateData(); 626 TestUpdateData();
613 } 627 }
614 628
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 679
666 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteSingleDataPoint) { 680 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteSingleDataPoint) {
667 TestDeleteSingleDataPoint(); 681 TestDeleteSingleDataPoint();
668 } 682 }
669 683
670 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteAllData) { 684 TEST_F(ResourcePrefetchPredictorTablesReopenTest, DeleteAllData) {
671 TestDeleteAllData(); 685 TestDeleteAllData();
672 } 686 }
673 687
674 } // namespace predictors 688 } // namespace predictors
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698