Index: chrome/browser/predictors/resource_prefetch_predictor_unittest.cc |
diff --git a/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc b/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc |
index c3f862c9a41fcbaffdff847335c56a8dde263347..ddf643bcbc279bf50755c3772480f7b4fb9afb09 100644 |
--- a/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc |
+++ b/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc |
@@ -14,8 +14,10 @@ |
#include "base/test/histogram_tester.h" |
#include "base/time/time.h" |
#include "chrome/browser/history/history_service_factory.h" |
+#include "chrome/browser/predictors/loading_predictor.h" |
#include "chrome/browser/predictors/resource_prefetch_predictor_tables.h" |
#include "chrome/browser/predictors/resource_prefetch_predictor_test_util.h" |
+#include "chrome/browser/predictors/resource_prefetcher_manager.h" |
#include "chrome/test/base/testing_profile.h" |
#include "components/history/core/browser/history_service.h" |
#include "components/history/core/browser/history_types.h" |
@@ -225,7 +227,7 @@ class ResourcePrefetchPredictorTest : public testing::Test { |
} |
void InitializePredictor() { |
- predictor_->StartInitialization(); |
+ loading_predictor_->StartInitialization(); |
base::RunLoop loop; |
loop.RunUntilIdle(); // Runs the DB lookup. |
profile_->BlockUntilHistoryProcessesPendingRequests(); |
@@ -233,19 +235,11 @@ class ResourcePrefetchPredictorTest : public testing::Test { |
void ResetPredictor() { |
LoadingPredictorConfig config; |
- config.max_urls_to_track = 3; |
- config.max_hosts_to_track = 2; |
- config.min_url_visit_count = 2; |
- config.max_resources_per_entry = 4; |
- config.max_consecutive_misses = 2; |
- config.max_redirect_consecutive_misses = 2; |
- config.min_resource_confidence_to_trigger_prefetch = 0.5; |
- config.is_url_learning_enabled = true; |
- config.is_manifests_enabled = true; |
- config.is_origin_learning_enabled = true; |
- |
- config.mode |= LoadingPredictorConfig::LEARNING; |
- predictor_.reset(new ResourcePrefetchPredictor(config, profile_.get())); |
+ PopulateTestConfig(&config); |
+ |
+ loading_predictor_ = |
+ base::MakeUnique<LoadingPredictor>(config, profile_.get()); |
+ predictor_ = loading_predictor_->resource_prefetch_predictor(); |
predictor_->set_mock_tables(mock_tables_); |
} |
@@ -261,7 +255,8 @@ class ResourcePrefetchPredictorTest : public testing::Test { |
std::unique_ptr<TestingProfile> profile_; |
net::TestURLRequestContext url_request_context_; |
- std::unique_ptr<ResourcePrefetchPredictor> predictor_; |
+ std::unique_ptr<LoadingPredictor> loading_predictor_; |
+ ResourcePrefetchPredictor* predictor_; |
scoped_refptr<StrictMock<MockResourcePrefetchPredictorTables>> mock_tables_; |
PrefetchDataMap test_url_data_; |
@@ -316,7 +311,7 @@ void ResourcePrefetchPredictorTest::SetUp() { |
} |
void ResourcePrefetchPredictorTest::TearDown() { |
- predictor_.reset(NULL); |
+ loading_predictor_ = nullptr; |
profile_->DestroyHistoryService(); |
} |
@@ -480,15 +475,14 @@ void ResourcePrefetchPredictorTest::TestRedirectStatusHistogram( |
InitializeResourceData(google.add_resources(), script_url, |
content::RESOURCE_TYPE_SCRIPT, 10, 0, 1, 2.1, |
net::MEDIUM, false, false); |
- predictor_->host_table_cache_->insert( |
- std::make_pair(google.primary_key(), google)); |
+ predictor_->host_table_cache_->emplace(google.primary_key(), google); |
if (predictor_initial_key != predictor_key) { |
RedirectData redirect = CreateRedirectData(predictor_initial_key, 1); |
InitializeRedirectStat(redirect.add_redirect_endpoints(), predictor_key, 10, |
0, 0); |
- predictor_->host_redirect_table_cache_->insert( |
- std::make_pair(redirect.primary_key(), redirect)); |
+ predictor_->host_redirect_table_cache_->emplace(redirect.primary_key(), |
+ redirect); |
} |
// Navigation simulation. |
@@ -605,8 +599,7 @@ TEST_F(ResourcePrefetchPredictorTest, NavigationNotRecorded) { |
content::RESOURCE_TYPE_SCRIPT, net::MEDIUM, "text/javascript", false); |
predictor_->RecordURLResponse(resource3); |
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer( |
- predictor_.get()); |
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_); |
EXPECT_CALL( |
mock_observer, |
OnNavigationLearned(kVisitCount, |
@@ -703,8 +696,7 @@ TEST_F(ResourcePrefetchPredictorTest, NavigationUrlNotInDB) { |
predictor_->RecordURLResponse(redirected); |
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer( |
- predictor_.get()); |
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_); |
EXPECT_CALL(mock_observer, |
OnNavigationLearned( |
kVisitCount, CreatePageRequestSummary("http://www.google.com", |
@@ -823,8 +815,7 @@ TEST_F(ResourcePrefetchPredictorTest, NavigationUrlInDB) { |
no_store.is_no_store = true; |
predictor_->RecordURLResponse(no_store); |
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer( |
- predictor_.get()); |
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_); |
EXPECT_CALL(mock_observer, |
OnNavigationLearned( |
kVisitCount, CreatePageRequestSummary("http://www.google.com", |
@@ -929,8 +920,7 @@ TEST_F(ResourcePrefetchPredictorTest, NavigationUrlNotInDBAndDBFull) { |
content::RESOURCE_TYPE_IMAGE, net::MEDIUM, "image/png", false); |
predictor_->RecordURLResponse(resource2); |
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer( |
- predictor_.get()); |
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_); |
EXPECT_CALL(mock_observer, |
OnNavigationLearned( |
kVisitCount, CreatePageRequestSummary( |
@@ -995,8 +985,7 @@ TEST_F(ResourcePrefetchPredictorTest, RedirectUrlNotInDB) { |
predictor_->RecordURLRedirect(fb3); |
NavigationID fb_end = CreateNavigationID(1, "https://facebook.com/google"); |
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer( |
- predictor_.get()); |
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_); |
EXPECT_CALL( |
mock_observer, |
OnNavigationLearned(kVisitCount, CreatePageRequestSummary( |
@@ -1060,8 +1049,7 @@ TEST_F(ResourcePrefetchPredictorTest, RedirectUrlInDB) { |
predictor_->RecordURLRedirect(fb3); |
NavigationID fb_end = CreateNavigationID(1, "https://facebook.com/google"); |
- StrictMock<MockResourcePrefetchPredictorObserver> mock_observer( |
- predictor_.get()); |
+ StrictMock<MockResourcePrefetchPredictorObserver> mock_observer(predictor_); |
EXPECT_CALL( |
mock_observer, |
OnNavigationLearned(kVisitCount, CreatePageRequestSummary( |
@@ -2096,29 +2084,6 @@ TEST_F(ResourcePrefetchPredictorTest, |
ResourcePrefetchPredictor::RedirectStatus::REDIRECT_CORRECTLY_PREDICTED); |
} |
-TEST_F(ResourcePrefetchPredictorTest, TestPrefetchingDurationHistogram) { |
- // Prefetching duration for an url without resources in the database |
- // shouldn't be recorded. |
- const std::string main_frame_url = "http://google.com/?query=cats"; |
- predictor_->StartPrefetching(GURL(main_frame_url), HintOrigin::EXTERNAL); |
- predictor_->StopPrefetching(GURL(main_frame_url)); |
- histogram_tester_->ExpectTotalCount( |
- internal::kResourcePrefetchPredictorPrefetchingDurationHistogram, 0); |
- |
- // Fill the database to record a duration. |
- PrefetchData google = CreatePrefetchData("google.com", 1); |
- InitializeResourceData( |
- google.add_resources(), "https://cdn.google.com/script.js", |
- content::RESOURCE_TYPE_SCRIPT, 10, 0, 1, 2.1, net::MEDIUM, false, false); |
- predictor_->host_table_cache_->insert( |
- std::make_pair(google.primary_key(), google)); |
- |
- predictor_->StartPrefetching(GURL(main_frame_url), HintOrigin::EXTERNAL); |
- predictor_->StopPrefetching(GURL(main_frame_url)); |
- histogram_tester_->ExpectTotalCount( |
- internal::kResourcePrefetchPredictorPrefetchingDurationHistogram, 1); |
-} |
- |
TEST_F(ResourcePrefetchPredictorTest, TestRecordFirstContentfulPaint) { |
using testing::_; |
EXPECT_CALL(*mock_tables_.get(), UpdateRedirectData(_, _)); |