| Index: components/precache/core/precache_fetcher_unittest.cc
|
| diff --git a/components/precache/core/precache_fetcher_unittest.cc b/components/precache/core/precache_fetcher_unittest.cc
|
| index 708476671a358989d686d2b94f30793d983c9790..de1506f0fe22af50c2395869229343be8a9f006a 100644
|
| --- a/components/precache/core/precache_fetcher_unittest.cc
|
| +++ b/components/precache/core/precache_fetcher_unittest.cc
|
| @@ -16,6 +16,8 @@
|
| #include "base/callback.h"
|
| #include "base/command_line.h"
|
| #include "base/compiler_specific.h"
|
| +#include "base/files/file_path.h"
|
| +#include "base/files/scoped_temp_dir.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/weak_ptr.h"
|
| @@ -24,6 +26,7 @@
|
| #include "base/strings/stringprintf.h"
|
| #include "base/test/histogram_tester.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| +#include "components/precache/core/precache_database.h"
|
| #include "components/precache/core/precache_switches.h"
|
| #include "components/precache/core/proto/precache.pb.h"
|
| #include "components/precache/core/proto/unfinished_work.pb.h"
|
| @@ -90,9 +93,9 @@ class TestURLFetcherCallback {
|
| return fetcher;
|
| }
|
|
|
| - const std::multiset<GURL>& requested_urls() const {
|
| - return requested_urls_;
|
| - }
|
| + const std::multiset<GURL>& requested_urls() const { return requested_urls_; }
|
| +
|
| + void clear_requested_urls() { requested_urls_.clear(); }
|
|
|
| int total_response_bytes() const { return total_response_bytes_; }
|
|
|
| @@ -230,10 +233,10 @@ TEST_F(PrecacheFetcherFetcherTest, Config) {
|
| NotNull())));
|
|
|
| PrecacheFetcher::Fetcher precache_fetcher(
|
| - request_context_.get(), url, callback_, false /* is_resource_request */,
|
| - SIZE_MAX);
|
| + request_context_.get(), url, url.host(), callback_,
|
| + false /* is_resource_request */, SIZE_MAX);
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| ASSERT_NE(nullptr, fetcher);
|
| EXPECT_EQ(kNoTracking, fetcher->GetLoadFlags());
|
| @@ -252,10 +255,10 @@ TEST_F(PrecacheFetcherFetcherTest, ResourceNotInCache) {
|
| .Times(1);
|
|
|
| PrecacheFetcher::Fetcher precache_fetcher(
|
| - request_context_.get(), url, callback_, true /* is_resource_request */,
|
| - SIZE_MAX);
|
| + request_context_.get(), url, url.host(), callback_,
|
| + true /* is_resource_request */, SIZE_MAX);
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| ASSERT_NE(nullptr, fetcher1);
|
| EXPECT_EQ(net::LOAD_ONLY_FROM_CACHE | kNoTracking, fetcher1->GetLoadFlags());
|
| @@ -275,10 +278,10 @@ TEST_F(PrecacheFetcherFetcherTest, ResourceHasValidators) {
|
| NotNull())));
|
|
|
| PrecacheFetcher::Fetcher precache_fetcher(
|
| - request_context_.get(), url, callback_, true /* is_resource_request */,
|
| - SIZE_MAX);
|
| + request_context_.get(), url, url.host(), callback_,
|
| + true /* is_resource_request */, SIZE_MAX);
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| ASSERT_NE(nullptr, fetcher1);
|
| EXPECT_EQ(net::LOAD_ONLY_FROM_CACHE | kNoTracking, fetcher1->GetLoadFlags());
|
| @@ -297,10 +300,10 @@ TEST_F(PrecacheFetcherFetcherTest, ResourceHasNoValidators) {
|
| nullptr))); // It never reached the network.
|
|
|
| PrecacheFetcher::Fetcher precache_fetcher(
|
| - request_context_.get(), url, callback_, true /* is_resource_request */,
|
| - SIZE_MAX);
|
| + request_context_.get(), url, url.host(), callback_,
|
| + true /* is_resource_request */, SIZE_MAX);
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| EXPECT_EQ(net::LOAD_ONLY_FROM_CACHE | kNoTracking, fetcher->GetLoadFlags());
|
| }
|
| @@ -324,16 +327,17 @@ TEST_F(PrecacheFetcherFetcherTest, ResourceTooBig) {
|
| nullptr)));
|
|
|
| PrecacheFetcher::Fetcher precache_fetcher(
|
| - request_context_.get(), url, callback_, true /* is_resource_request */,
|
| - 99 /* max_bytes */);
|
| + request_context_.get(), url, url.host(), callback_,
|
| + true /* is_resource_request */, 99 /* max_bytes */);
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| class PrecacheFetcherTest : public testing::Test {
|
| public:
|
| PrecacheFetcherTest()
|
| - : request_context_(new net::TestURLRequestContextGetter(
|
| + : task_runner_(base::ThreadTaskRunnerHandle::Get()),
|
| + request_context_(new net::TestURLRequestContextGetter(
|
| base::ThreadTaskRunnerHandle::Get())),
|
| factory_(NULL,
|
| base::Bind(&TestURLFetcherCallback::CreateURLFetcher,
|
| @@ -342,6 +346,12 @@ class PrecacheFetcherTest : public testing::Test {
|
| parallel_fetches_beyond_capacity_(false) {}
|
|
|
| protected:
|
| + void SetUp() override {
|
| + ASSERT_TRUE(scoped_temp_dir_.CreateUniqueTempDir());
|
| + base::FilePath db_path = scoped_temp_dir_.path().Append(
|
| + base::FilePath(FILE_PATH_LITERAL("precache_database")));
|
| + precache_database_.Init(db_path);
|
| + }
|
| void SetDefaultFlags() {
|
| base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| switches::kPrecacheConfigSettingsURL, kConfigURL);
|
| @@ -355,25 +365,34 @@ class PrecacheFetcherTest : public testing::Test {
|
| void CheckUntilParallelFetchesBeyondCapacity(
|
| const PrecacheFetcher* precache_fetcher) {
|
| if (!precache_fetcher->pool_.IsAvailable() &&
|
| - !precache_fetcher->resource_urls_to_fetch_.empty() &&
|
| - !precache_fetcher->manifest_urls_to_fetch_.empty()) {
|
| + precache_fetcher->top_hosts_to_fetch_ &&
|
| + !precache_fetcher->top_hosts_to_fetch_->empty() &&
|
| + !precache_fetcher->resources_to_fetch_.empty()) {
|
| parallel_fetches_beyond_capacity_ = true;
|
| return;
|
| }
|
|
|
| // Check again after allowing the message loop to process some messages.
|
| - loop_.task_runner()->PostTask(
|
| + loop_.PostTask(
|
| FROM_HERE,
|
| base::Bind(
|
| &PrecacheFetcherTest::CheckUntilParallelFetchesBeyondCapacity,
|
| base::Unretained(this), precache_fetcher));
|
| }
|
|
|
| + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner() const {
|
| + return task_runner_;
|
| + }
|
| +
|
| + // Must be declared first so that it is destroyed last.
|
| base::MessageLoopForUI loop_;
|
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
| scoped_refptr<net::TestURLRequestContextGetter> request_context_;
|
| TestURLFetcherCallback url_callback_;
|
| net::FakeURLFetcherFactory factory_;
|
| TestPrecacheDelegate precache_delegate_;
|
| + base::ScopedTempDir scoped_temp_dir_;
|
| + PrecacheDatabase precache_database_;
|
| int expected_total_response_bytes_;
|
|
|
| // True if more parallel fetches were attempted beyond the fetcher pool
|
| @@ -425,12 +444,13 @@ TEST_F(PrecacheFetcherTest, FullPrecache) {
|
| base::HistogramTester histogram;
|
|
|
| {
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(),
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| // Destroy the PrecacheFetcher after it has finished, to record metrics.
|
| }
|
| @@ -493,12 +513,13 @@ TEST_F(PrecacheFetcherTest, PrecacheResourceSelection) {
|
| base::HistogramTester histogram;
|
|
|
| {
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(),
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| // Destroy the PrecacheFetcher after it has finished, to record metrics.
|
| }
|
| @@ -565,12 +586,13 @@ TEST_F(PrecacheFetcherTest, PrecacheResourceSelectionMissingBitset) {
|
| base::HistogramTester histogram;
|
|
|
| {
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(),
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| // Destroy the PrecacheFetcher after it has finished, to record metrics.
|
| }
|
| @@ -602,23 +624,25 @@ TEST_F(PrecacheFetcherTest, PrecachePauseResume) {
|
|
|
| std::unique_ptr<PrecacheUnfinishedWork> initial_work(
|
| new PrecacheUnfinishedWork());
|
| - initial_work->add_manifest()->set_url(
|
| - "http://manifest-url-prefix.com/manifest1.com");
|
| - initial_work->add_manifest()->set_url(
|
| - "http://manifest-url-prefix.com/manifest2.com");
|
| - initial_work->add_resource()->set_url(kGoodResourceURL);
|
| + initial_work->add_top_host()->set_hostname("manifest1.com");
|
| + initial_work->add_top_host()->set_hostname("manifest2.com");
|
| initial_work->set_start_time(
|
| (base::Time::Now() - base::TimeDelta::FromHours(1)).ToInternalValue());
|
| + // initial_work->add_resource()->set_url(kGoodResourceURL);
|
|
|
| PrecacheFetcher first_fetcher(request_context_.get(), GURL(), std::string(),
|
| std::move(initial_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(),
|
| &precache_delegate_);
|
| -
|
| - loop_.RunUntilIdle();
|
| + factory_.SetFakeResponse(GURL(kConfigURL), config.SerializeAsString(),
|
| + net::HTTP_OK, net::URLRequestStatus::SUCCESS);
|
| + first_fetcher.Start();
|
| + // base::RunLoop().RunUntilIdle();
|
| std::unique_ptr<PrecacheUnfinishedWork> unfinished_work =
|
| first_fetcher.CancelPrecaching();
|
|
|
| std::multiset<GURL> expected_requested_urls;
|
| + expected_requested_urls.insert(GURL(kConfigURL));
|
| EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
|
|
|
| factory_.SetFakeResponse(GURL(kConfigURL), config.SerializeAsString(),
|
| @@ -633,19 +657,20 @@ TEST_F(PrecacheFetcherTest, PrecachePauseResume) {
|
| net::URLRequestStatus::SUCCESS);
|
| factory_.SetFakeResponse(GURL(kGoodResourceURL), "good", net::HTTP_OK,
|
| net::URLRequestStatus::SUCCESS);
|
| - // Starting hosts should not be fetched.
|
| - unfinished_work->add_top_host()->set_hostname("bad-manifest.com");
|
| +
|
| + // unfinished_work->add_top_host()->set_hostname("bad-manifest.com");
|
| + url_callback_.clear_requested_urls();
|
| PrecacheFetcher second_fetcher(request_context_.get(), GURL(), std::string(),
|
| std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(),
|
| &precache_delegate_);
|
| second_fetcher.Start();
|
| - loop_.RunUntilIdle();
|
| - expected_requested_urls.insert(GURL(kConfigURL));
|
| + base::RunLoop().RunUntilIdle();
|
| expected_requested_urls.insert(
|
| GURL("http://manifest-url-prefix.com/manifest1.com"));
|
| expected_requested_urls.insert(
|
| GURL("http://manifest-url-prefix.com/manifest2.com"));
|
| - expected_requested_urls.insert(GURL(kGoodResourceURL));
|
| + // expected_requested_urls.insert(GURL(kGoodResourceURL));
|
| EXPECT_EQ(expected_requested_urls, url_callback_.requested_urls());
|
| EXPECT_TRUE(precache_delegate_.was_on_done_called());
|
| }
|
| @@ -666,12 +691,13 @@ TEST_F(PrecacheFetcherTest, ResumeWithConfigOnly) {
|
| factory_.SetFakeResponse(GURL(kGoodResourceURL), "good", net::HTTP_OK,
|
| net::URLRequestStatus::SUCCESS);
|
| {
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(),
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| std::multiset<GURL> expected_requested_urls;
|
| @@ -706,10 +732,11 @@ TEST_F(PrecacheFetcherTest, CustomURLs) {
|
|
|
| PrecacheFetcher precache_fetcher(
|
| request_context_.get(), GURL(kCustomConfigURL), kCustomManifestURLPrefix,
|
| - std::move(unfinished_work), kExperimentID, &precache_delegate_);
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| std::multiset<GURL> expected_requested_urls;
|
| expected_requested_urls.insert(GURL(kCustomConfigURL));
|
| @@ -734,12 +761,13 @@ TEST_F(PrecacheFetcherTest, ConfigFetchFailure) {
|
| factory_.SetFakeResponse(GURL(kGoodManifestURL), "", net::HTTP_OK,
|
| net::URLRequestStatus::SUCCESS);
|
|
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(), std::move(unfinished_work),
|
| + kExperimentID, precache_database_.GetWeakPtr(), task_runner(),
|
| + &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| std::multiset<GURL> expected_requested_urls;
|
| expected_requested_urls.insert(GURL(kConfigURL));
|
| @@ -761,12 +789,13 @@ TEST_F(PrecacheFetcherTest, BadConfig) {
|
| factory_.SetFakeResponse(GURL(kGoodManifestURL), "", net::HTTP_OK,
|
| net::URLRequestStatus::SUCCESS);
|
|
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(), std::move(unfinished_work),
|
| + kExperimentID, precache_database_.GetWeakPtr(), task_runner(),
|
| + &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| std::multiset<GURL> expected_requested_urls;
|
| expected_requested_urls.insert(GURL(kConfigURL));
|
| @@ -792,9 +821,10 @@ TEST_F(PrecacheFetcherTest, Cancel) {
|
| base::HistogramTester histogram;
|
|
|
| {
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(),
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| // Destroy the PrecacheFetcher, to cancel precaching. No metrics
|
| @@ -802,7 +832,7 @@ TEST_F(PrecacheFetcherTest, Cancel) {
|
| // called on the precache delegate.
|
| }
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| std::multiset<GURL> expected_requested_urls;
|
| expected_requested_urls.insert(GURL(kConfigURL));
|
| @@ -829,12 +859,13 @@ TEST_F(PrecacheFetcherTest, PrecacheUsingDefaultConfigSettingsURL) {
|
| config.SerializeAsString(), net::HTTP_OK,
|
| net::URLRequestStatus::SUCCESS);
|
|
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(), std::move(unfinished_work),
|
| + kExperimentID, precache_database_.GetWeakPtr(), task_runner(),
|
| + &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| std::multiset<GURL> expected_requested_urls;
|
| expected_requested_urls.insert(GURL(PRECACHE_CONFIG_SETTINGS_URL));
|
| @@ -867,12 +898,13 @@ TEST_F(PrecacheFetcherTest, PrecacheUsingDefaultManifestURLPrefix) {
|
| factory_.SetFakeResponse(manifest_url, PrecacheManifest().SerializeAsString(),
|
| net::HTTP_OK, net::URLRequestStatus::SUCCESS);
|
|
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(), std::move(unfinished_work),
|
| + kExperimentID, precache_database_.GetWeakPtr(), task_runner(),
|
| + &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| std::multiset<GURL> expected_requested_urls;
|
| expected_requested_urls.insert(GURL(kConfigURL));
|
| @@ -913,12 +945,13 @@ TEST_F(PrecacheFetcherTest, TopResourcesCount) {
|
| base::HistogramTester histogram;
|
|
|
| {
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(),
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| // Destroy the PrecacheFetcher after it has finished, to record metrics.
|
| }
|
| @@ -990,12 +1023,13 @@ TEST_F(PrecacheFetcherTest, MaxBytesTotal) {
|
| base::HistogramTester histogram;
|
|
|
| {
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(),
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| // We don't know which will make it and which won't due to the parallelism in
|
| @@ -1052,15 +1086,16 @@ TEST_F(PrecacheFetcherTest, FetcherPoolMaxLimitReached) {
|
| base::HistogramTester histogram;
|
|
|
| {
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(),
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| EXPECT_GT(kNumResources, precache_fetcher.pool_.max_size());
|
| CheckUntilParallelFetchesBeyondCapacity(&precache_fetcher);
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
|
|
| // Destroy the PrecacheFetcher after it has finished, to record metrics.
|
| }
|
| @@ -1093,12 +1128,13 @@ TEST_F(PrecacheFetcherTest, FilterInvalidManifestUrls) {
|
| base::HistogramTester histogram;
|
|
|
| {
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(),
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| // The config is fetched, but not the invalid manifest URL.
|
| @@ -1132,12 +1168,13 @@ TEST_F(PrecacheFetcherTest, FilterInvalidResourceUrls) {
|
| base::HistogramTester histogram;
|
|
|
| {
|
| - PrecacheFetcher precache_fetcher(request_context_.get(), GURL(),
|
| - std::string(), std::move(unfinished_work),
|
| - kExperimentID, &precache_delegate_);
|
| + PrecacheFetcher precache_fetcher(
|
| + request_context_.get(), GURL(), std::string(),
|
| + std::move(unfinished_work), kExperimentID,
|
| + precache_database_.GetWeakPtr(), task_runner(), &precache_delegate_);
|
| precache_fetcher.Start();
|
|
|
| - loop_.RunUntilIdle();
|
| + base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| // The config and manifest are fetched, but not the invalid resource URL.
|
|
|