Commit f00e33e2 authored by Tao Bai's avatar Tao Bai Committed by Commit Bot

PageLoadMetrics: Add test harness in component

This patch added PageLoadMetricsObserverContentTestHarness in component,
so chrome's observer unittests can be easily move to components. The
main changes are
- Moved PageLoadMetricsObserverTester to components
- Moved PageLoadMetricsTestContentBrowserClient to separated files for sharing.
- Moved use_counter_page_load_metrics_observer.cc to components to
  verify PageLoadMetricsObserverContentTestHarness working.
- The other observers changes are renaming.

Bug: 995880
Change-Id: I4f64d8c8941c586d5b44791911ddbc0606b6061c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1838474Reviewed-by: default avatarCharlie Harrison <csharrison@chromium.org>
Reviewed-by: default avatarBryan McQuade <bmcquade@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Tao Bai <michaelbai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#704690}
parent e9e025c0
...@@ -22,13 +22,13 @@ ...@@ -22,13 +22,13 @@
#include "base/time/time.h" #include "base/time/time.h"
#include "chrome/browser/heavy_ad_intervention/heavy_ad_blocklist.h" #include "chrome/browser/heavy_ad_intervention/heavy_ad_blocklist.h"
#include "chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.h" #include "chrome/browser/page_load_metrics/observers/ad_metrics/frame_data.h"
#include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.h"
#include "chrome/browser/subresource_filter/subresource_filter_test_harness.h" #include "chrome/browser/subresource_filter/subresource_filter_test_harness.h"
#include "chrome/common/chrome_features.h" #include "chrome/common/chrome_features.h"
#include "components/blacklist/opt_out_blacklist/opt_out_blacklist_data.h" #include "components/blacklist/opt_out_blacklist/opt_out_blacklist_data.h"
#include "components/blacklist/opt_out_blacklist/opt_out_blacklist_delegate.h" #include "components/blacklist/opt_out_blacklist/opt_out_blacklist_delegate.h"
#include "components/blacklist/opt_out_blacklist/opt_out_store.h" #include "components/blacklist/opt_out_blacklist/opt_out_store.h"
#include "components/page_load_metrics/browser/metrics_web_contents_observer.h" #include "components/page_load_metrics/browser/metrics_web_contents_observer.h"
#include "components/page_load_metrics/browser/observers/page_load_metrics_observer_tester.h"
#include "components/page_load_metrics/browser/page_load_metrics_observer.h" #include "components/page_load_metrics/browser/page_load_metrics_observer.h"
#include "components/page_load_metrics/browser/page_load_tracker.h" #include "components/page_load_metrics/browser/page_load_tracker.h"
#include "components/page_load_metrics/common/test/page_load_metrics_test_util.h" #include "components/page_load_metrics/common/test/page_load_metrics_test_util.h"
......
...@@ -200,7 +200,8 @@ TEST_F(AndroidPageLoadMetricsObserverTest, LoadTimingInfo) { ...@@ -200,7 +200,8 @@ TEST_F(AndroidPageLoadMetricsObserverTest, LoadTimingInfo) {
nullptr nullptr
/* data_reduction_proxy_data */, /* data_reduction_proxy_data */,
content::ResourceType::kMainFrame, 0, std::move(load_timing_info)); content::ResourceType::kMainFrame, 0, std::move(load_timing_info));
SimulateLoadedResource(info, navigation_simulator->GetGlobalRequestID()); tester()->SimulateLoadedResource(info,
navigation_simulator->GetGlobalRequestID());
EXPECT_EQ(kNow.since_origin().InMilliseconds(), EXPECT_EQ(kNow.since_origin().InMilliseconds(),
observer()->reported_dns_start_ms()); observer()->reported_dns_start_ms());
} }
...@@ -218,7 +219,7 @@ TEST_F(AndroidPageLoadMetricsObserverTest, LoadEvents) { ...@@ -218,7 +219,7 @@ TEST_F(AndroidPageLoadMetricsObserverTest, LoadEvents) {
base::TimeDelta::FromMilliseconds(20); base::TimeDelta::FromMilliseconds(20);
PopulateRequiredTimingFields(&timing); PopulateRequiredTimingFields(&timing);
NavigateAndCommit(GURL("https://www.example.com")); NavigateAndCommit(GURL("https://www.example.com"));
SimulateTimingUpdate(timing); tester()->SimulateTimingUpdate(timing);
EXPECT_EQ(30, observer()->reported_load_event_start_ms()); EXPECT_EQ(30, observer()->reported_load_event_start_ms());
EXPECT_EQ(GetNavigationStartMicroseconds(), EXPECT_EQ(GetNavigationStartMicroseconds(),
observer()->reported_navigation_start_tick_load()); observer()->reported_navigation_start_tick_load());
......
...@@ -105,7 +105,8 @@ class DataReductionProxyMetricsObserverBaseTest ...@@ -105,7 +105,8 @@ class DataReductionProxyMetricsObserverBaseTest
uint64_t want_original_bytes, uint64_t want_original_bytes,
uint64_t want_uuid) { uint64_t want_uuid) {
using UkmEntry = ukm::builders::DataReductionProxy; using UkmEntry = ukm::builders::DataReductionProxy;
auto entries = test_ukm_recorder().GetEntriesByName(UkmEntry::kEntryName); auto entries =
tester()->test_ukm_recorder().GetEntriesByName(UkmEntry::kEntryName);
if (!want_ukm) { if (!want_ukm) {
EXPECT_EQ(0u, entries.size()); EXPECT_EQ(0u, entries.size());
...@@ -114,12 +115,13 @@ class DataReductionProxyMetricsObserverBaseTest ...@@ -114,12 +115,13 @@ class DataReductionProxyMetricsObserverBaseTest
EXPECT_EQ(1u, entries.size()); EXPECT_EQ(1u, entries.size());
for (const auto* const entry : entries) { for (const auto* const entry : entries) {
test_ukm_recorder().ExpectEntrySourceHasUrl(entry, GURL(kDefaultTestUrl)); tester()->test_ukm_recorder().ExpectEntrySourceHasUrl(
entry, GURL(kDefaultTestUrl));
test_ukm_recorder().ExpectEntryMetric( tester()->test_ukm_recorder().ExpectEntryMetric(
entry, UkmEntry::kEstimatedOriginalNetworkBytesName, entry, UkmEntry::kEstimatedOriginalNetworkBytesName,
want_original_bytes); want_original_bytes);
test_ukm_recorder().ExpectEntryMetric( tester()->test_ukm_recorder().ExpectEntryMetric(
entry, UkmEntry::kDataSaverPageUUIDName, want_uuid); entry, UkmEntry::kDataSaverPageUUIDName, want_uuid);
} }
} }
...@@ -163,9 +165,9 @@ TEST_F(DataReductionProxyMetricsObserverBaseTest, ...@@ -163,9 +165,9 @@ TEST_F(DataReductionProxyMetricsObserverBaseTest,
false /* was_cached */, 2 * 1024 /* delta_bytes */, false /* was_cached */, 2 * 1024 /* delta_bytes */,
true /* is_complete */, true /* proxy_used*/, 5 /* compression_ratio */)); true /* is_complete */, true /* proxy_used*/, 5 /* compression_ratio */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
// Use https://play.golang.org/p/XnMDcTiPzt8 to generate an updated uuid. // Use https://play.golang.org/p/XnMDcTiPzt8 to generate an updated uuid.
ValidateUKM(true, 9918U, 5261012271403106530); ValidateUKM(true, 9918U, 5261012271403106530);
} }
...@@ -185,9 +187,9 @@ TEST_F(DataReductionProxyMetricsObserverBaseTest, ...@@ -185,9 +187,9 @@ TEST_F(DataReductionProxyMetricsObserverBaseTest,
false /* was_cached */, 2 * 1024 /* delta_bytes */, false /* was_cached */, 2 * 1024 /* delta_bytes */,
true /* is_complete */, true /* proxy_used*/, 5 /* compression_ratio */)); true /* is_complete */, true /* proxy_used*/, 5 /* compression_ratio */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
// Use https://play.golang.org/p/XnMDcTiPzt8 to generate an updated uuid. // Use https://play.golang.org/p/XnMDcTiPzt8 to generate an updated uuid.
ValidateUKM(true, 9918U, 7538012597823726222); ValidateUKM(true, 9918U, 7538012597823726222);
} }
......
...@@ -83,7 +83,7 @@ void DataReductionProxyMetricsObserverTestBase::RunTest( ...@@ -83,7 +83,7 @@ void DataReductionProxyMetricsObserverTestBase::RunTest(
opt_out_expected_ = opt_out_expected; opt_out_expected_ = opt_out_expected;
black_listed_ = black_listed; black_listed_ = black_listed;
NavigateAndCommit(GURL(kDefaultTestUrl)); NavigateAndCommit(GURL(kDefaultTestUrl));
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
} }
void DataReductionProxyMetricsObserverTestBase:: void DataReductionProxyMetricsObserverTestBase::
...@@ -92,7 +92,7 @@ void DataReductionProxyMetricsObserverTestBase:: ...@@ -92,7 +92,7 @@ void DataReductionProxyMetricsObserverTestBase::
bool opt_out_expected) { bool opt_out_expected) {
RunTest(data_reduction_proxy_used, is_using_lite_page, opt_out_expected, RunTest(data_reduction_proxy_used, is_using_lite_page, opt_out_expected,
false); false);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
} }
void DataReductionProxyMetricsObserverTestBase::RunLitePageRedirectTest( void DataReductionProxyMetricsObserverTestBase::RunLitePageRedirectTest(
...@@ -101,7 +101,7 @@ void DataReductionProxyMetricsObserverTestBase::RunLitePageRedirectTest( ...@@ -101,7 +101,7 @@ void DataReductionProxyMetricsObserverTestBase::RunLitePageRedirectTest(
preview_info_ = preview_info; preview_info_ = preview_info;
ect_ = ect; ect_ = ect;
NavigateAndCommit(GURL(kDefaultTestUrl)); NavigateAndCommit(GURL(kDefaultTestUrl));
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
} }
// Verify that, if expected and actual are set, their values are equal. // Verify that, if expected and actual are set, their values are equal.
......
...@@ -108,18 +108,18 @@ class DataReductionProxyMetricsObserverTest ...@@ -108,18 +108,18 @@ class DataReductionProxyMetricsObserverTest
void ValidateHistogramsForSuffix( void ValidateHistogramsForSuffix(
const std::string& histogram_suffix, const std::string& histogram_suffix,
const base::Optional<base::TimeDelta>& event) { const base::Optional<base::TimeDelta>& event) {
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(histogram_suffix), .append(histogram_suffix),
data_reduction_proxy_used() || cached_data_reduction_proxy_used() ? 1 data_reduction_proxy_used() || cached_data_reduction_proxy_used() ? 1
: 0); : 0);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
std::string(internal::kHistogramDataReductionProxyLitePagePrefix) std::string(internal::kHistogramDataReductionProxyLitePagePrefix)
.append(histogram_suffix), .append(histogram_suffix),
is_using_lite_page() ? 1 : 0); is_using_lite_page() ? 1 : 0);
if (!(data_reduction_proxy_used() || cached_data_reduction_proxy_used())) if (!(data_reduction_proxy_used() || cached_data_reduction_proxy_used()))
return; return;
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(histogram_suffix), .append(histogram_suffix),
static_cast<base::HistogramBase::Sample>( static_cast<base::HistogramBase::Sample>(
...@@ -127,7 +127,7 @@ class DataReductionProxyMetricsObserverTest ...@@ -127,7 +127,7 @@ class DataReductionProxyMetricsObserverTest
1); 1);
if (!is_using_lite_page()) if (!is_using_lite_page())
return; return;
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyLitePagePrefix) std::string(internal::kHistogramDataReductionProxyLitePagePrefix)
.append(histogram_suffix), .append(histogram_suffix),
event.value().InMilliseconds(), is_using_lite_page() ? 1 : 0); event.value().InMilliseconds(), is_using_lite_page() ? 1 : 0);
...@@ -138,67 +138,67 @@ class DataReductionProxyMetricsObserverTest ...@@ -138,67 +138,67 @@ class DataReductionProxyMetricsObserverTest
int64_t network_bytes, int64_t network_bytes,
int64_t drp_bytes, int64_t drp_bytes,
int64_t ocl_bytes) { int64_t ocl_bytes) {
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kResourcesPercentProxied), .append(internal::kResourcesPercentProxied),
100 * drp_resources / network_resources, 1); 100 * drp_resources / network_resources, 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kBytesPercentProxied), .append(internal::kBytesPercentProxied),
static_cast<int>(100 * drp_bytes / network_bytes), 1); static_cast<int>(100 * drp_bytes / network_bytes), 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kNetworkResources), .append(internal::kNetworkResources),
network_resources, 1); network_resources, 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kResourcesProxied), .append(internal::kResourcesProxied),
drp_resources, 1); drp_resources, 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kResourcesNotProxied), .append(internal::kResourcesNotProxied),
network_resources - drp_resources, 1); network_resources - drp_resources, 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kNetworkBytes), .append(internal::kNetworkBytes),
static_cast<int>(network_bytes / 1024), 1); static_cast<int>(network_bytes / 1024), 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kBytesProxied), .append(internal::kBytesProxied),
static_cast<int>(drp_bytes / 1024), 1); static_cast<int>(drp_bytes / 1024), 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kBytesNotProxied), .append(internal::kBytesNotProxied),
static_cast<int>((network_bytes - drp_bytes) / 1024), 1); static_cast<int>((network_bytes - drp_bytes) / 1024), 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kBytesOriginal), .append(internal::kBytesOriginal),
static_cast<int>(ocl_bytes / 1024), 1); static_cast<int>(ocl_bytes / 1024), 1);
if (ocl_bytes < network_bytes) { if (ocl_bytes < network_bytes) {
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kBytesInflationPercent), .append(internal::kBytesInflationPercent),
static_cast<int>(100 * network_bytes / ocl_bytes - 100), 1); static_cast<int>(100 * network_bytes / ocl_bytes - 100), 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kBytesInflation), .append(internal::kBytesInflation),
static_cast<int>((network_bytes - ocl_bytes) / 1024), 1); static_cast<int>((network_bytes - ocl_bytes) / 1024), 1);
} else { } else {
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kBytesCompressionRatio), .append(internal::kBytesCompressionRatio),
static_cast<int>(100 * network_bytes / ocl_bytes), 1); static_cast<int>(100 * network_bytes / ocl_bytes), 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
std::string(internal::kHistogramDataReductionProxyPrefix) std::string(internal::kHistogramDataReductionProxyPrefix)
.append(internal::kBytesSavings), .append(internal::kBytesSavings),
static_cast<int>((ocl_bytes - network_bytes) / 1024), 1); static_cast<int>((ocl_bytes - network_bytes) / 1024), 1);
...@@ -266,7 +266,7 @@ TEST_F(DataReductionProxyMetricsObserverTest, ByteInformationCompression) { ...@@ -266,7 +266,7 @@ TEST_F(DataReductionProxyMetricsObserverTest, ByteInformationCompression) {
false /* is_complete */, true /* proxy_used*/, false /* is_complete */, true /* proxy_used*/,
0.5 /* compression_ratio */)); 0.5 /* compression_ratio */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
int network_resources = 0; int network_resources = 0;
int drp_resources = 0; int drp_resources = 0;
...@@ -300,7 +300,7 @@ TEST_F(DataReductionProxyMetricsObserverTest, ByteInformationCompression) { ...@@ -300,7 +300,7 @@ TEST_F(DataReductionProxyMetricsObserverTest, ByteInformationCompression) {
++drp_resources; ++drp_resources;
} }
} }
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
ValidateDataHistograms(network_resources, drp_resources, ValidateDataHistograms(network_resources, drp_resources,
insecure_network_bytes + secure_network_bytes, insecure_network_bytes + secure_network_bytes,
...@@ -331,7 +331,7 @@ TEST_F(DataReductionProxyMetricsObserverTest, ByteInformationInflation) { ...@@ -331,7 +331,7 @@ TEST_F(DataReductionProxyMetricsObserverTest, ByteInformationInflation) {
false /* is_complete */, true /* proxy_used*/, false /* is_complete */, true /* proxy_used*/,
10 /* compression_ratio */)); 10 /* compression_ratio */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
int network_resources = 0; int network_resources = 0;
int drp_resources = 0; int drp_resources = 0;
...@@ -369,7 +369,7 @@ TEST_F(DataReductionProxyMetricsObserverTest, ByteInformationInflation) { ...@@ -369,7 +369,7 @@ TEST_F(DataReductionProxyMetricsObserverTest, ByteInformationInflation) {
++drp_resources; ++drp_resources;
} }
} }
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
ValidateDataHistograms(network_resources, drp_resources, ValidateDataHistograms(network_resources, drp_resources,
insecure_network_bytes + secure_network_bytes, insecure_network_bytes + secure_network_bytes,
......
...@@ -22,14 +22,14 @@ class DocumentWritePageLoadMetricsObserverTest ...@@ -22,14 +22,14 @@ class DocumentWritePageLoadMetricsObserverTest
} }
void AssertNoBlockHistogramsLogged() { void AssertNoBlockHistogramsLogged() {
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0); internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0);
} }
}; };
TEST_F(DocumentWritePageLoadMetricsObserverTest, NoMetrics) { TEST_F(DocumentWritePageLoadMetricsObserverTest, NoMetrics) {
AssertNoBlockHistogramsLogged(); AssertNoBlockHistogramsLogged();
EXPECT_EQ(0ul, test_ukm_recorder().entries_count()); EXPECT_EQ(0ul, tester()->test_ukm_recorder().entries_count());
} }
TEST_F(DocumentWritePageLoadMetricsObserverTest, PossibleBlock) { TEST_F(DocumentWritePageLoadMetricsObserverTest, PossibleBlock) {
...@@ -56,28 +56,28 @@ TEST_F(DocumentWritePageLoadMetricsObserverTest, PossibleBlock) { ...@@ -56,28 +56,28 @@ TEST_F(DocumentWritePageLoadMetricsObserverTest, PossibleBlock) {
metadata.behavior_flags |= metadata.behavior_flags |=
blink::WebLoadingBehaviorFlag::kWebLoadingBehaviorDocumentWriteBlock; blink::WebLoadingBehaviorFlag::kWebLoadingBehaviorDocumentWriteBlock;
NavigateAndCommit(GURL("https://www.google.com/")); NavigateAndCommit(GURL("https://www.google.com/"));
SimulateTimingAndMetadataUpdate(timing, metadata); tester()->SimulateTimingAndMetadataUpdate(timing, metadata);
histogram_tester().ExpectTotalCount(internal::kHistogramDocWriteBlockCount, tester()->histogram_tester().ExpectTotalCount(
1); internal::kHistogramDocWriteBlockCount, 1);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 1); internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 1);
histogram_tester().ExpectBucketCount( tester()->histogram_tester().ExpectBucketCount(
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint,
contentful_paint.InMilliseconds(), 1); contentful_paint.InMilliseconds(), 1);
using Entry = ukm::builders::Intervention_DocumentWrite_ScriptBlock; using Entry = ukm::builders::Intervention_DocumentWrite_ScriptBlock;
std::map<ukm::SourceId, ukm::mojom::UkmEntryPtr> entries = std::map<ukm::SourceId, ukm::mojom::UkmEntryPtr> entries =
test_ukm_recorder().GetMergedEntriesByName(Entry::kEntryName); tester()->test_ukm_recorder().GetMergedEntriesByName(Entry::kEntryName);
EXPECT_EQ(1u, entries.size()); EXPECT_EQ(1u, entries.size());
for (const auto& kv : entries) { for (const auto& kv : entries) {
test_ukm_recorder().ExpectEntrySourceHasUrl( tester()->test_ukm_recorder().ExpectEntrySourceHasUrl(
kv.second.get(), GURL("https://www.google.com/")); kv.second.get(), GURL("https://www.google.com/"));
test_ukm_recorder().ExpectEntryMetric( tester()->test_ukm_recorder().ExpectEntryMetric(
kv.second.get(), kv.second.get(),
Entry::kParseTiming_ParseBlockedOnScriptLoadFromDocumentWriteName, 5); Entry::kParseTiming_ParseBlockedOnScriptLoadFromDocumentWriteName, 5);
test_ukm_recorder().ExpectEntryMetric( tester()->test_ukm_recorder().ExpectEntryMetric(
kv.second.get(), kv.second.get(),
Entry::kParseTiming_ParseBlockedOnScriptExecutionFromDocumentWriteName, Entry::kParseTiming_ParseBlockedOnScriptExecutionFromDocumentWriteName,
3); 3);
...@@ -85,9 +85,9 @@ TEST_F(DocumentWritePageLoadMetricsObserverTest, PossibleBlock) { ...@@ -85,9 +85,9 @@ TEST_F(DocumentWritePageLoadMetricsObserverTest, PossibleBlock) {
NavigateAndCommit(GURL("https://www.example.com/")); NavigateAndCommit(GURL("https://www.example.com/"));
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 1); internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 1);
histogram_tester().ExpectBucketCount( tester()->histogram_tester().ExpectBucketCount(
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint,
contentful_paint.InMilliseconds(), 1); contentful_paint.InMilliseconds(), 1);
} }
...@@ -105,49 +105,51 @@ TEST_F(DocumentWritePageLoadMetricsObserverTest, PossibleBlockReload) { ...@@ -105,49 +105,51 @@ TEST_F(DocumentWritePageLoadMetricsObserverTest, PossibleBlockReload) {
metadata.behavior_flags |= blink::WebLoadingBehaviorFlag:: metadata.behavior_flags |= blink::WebLoadingBehaviorFlag::
kWebLoadingBehaviorDocumentWriteBlockReload; kWebLoadingBehaviorDocumentWriteBlockReload;
NavigateAndCommit(GURL("https://www.google.com/")); NavigateAndCommit(GURL("https://www.google.com/"));
SimulateTimingAndMetadataUpdate(timing, metadata); tester()->SimulateTimingAndMetadataUpdate(timing, metadata);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
internal::kHistogramDocWriteBlockReloadCount, 1); internal::kHistogramDocWriteBlockReloadCount, 1);
using Entry = ukm::builders::Intervention_DocumentWrite_ScriptBlock; using Entry = ukm::builders::Intervention_DocumentWrite_ScriptBlock;
auto entries = test_ukm_recorder().GetEntriesByName(Entry::kEntryName); auto entries =
tester()->test_ukm_recorder().GetEntriesByName(Entry::kEntryName);
EXPECT_EQ(1u, entries.size()); EXPECT_EQ(1u, entries.size());
const ukm::mojom::UkmEntry* entry1 = nullptr; const ukm::mojom::UkmEntry* entry1 = nullptr;
for (const auto* const entry : entries) { for (const auto* const entry : entries) {
test_ukm_recorder().ExpectEntrySourceHasUrl( tester()->test_ukm_recorder().ExpectEntrySourceHasUrl(
entry, GURL("https://www.google.com/")); entry, GURL("https://www.google.com/"));
test_ukm_recorder().ExpectEntryMetric(entry, Entry::kDisabled_ReloadName, tester()->test_ukm_recorder().ExpectEntryMetric(
true); entry, Entry::kDisabled_ReloadName, true);
entry1 = entry; entry1 = entry;
} }
// Another reload. // Another reload.
NavigateAndCommit(GURL("https://www.example.com/")); NavigateAndCommit(GURL("https://www.example.com/"));
SimulateTimingAndMetadataUpdate(timing, metadata); tester()->SimulateTimingAndMetadataUpdate(timing, metadata);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
internal::kHistogramDocWriteBlockReloadCount, 2); internal::kHistogramDocWriteBlockReloadCount, 2);
auto entries2 = test_ukm_recorder().GetEntriesByName(Entry::kEntryName); auto entries2 =
tester()->test_ukm_recorder().GetEntriesByName(Entry::kEntryName);
EXPECT_EQ(2u, entries2.size()); EXPECT_EQ(2u, entries2.size());
for (const auto* const entry : entries2) { for (const auto* const entry : entries2) {
if (entry != entry1) if (entry != entry1)
test_ukm_recorder().ExpectEntrySourceHasUrl( tester()->test_ukm_recorder().ExpectEntrySourceHasUrl(
entry, GURL("https://www.example.com/")); entry, GURL("https://www.example.com/"));
test_ukm_recorder().ExpectEntryMetric(entry, Entry::kDisabled_ReloadName, tester()->test_ukm_recorder().ExpectEntryMetric(
true); entry, Entry::kDisabled_ReloadName, true);
} }
// Another metadata update should not increase reload count. // Another metadata update should not increase reload count.
metadata.behavior_flags |= metadata.behavior_flags |=
blink::WebLoadingBehaviorFlag::kWebLoadingBehaviorServiceWorkerControlled; blink::WebLoadingBehaviorFlag::kWebLoadingBehaviorServiceWorkerControlled;
SimulateTimingAndMetadataUpdate(timing, metadata); tester()->SimulateTimingAndMetadataUpdate(timing, metadata);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
internal::kHistogramDocWriteBlockReloadCount, 2); internal::kHistogramDocWriteBlockReloadCount, 2);
histogram_tester().ExpectTotalCount(internal::kHistogramDocWriteBlockCount, tester()->histogram_tester().ExpectTotalCount(
0); internal::kHistogramDocWriteBlockCount, 0);
} }
TEST_F(DocumentWritePageLoadMetricsObserverTest, NoPossibleBlock) { TEST_F(DocumentWritePageLoadMetricsObserverTest, NoPossibleBlock) {
...@@ -160,7 +162,7 @@ TEST_F(DocumentWritePageLoadMetricsObserverTest, NoPossibleBlock) { ...@@ -160,7 +162,7 @@ TEST_F(DocumentWritePageLoadMetricsObserverTest, NoPossibleBlock) {
page_load_metrics::mojom::PageLoadMetadata metadata; page_load_metrics::mojom::PageLoadMetadata metadata;
NavigateAndCommit(GURL("https://www.google.com/")); NavigateAndCommit(GURL("https://www.google.com/"));
SimulateTimingAndMetadataUpdate(timing, metadata); tester()->SimulateTimingAndMetadataUpdate(timing, metadata);
NavigateAndCommit(GURL("https://www.example.com/")); NavigateAndCommit(GURL("https://www.example.com/"));
AssertNoBlockHistogramsLogged(); AssertNoBlockHistogramsLogged();
......
...@@ -70,7 +70,7 @@ class LiveTabCountPageLoadMetricsObserverTest ...@@ -70,7 +70,7 @@ class LiveTabCountPageLoadMetricsObserverTest
web_contents()->WasShown(); web_contents()->WasShown();
} }
SimulateTimingUpdate(timing); tester()->SimulateTimingUpdate(timing);
} }
protected: protected:
...@@ -86,7 +86,7 @@ class LiveTabCountPageLoadMetricsObserverTest ...@@ -86,7 +86,7 @@ class LiveTabCountPageLoadMetricsObserverTest
std::string(internal::kHistogramPrefixLiveTabCount) + std::string(internal::kHistogramPrefixLiveTabCount) +
std::string(page_load_histogram_suffix); std::string(page_load_histogram_suffix);
for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) { for (size_t bucket = 0; bucket < expected_counts.size(); bucket++) {
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
tab_count_metrics::HistogramName(histogram_prefix, tab_count_metrics::HistogramName(histogram_prefix,
/* live_tabs_only = */ true, bucket), /* live_tabs_only = */ true, bucket),
expected_counts[bucket]); expected_counts[bucket]);
......
...@@ -69,12 +69,12 @@ class LoadingPredictorPageLoadMetricsObserverTest ...@@ -69,12 +69,12 @@ class LoadingPredictorPageLoadMetricsObserverTest
.WillOnce(testing::Return(is_preconnectable)); .WillOnce(testing::Return(is_preconnectable));
NavigateAndCommit(main_frame_url); NavigateAndCommit(main_frame_url);
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
internal::kHistogramLoadingPredictorFirstContentfulPaintPreconnectable, internal::kHistogramLoadingPredictorFirstContentfulPaintPreconnectable,
is_preconnectable ? 1 : 0); is_preconnectable ? 1 : 0);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
internal::kHistogramLoadingPredictorFirstMeaningfulPaintPreconnectable, internal::kHistogramLoadingPredictorFirstMeaningfulPaintPreconnectable,
is_preconnectable ? 1 : 0); is_preconnectable ? 1 : 0);
} }
......
...@@ -101,15 +101,16 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest ...@@ -101,15 +101,16 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest
void SimulateLoadedSuccessfulResource( void SimulateLoadedSuccessfulResource(
const internal::PageAddressInfo& resource) { const internal::PageAddressInfo& resource) {
SimulateLoadedResource(resource, 0); SimulateLoadedResourceWithNetError(resource, 0);
} }
void SimulateLoadedFailedResource(const internal::PageAddressInfo& resource) { void SimulateLoadedFailedResource(const internal::PageAddressInfo& resource) {
SimulateLoadedResource(resource, net::ERR_CONNECTION_REFUSED); SimulateLoadedResourceWithNetError(resource, net::ERR_CONNECTION_REFUSED);
} }
void SimulateLoadedResource(const internal::PageAddressInfo& resource, void SimulateLoadedResourceWithNetError(
const int net_error) { const internal::PageAddressInfo& resource,
const int net_error) {
net::IPAddress address; net::IPAddress address;
ASSERT_TRUE(address.AssignFromIPLiteral(resource.host_ip)); ASSERT_TRUE(address.AssignFromIPLiteral(resource.host_ip));
page_load_metrics::ExtraRequestCompleteInfo request_info( page_load_metrics::ExtraRequestCompleteInfo request_info(
...@@ -121,7 +122,7 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest ...@@ -121,7 +122,7 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest
content::ResourceType::kMainFrame, net_error, content::ResourceType::kMainFrame, net_error,
{} /* load_timing_info */); {} /* load_timing_info */);
PageLoadMetricsObserverTestHarness::SimulateLoadedResource( tester()->SimulateLoadedResource(
request_info, navigation_simulator_->GetGlobalRequestID()); request_info, navigation_simulator_->GetGlobalRequestID());
} }
...@@ -151,13 +152,15 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest ...@@ -151,13 +152,15 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest
for (const auto& port : for (const auto& port :
internal::GetLocalhostHistogramNames().at(domain_type)) { internal::GetLocalhostHistogramNames().at(domain_type)) {
for (const auto& histogramName : port.second) { for (const auto& histogramName : port.second) {
histogram_tester().ExpectUniqueSample(histogramName.second, 0, 1); tester()->histogram_tester().ExpectUniqueSample(histogramName.second, 0,
1);
} }
} }
for (const auto& resource : for (const auto& resource :
internal::GetNonlocalhostHistogramNames().at(domain_type)) { internal::GetNonlocalhostHistogramNames().at(domain_type)) {
for (const auto& histogramName : resource.second) { for (const auto& histogramName : resource.second) {
histogram_tester().ExpectUniqueSample(histogramName.second, 0, 1); tester()->histogram_tester().ExpectUniqueSample(histogramName.second, 0,
1);
} }
} }
} }
...@@ -166,14 +169,14 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest ...@@ -166,14 +169,14 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest
for (const auto& domain : internal::GetLocalhostHistogramNames()) { for (const auto& domain : internal::GetLocalhostHistogramNames()) {
for (const auto& port : domain.second) { for (const auto& port : domain.second) {
for (const auto& status : port.second) { for (const auto& status : port.second) {
histogram_tester().ExpectTotalCount(status.second, 0); tester()->histogram_tester().ExpectTotalCount(status.second, 0);
} }
} }
} }
for (const auto& domain : internal::GetNonlocalhostHistogramNames()) { for (const auto& domain : internal::GetNonlocalhostHistogramNames()) {
for (const auto& resource : domain.second) { for (const auto& resource : domain.second) {
for (const auto& status : resource.second) { for (const auto& status : resource.second) {
histogram_tester().ExpectTotalCount(status.second, 0); tester()->histogram_tester().ExpectTotalCount(status.second, 0);
} }
} }
} }
...@@ -181,12 +184,13 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest ...@@ -181,12 +184,13 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest
void ExpectUkmPageDomainMetric(const internal::PageAddressInfo& page, void ExpectUkmPageDomainMetric(const internal::PageAddressInfo& page,
const internal::DomainType domain_type) { const internal::DomainType domain_type) {
auto entries = test_ukm_recorder().GetEntriesByName( auto entries = tester()->test_ukm_recorder().GetEntriesByName(
ukm::builders::PageDomainInfo::kEntryName); ukm::builders::PageDomainInfo::kEntryName);
EXPECT_EQ(1u, entries.size()); EXPECT_EQ(1u, entries.size());
for (const auto* const entry : entries) { for (const auto* const entry : entries) {
test_ukm_recorder().ExpectEntrySourceHasUrl(entry, GURL(page.url)); tester()->test_ukm_recorder().ExpectEntrySourceHasUrl(entry,
test_ukm_recorder().ExpectEntryMetric( GURL(page.url));
tester()->test_ukm_recorder().ExpectEntryMetric(
entry, ukm::builders::PageDomainInfo::kDomainTypeName, entry, ukm::builders::PageDomainInfo::kDomainTypeName,
static_cast<int>(domain_type)); static_cast<int>(domain_type));
} }
...@@ -197,23 +201,24 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest ...@@ -197,23 +201,24 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest
const std::vector<internal::UkmMetricInfo>& expected_metrics, const std::vector<internal::UkmMetricInfo>& expected_metrics,
const std::map<std::string, int>& expected_histograms) { const std::map<std::string, int>& expected_histograms) {
using LocalNetworkRequests = ukm::builders::LocalNetworkRequests; using LocalNetworkRequests = ukm::builders::LocalNetworkRequests;
auto entries = auto entries = tester()->test_ukm_recorder().GetEntriesByName(
test_ukm_recorder().GetEntriesByName(LocalNetworkRequests::kEntryName); LocalNetworkRequests::kEntryName);
ASSERT_EQ(entries.size(), expected_metrics.size()); ASSERT_EQ(entries.size(), expected_metrics.size());
for (size_t i = 0; i < entries.size() && i < expected_metrics.size(); i++) { for (size_t i = 0; i < entries.size() && i < expected_metrics.size(); i++) {
test_ukm_recorder().ExpectEntrySourceHasUrl(entries[i], GURL(page.url)); tester()->test_ukm_recorder().ExpectEntrySourceHasUrl(entries[i],
test_ukm_recorder().ExpectEntryMetric( GURL(page.url));
tester()->test_ukm_recorder().ExpectEntryMetric(
entries[i], LocalNetworkRequests::kResourceTypeName, entries[i], LocalNetworkRequests::kResourceTypeName,
expected_metrics[i].resource_type); expected_metrics[i].resource_type);
test_ukm_recorder().ExpectEntryMetric( tester()->test_ukm_recorder().ExpectEntryMetric(
entries[i], LocalNetworkRequests::kCount_SuccessfulName, entries[i], LocalNetworkRequests::kCount_SuccessfulName,
expected_metrics[i].success_count); expected_metrics[i].success_count);
test_ukm_recorder().ExpectEntryMetric( tester()->test_ukm_recorder().ExpectEntryMetric(
entries[i], LocalNetworkRequests::kCount_FailedName, entries[i], LocalNetworkRequests::kCount_FailedName,
expected_metrics[i].failed_count); expected_metrics[i].failed_count);
if (expected_metrics[i].resource_type == if (expected_metrics[i].resource_type ==
internal::RESOURCE_TYPE_LOCALHOST) { internal::RESOURCE_TYPE_LOCALHOST) {
test_ukm_recorder().ExpectEntryMetric( tester()->test_ukm_recorder().ExpectEntryMetric(
entries[i], LocalNetworkRequests::kPortTypeName, entries[i], LocalNetworkRequests::kPortTypeName,
static_cast<int>(expected_metrics[i].port_type)); static_cast<int>(expected_metrics[i].port_type));
} }
...@@ -221,7 +226,8 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest ...@@ -221,7 +226,8 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest
// Should have generated UMA histograms for all requests made. // Should have generated UMA histograms for all requests made.
for (auto hist : expected_histograms) { for (auto hist : expected_histograms) {
histogram_tester().ExpectUniqueSample(hist.first, hist.second, 1); tester()->histogram_tester().ExpectUniqueSample(hist.first, hist.second,
1);
} }
} }
...@@ -230,8 +236,8 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest ...@@ -230,8 +236,8 @@ class LocalNetworkRequestsPageLoadMetricsObserverTest
}; };
TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest, NoMetrics) { TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest, NoMetrics) {
EXPECT_EQ(0ul, test_ukm_recorder().sources_count()); EXPECT_EQ(0ul, tester()->test_ukm_recorder().sources_count());
EXPECT_EQ(0ul, test_ukm_recorder().entries_count()); EXPECT_EQ(0ul, tester()->test_ukm_recorder().entries_count());
// Sanity check // Sanity check
ExpectNoHistograms(); ExpectNoHistograms();
...@@ -717,7 +723,8 @@ TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest, ...@@ -717,7 +723,8 @@ TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest,
}; };
for (auto request : requests) { for (auto request : requests) {
for (int i = 0; i < 100; ++i) { for (int i = 0; i < 100; ++i) {
SimulateLoadedResource(request.first, (request.second ? 0 : -1)); SimulateLoadedResourceWithNetError(request.first,
(request.second ? 0 : -1));
} }
} }
for (int i = 0; i < 1000; ++i) { for (int i = 0; i < 1000; ++i) {
...@@ -727,7 +734,7 @@ TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest, ...@@ -727,7 +734,7 @@ TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest,
// At this point, we should still only see the domain type UKM entry. // At this point, we should still only see the domain type UKM entry.
// Also history manipulation intervention will log a UKM for navigating away // Also history manipulation intervention will log a UKM for navigating away
// from a page without user interaction. // from a page without user interaction.
EXPECT_EQ(2ul, test_ukm_recorder().entries_count()); EXPECT_EQ(2ul, tester()->test_ukm_recorder().entries_count());
// Close the page. // Close the page.
DeleteContents(); DeleteContents();
...@@ -777,7 +784,7 @@ TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest, ...@@ -777,7 +784,7 @@ TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest,
// Load a resource that has the IP address in the URL but returned an empty // Load a resource that has the IP address in the URL but returned an empty
// socket address for some reason. // socket address for some reason.
PageLoadMetricsObserverTestHarness::SimulateLoadedResource( PageLoadMetricsObserverTestHarness::tester()->SimulateLoadedResource(
{GURL(internal::kDiffSubnetRequest2.url), net::IPEndPoint(), {GURL(internal::kDiffSubnetRequest2.url), net::IPEndPoint(),
-1 /* frame_tree_node_id */, true /* was_cached */, -1 /* frame_tree_node_id */, true /* was_cached */,
1024 * 20 /* raw_body_bytes */, 0 /* original_network_content_length */, 1024 * 20 /* raw_body_bytes */, 0 /* original_network_content_length */,
...@@ -804,7 +811,7 @@ TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest, ...@@ -804,7 +811,7 @@ TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest,
// Load a resource that doesn't have the IP address in the URL and returned an // Load a resource that doesn't have the IP address in the URL and returned an
// empty socket address (e.g., failed DNS resolution). // empty socket address (e.g., failed DNS resolution).
PageLoadMetricsObserverTestHarness::SimulateLoadedResource( PageLoadMetricsObserverTestHarness::tester()->SimulateLoadedResource(
{GURL(internal::kPrivatePage.url), net::IPEndPoint(), {GURL(internal::kPrivatePage.url), net::IPEndPoint(),
-1 /* frame_tree_node_id */, false /* was_cached */, -1 /* frame_tree_node_id */, false /* was_cached */,
0 /* raw_body_bytes */, 0 /* original_network_content_length */, 0 /* raw_body_bytes */, 0 /* original_network_content_length */,
...@@ -896,6 +903,6 @@ TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest, PrivatePageFailedLoad) { ...@@ -896,6 +903,6 @@ TEST_F(LocalNetworkRequestsPageLoadMetricsObserverTest, PrivatePageFailedLoad) {
// Nothing should have been generated. // Nothing should have been generated.
// Note that the expected count is 1 because history manipulation intervention // Note that the expected count is 1 because history manipulation intervention
// will log a UKM for navigating away from a page without user interaction. // will log a UKM for navigating away from a page without user interaction.
EXPECT_EQ(1ul, test_ukm_recorder().entries_count()); EXPECT_EQ(1ul, tester()->test_ukm_recorder().entries_count());
ExpectNoHistograms(); ExpectNoHistograms();
} }
...@@ -51,13 +51,13 @@ class MediaPageLoadMetricsObserverTest ...@@ -51,13 +51,13 @@ class MediaPageLoadMetricsObserverTest
NavigateAndCommit(GURL(kDefaultTestUrl)); NavigateAndCommit(GURL(kDefaultTestUrl));
if (simulate_play_media) if (simulate_play_media)
SimulateMediaPlayed(); tester()->SimulateMediaPlayed();
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
auto resources = auto resources =
GetSampleResourceDataUpdateForTesting(10 * 1024 /* resource_size */); GetSampleResourceDataUpdateForTesting(10 * 1024 /* resource_size */);
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
for (const auto& resource : resources) { for (const auto& resource : resources) {
if (resource->is_complete) { if (resource->is_complete) {
if (resource->cache_type == if (resource->cache_type ==
...@@ -70,9 +70,9 @@ class MediaPageLoadMetricsObserverTest ...@@ -70,9 +70,9 @@ class MediaPageLoadMetricsObserverTest
if (simulate_app_background) { if (simulate_app_background) {
// The histograms should be logged when the app is backgrounded. // The histograms should be logged when the app is backgrounded.
SimulateAppEnterBackground(); tester()->SimulateAppEnterBackground();
} else { } else {
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
} }
} }
...@@ -96,13 +96,13 @@ TEST_F(MediaPageLoadMetricsObserverTest, MediaPlayed) { ...@@ -96,13 +96,13 @@ TEST_F(MediaPageLoadMetricsObserverTest, MediaPlayed) {
SimulatePageLoad(true /* simulate_play_media */, SimulatePageLoad(true /* simulate_play_media */,
false /* simulate_app_background */); false /* simulate_app_background */);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Network", "PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Network",
static_cast<int>(network_bytes_ / 1024), 1); static_cast<int>(network_bytes_ / 1024), 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Cache", "PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Cache",
static_cast<int>(cache_bytes_ / 1024), 1); static_cast<int>(cache_bytes_ / 1024), 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Total", "PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Total",
static_cast<int>((network_bytes_ + cache_bytes_) / 1024), 1); static_cast<int>((network_bytes_ + cache_bytes_) / 1024), 1);
} }
...@@ -112,13 +112,13 @@ TEST_F(MediaPageLoadMetricsObserverTest, MediaPlayedAppBackground) { ...@@ -112,13 +112,13 @@ TEST_F(MediaPageLoadMetricsObserverTest, MediaPlayedAppBackground) {
SimulatePageLoad(true /* simulate_play_media */, SimulatePageLoad(true /* simulate_play_media */,
true /* simulate_app_background */); true /* simulate_app_background */);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Network", "PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Network",
static_cast<int>(network_bytes_ / 1024), 1); static_cast<int>(network_bytes_ / 1024), 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Cache", "PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Cache",
static_cast<int>(cache_bytes_ / 1024), 1); static_cast<int>(cache_bytes_ / 1024), 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Total", "PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Total",
static_cast<int>((network_bytes_ + cache_bytes_) / 1024), 1); static_cast<int>((network_bytes_ + cache_bytes_) / 1024), 1);
} }
...@@ -128,10 +128,10 @@ TEST_F(MediaPageLoadMetricsObserverTest, MediaNotPlayed) { ...@@ -128,10 +128,10 @@ TEST_F(MediaPageLoadMetricsObserverTest, MediaNotPlayed) {
SimulatePageLoad(false /* simulate_play_media */, SimulatePageLoad(false /* simulate_play_media */,
false /* simulate_app_background */); false /* simulate_app_background */);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
"PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Network", 0); "PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Network", 0);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
"PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Cache", 0); "PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Cache", 0);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
"PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Total", 0); "PageLoad.Clients.MediaPageLoad.Experimental.Bytes.Total", 0);
} }
...@@ -70,7 +70,7 @@ class MultiTabLoadingPageLoadMetricsObserverTest ...@@ -70,7 +70,7 @@ class MultiTabLoadingPageLoadMetricsObserverTest
web_contents()->WasShown(); web_contents()->WasShown();
} }
SimulateTimingUpdate(timing); tester()->SimulateTimingUpdate(timing);
} }
protected: protected:
...@@ -84,14 +84,14 @@ class MultiTabLoadingPageLoadMetricsObserverTest ...@@ -84,14 +84,14 @@ class MultiTabLoadingPageLoadMetricsObserverTest
base::HistogramBase::Count expected_base, base::HistogramBase::Count expected_base,
base::HistogramBase::Count expected_2_or_more, base::HistogramBase::Count expected_2_or_more,
base::HistogramBase::Count expected_5_or_more) { base::HistogramBase::Count expected_5_or_more) {
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
std::string(internal::kHistogramPrefixMultiTabLoading).append(suffix), std::string(internal::kHistogramPrefixMultiTabLoading).append(suffix),
expected_base); expected_base);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
std::string(internal::kHistogramPrefixMultiTabLoading2OrMore) std::string(internal::kHistogramPrefixMultiTabLoading2OrMore)
.append(suffix), .append(suffix),
expected_2_or_more); expected_2_or_more);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
std::string(internal::kHistogramPrefixMultiTabLoading5OrMore) std::string(internal::kHistogramPrefixMultiTabLoading5OrMore)
.append(suffix), .append(suffix),
expected_5_or_more); expected_5_or_more);
......
...@@ -62,7 +62,7 @@ class OfflinePagePreviewsPageLoadMetricsObserverTest ...@@ -62,7 +62,7 @@ class OfflinePagePreviewsPageLoadMetricsObserverTest
void RunTest(bool is_offline_preview) { void RunTest(bool is_offline_preview) {
is_offline_preview_ = is_offline_preview; is_offline_preview_ = is_offline_preview;
NavigateAndCommit(GURL(kDefaultTestUrl1)); NavigateAndCommit(GURL(kDefaultTestUrl1));
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
// Navigate again to force OnComplete, which happens when a new navigation // Navigate again to force OnComplete, which happens when a new navigation
// occurs. // occurs.
...@@ -96,10 +96,11 @@ class OfflinePagePreviewsPageLoadMetricsObserverTest ...@@ -96,10 +96,11 @@ class OfflinePagePreviewsPageLoadMetricsObserverTest
void ValidateHistogramsFor(const std::string& histogram, void ValidateHistogramsFor(const std::string& histogram,
const base::HistogramBase::Sample sample) { const base::HistogramBase::Sample sample) {
histogram_tester().ExpectTotalCount(histogram, is_offline_preview_ ? 1 : 0); tester()->histogram_tester().ExpectTotalCount(histogram,
is_offline_preview_ ? 1 : 0);
if (!is_offline_preview_) if (!is_offline_preview_)
return; return;
histogram_tester().ExpectUniqueSample(histogram, sample, 1); tester()->histogram_tester().ExpectUniqueSample(histogram, sample, 1);
} }
protected: protected:
......
...@@ -8,15 +8,9 @@ ...@@ -8,15 +8,9 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/bind_helpers.h" #include "base/bind_helpers.h"
#include "chrome/test/base/testing_browser_process.h"
#include "components/ukm/content/source_url_recorder.h" #include "components/ukm/content/source_url_recorder.h"
#include "content/public/browser/global_request_id.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "content/public/common/referrer.h"
#include "content/public/test/web_contents_tester.h"
#include "third_party/blink/public/platform/web_input_event.h"
#include "url/gurl.h" #include "url/gurl.h"
#include "url/url_constants.h"
namespace page_load_metrics { namespace page_load_metrics {
...@@ -40,146 +34,6 @@ void PageLoadMetricsObserverTestHarness::SetUp() { ...@@ -40,146 +34,6 @@ void PageLoadMetricsObserverTestHarness::SetUp() {
web_contents()->WasShown(); web_contents()->WasShown();
} }
void PageLoadMetricsObserverTestHarness::StartNavigation(const GURL& gurl) {
tester_->StartNavigation(gurl);
}
void PageLoadMetricsObserverTestHarness::SimulateTimingUpdate(
const mojom::PageLoadTiming& timing) {
tester_->SimulateTimingUpdate(timing);
}
void PageLoadMetricsObserverTestHarness::SimulateTimingUpdate(
const mojom::PageLoadTiming& timing,
content::RenderFrameHost* rfh) {
tester_->SimulateTimingUpdate(timing, rfh);
}
void PageLoadMetricsObserverTestHarness::SimulateTimingAndMetadataUpdate(
const mojom::PageLoadTiming& timing,
const mojom::PageLoadMetadata& metadata) {
tester_->SimulateTimingAndMetadataUpdate(timing, metadata);
}
void PageLoadMetricsObserverTestHarness::SimulateCpuTimingUpdate(
const mojom::CpuTiming& cpu_timing) {
tester_->SimulateCpuTimingUpdate(cpu_timing);
}
void PageLoadMetricsObserverTestHarness::SimulateMetadataUpdate(
const mojom::PageLoadMetadata& metadata,
content::RenderFrameHost* rfh) {
tester_->SimulateMetadataUpdate(metadata, rfh);
}
void PageLoadMetricsObserverTestHarness::SimulateResourceDataUseUpdate(
const std::vector<mojom::ResourceDataUpdatePtr>& resources) {
tester_->SimulateResourceDataUseUpdate(resources);
}
void PageLoadMetricsObserverTestHarness::SimulateResourceDataUseUpdate(
const std::vector<mojom::ResourceDataUpdatePtr>& resources,
content::RenderFrameHost* render_frame_host) {
tester_->SimulateResourceDataUseUpdate(resources, render_frame_host);
}
void PageLoadMetricsObserverTestHarness::SimulateFeaturesUpdate(
const mojom::PageLoadFeatures& new_features) {
tester_->SimulateFeaturesUpdate(new_features);
}
void PageLoadMetricsObserverTestHarness::SimulateRenderDataUpdate(
const mojom::FrameRenderDataUpdate& render_data) {
tester_->SimulateRenderDataUpdate(render_data);
}
void PageLoadMetricsObserverTestHarness::SimulateRenderDataUpdate(
const mojom::FrameRenderDataUpdate& render_data,
content::RenderFrameHost* render_frame_host) {
tester_->SimulateRenderDataUpdate(render_data, render_frame_host);
}
void PageLoadMetricsObserverTestHarness::SimulateLoadedResource(
const ExtraRequestCompleteInfo& info) {
tester_->SimulateLoadedResource(info, content::GlobalRequestID());
}
void PageLoadMetricsObserverTestHarness::SimulateLoadedResource(
const ExtraRequestCompleteInfo& info,
const content::GlobalRequestID& request_id) {
tester_->SimulateLoadedResource(info, request_id);
}
void PageLoadMetricsObserverTestHarness::SimulateInputEvent(
const blink::WebInputEvent& event) {
tester_->SimulateInputEvent(event);
}
void PageLoadMetricsObserverTestHarness::SimulateAppEnterBackground() {
tester_->SimulateAppEnterBackground();
}
void PageLoadMetricsObserverTestHarness::SimulateMediaPlayed() {
tester_->SimulateMediaPlayed();
}
void PageLoadMetricsObserverTestHarness::SimulateCookiesRead(
const GURL& url,
const GURL& first_party_url,
const net::CookieList& cookie_list,
bool blocked_by_policy) {
tester_->SimulateCookiesRead(url, first_party_url, cookie_list,
blocked_by_policy);
}
void PageLoadMetricsObserverTestHarness::SimulateCookieChange(
const GURL& url,
const GURL& first_party_url,
const net::CanonicalCookie& cookie,
bool blocked_by_policy) {
tester_->SimulateCookieChange(url, first_party_url, cookie,
blocked_by_policy);
}
void PageLoadMetricsObserverTestHarness::SimulateDomStorageAccess(
const GURL& url,
const GURL& first_party_url,
bool local,
bool blocked_by_policy) {
tester_->SimulateDomStorageAccess(url, first_party_url, local,
blocked_by_policy);
}
const base::HistogramTester&
PageLoadMetricsObserverTestHarness::histogram_tester() const {
return tester_->histogram_tester();
}
MetricsWebContentsObserver* PageLoadMetricsObserverTestHarness::observer()
const {
return tester_->observer();
}
const ukm::TestAutoSetUkmRecorder&
PageLoadMetricsObserverTestHarness::test_ukm_recorder() const {
return tester_->test_ukm_recorder();
}
const PageLoadMetricsObserverDelegate&
PageLoadMetricsObserverTestHarness::GetDelegateForCommittedLoad() const {
return tester_->GetDelegateForCommittedLoad();
}
void PageLoadMetricsObserverTestHarness::NavigateWithPageTransitionAndCommit(
const GURL& url,
ui::PageTransition transition) {
tester_->NavigateWithPageTransitionAndCommit(url, transition);
}
void PageLoadMetricsObserverTestHarness::NavigateToUntrackedUrl() {
tester_->NavigateToUntrackedUrl();
}
const char PageLoadMetricsObserverTestHarness::kResourceUrl[] = const char PageLoadMetricsObserverTestHarness::kResourceUrl[] =
"https://www.example.com/resource"; "https://www.example.com/resource";
......
...@@ -8,42 +8,17 @@ ...@@ -8,42 +8,17 @@
#include <memory> #include <memory>
#include "base/macros.h" #include "base/macros.h"
#include "base/test/metrics/histogram_tester.h"
#include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "components/page_load_metrics/browser/page_load_metrics_observer.h" #include "components/page_load_metrics/browser/observers/page_load_metrics_observer_tester.h"
#include "components/ukm/test_ukm_recorder.h"
#include "ui/base/page_transition_types.h"
namespace base {
class GURL;
} // namespace base
namespace blink {
class WebInputEvent;
} // namespace blink
namespace content {
struct GlobalRequestID;
} // namespace content
namespace mojom {
class PageLoadMetadata;
class PageLoadTiming;
} // namespace mojom
namespace page_load_metrics { namespace page_load_metrics {
class MetricsWebContentsObserver;
class PageLoadTracker; class PageLoadTracker;
// This class can be used to drive tests of PageLoadMetricsObservers. To hook up // This class can be used to drive tests of PageLoadMetricsObservers in Chrome.
// an observer, override RegisterObservers and call tracker->AddObserver. This // To hook up an observer, override RegisterObservers and call
// will attach the observer to all main frame navigations. // tracker->AddObserver. This will attach the observer to all main frame
// // navigations.
// This class is mostly just a wrapper around a PageLoadMetricsObserverTester.
// Prefer to use the tester directly if you need to compose the testing logic
// with another test harness.
class PageLoadMetricsObserverTestHarness class PageLoadMetricsObserverTestHarness
: public ChromeRenderViewHostTestHarness { : public ChromeRenderViewHostTestHarness {
public: public:
...@@ -57,86 +32,8 @@ class PageLoadMetricsObserverTestHarness ...@@ -57,86 +32,8 @@ class PageLoadMetricsObserverTestHarness
virtual void RegisterObservers(PageLoadTracker* tracker) {} virtual void RegisterObservers(PageLoadTracker* tracker) {}
// Simulates starting a navigation to the given gurl, without committing the PageLoadMetricsObserverTester* tester() { return tester_.get(); }
// navigation. const PageLoadMetricsObserverTester* tester() const { return tester_.get(); }
// Note: The navigation is left in a pending state and cannot be successfully
// completed.
void StartNavigation(const GURL& gurl);
// Simulates committing a navigation to the given URL with the given
// PageTransition.
void NavigateWithPageTransitionAndCommit(const GURL& url,
ui::PageTransition transition);
// Navigates to a URL that is not tracked by page_load_metrics. Useful for
// forcing the OnComplete method of a PageLoadMetricsObserver to run.
void NavigateToUntrackedUrl();
// Call this to simulate sending a PageLoadTiming IPC from the render process
// to the browser process. These will update the timing information for the
// most recently committed navigation.
void SimulateTimingUpdate(const mojom::PageLoadTiming& timing);
void SimulateTimingUpdate(const mojom::PageLoadTiming& timing,
content::RenderFrameHost* rfh);
void SimulateTimingAndMetadataUpdate(const mojom::PageLoadTiming& timing,
const mojom::PageLoadMetadata& metadata);
void SimulateMetadataUpdate(const mojom::PageLoadMetadata& metadata,
content::RenderFrameHost* rfh);
void SimulateFeaturesUpdate(const mojom::PageLoadFeatures& new_features);
void SimulateCpuTimingUpdate(const mojom::CpuTiming& cpu_timing);
void SimulateResourceDataUseUpdate(
const std::vector<mojom::ResourceDataUpdatePtr>& resources);
void SimulateResourceDataUseUpdate(
const std::vector<mojom::ResourceDataUpdatePtr>& resources,
content::RenderFrameHost* render_frame_host);
void SimulateRenderDataUpdate(
const mojom::FrameRenderDataUpdate& render_data);
void SimulateRenderDataUpdate(const mojom::FrameRenderDataUpdate& render_data,
content::RenderFrameHost* rfh);
// Simulates a loaded resource. Main frame resources must specify a
// GlobalRequestID, using the SimulateLoadedResource() method that takes a
// |request_id| parameter.
void SimulateLoadedResource(const ExtraRequestCompleteInfo& info);
// Simulates a loaded resource, with the given GlobalRequestID.
void SimulateLoadedResource(const ExtraRequestCompleteInfo& info,
const content::GlobalRequestID& request_id);
// Simulates a user input.
void SimulateInputEvent(const blink::WebInputEvent& event);
// Simulates the app being backgrounded.
void SimulateAppEnterBackground();
// Simulate playing a media element.
void SimulateMediaPlayed();
// Simulate reading cookies.
void SimulateCookiesRead(const GURL& url,
const GURL& first_party_url,
const net::CookieList& cookie_list,
bool blocked_by_policy);
// Simulate writing a cookie.
void SimulateCookieChange(const GURL& url,
const GURL& first_party_url,
const net::CanonicalCookie& cookie,
bool blocked_by_policy);
// Simulate accessing the local storage or session storage.
void SimulateDomStorageAccess(const GURL& url,
const GURL& first_party_url,
bool local,
bool blocked_by_policy);
const base::HistogramTester& histogram_tester() const;
MetricsWebContentsObserver* observer() const;
const PageLoadMetricsObserverDelegate& GetDelegateForCommittedLoad() const;
const ukm::TestAutoSetUkmRecorder& test_ukm_recorder() const;
private: private:
std::unique_ptr<PageLoadMetricsObserverTester> tester_; std::unique_ptr<PageLoadMetricsObserverTester> tester_;
......
...@@ -124,11 +124,12 @@ class PreviewsPageLoadMetricsObserverTest ...@@ -124,11 +124,12 @@ class PreviewsPageLoadMetricsObserverTest
void ValidateTimingHistogram(const std::string& histogram, void ValidateTimingHistogram(const std::string& histogram,
const base::Optional<base::TimeDelta>& event, const base::Optional<base::TimeDelta>& event,
bool preview_was_active) { bool preview_was_active) {
histogram_tester().ExpectTotalCount(histogram, preview_was_active ? 1 : 0); tester()->histogram_tester().ExpectTotalCount(histogram,
preview_was_active ? 1 : 0);
if (!preview_was_active) { if (!preview_was_active) {
histogram_tester().ExpectTotalCount(histogram, 0); tester()->histogram_tester().ExpectTotalCount(histogram, 0);
} else { } else {
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
histogram, histogram,
static_cast<base::HistogramBase::Sample>( static_cast<base::HistogramBase::Sample>(
event.value().InMilliseconds()), event.value().InMilliseconds()),
...@@ -140,12 +141,12 @@ class PreviewsPageLoadMetricsObserverTest ...@@ -140,12 +141,12 @@ class PreviewsPageLoadMetricsObserverTest
int network_resources, int network_resources,
int64_t network_bytes) { int64_t network_bytes) {
if (network_resources > 0) { if (network_resources > 0) {
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients." + preview_type_name + "PageLoad.Clients." + preview_type_name +
".Experimental.Bytes.NetworkIncludingHeaders", ".Experimental.Bytes.NetworkIncludingHeaders",
static_cast<int>(network_bytes / 1024), 1); static_cast<int>(network_bytes / 1024), 1);
} else { } else {
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
"PageLoad.Clients." + preview_type_name + "PageLoad.Clients." + preview_type_name +
".Experimental.Bytes.NetworkIncludingHeaders", ".Experimental.Bytes.NetworkIncludingHeaders",
0); 0);
...@@ -188,10 +189,10 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, NoActivePreview) { ...@@ -188,10 +189,10 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, NoActivePreview) {
auto resources = auto resources =
GetSampleResourceDataUpdateForTesting(10 * 1024 /* resource_size */); GetSampleResourceDataUpdateForTesting(10 * 1024 /* resource_size */);
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
ValidateTimingHistograms("NoScriptPreview", false /* preview_was_active */); ValidateTimingHistograms("NoScriptPreview", false /* preview_was_active */);
ValidateTimingHistograms("ResourceLoadingHintsPreview", ValidateTimingHistograms("ResourceLoadingHintsPreview",
...@@ -212,10 +213,10 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, NoScriptPreviewActive) { ...@@ -212,10 +213,10 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, NoScriptPreviewActive) {
auto resources = auto resources =
GetSampleResourceDataUpdateForTesting(10 * 1024 /* resource_size */); GetSampleResourceDataUpdateForTesting(10 * 1024 /* resource_size */);
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
ValidateTimingHistograms("NoScriptPreview", true /* preview_was_active */); ValidateTimingHistograms("NoScriptPreview", true /* preview_was_active */);
ValidateDataHistograms("NoScriptPreview", 1 /* network_resources */, ValidateDataHistograms("NoScriptPreview", 1 /* network_resources */,
...@@ -232,10 +233,10 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, ResourceLoadingHintsPreviewActive) { ...@@ -232,10 +233,10 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, ResourceLoadingHintsPreviewActive) {
auto resources = auto resources =
GetSampleResourceDataUpdateForTesting(10 * 1024 /* resource_size */); GetSampleResourceDataUpdateForTesting(10 * 1024 /* resource_size */);
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
ValidateTimingHistograms("ResourceLoadingHintsPreview", ValidateTimingHistograms("ResourceLoadingHintsPreview",
true /* preview_was_active */); true /* preview_was_active */);
...@@ -263,7 +264,7 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, NoScriptDataSavings) { ...@@ -263,7 +264,7 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, NoScriptDataSavings) {
auto resource_data_update = ResourceDataUpdate::New(); auto resource_data_update = ResourceDataUpdate::New();
resource_data_update->delta_bytes = 5 * 1024; resource_data_update->delta_bytes = 5 * 1024;
resources.push_back(std::move(resource_data_update)); resources.push_back(std::move(resource_data_update));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
data_use += (5 * 1024); data_use += (5 * 1024);
resources.clear(); resources.clear();
...@@ -271,10 +272,10 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, NoScriptDataSavings) { ...@@ -271,10 +272,10 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, NoScriptDataSavings) {
resource_data_update = ResourceDataUpdate::New(); resource_data_update = ResourceDataUpdate::New();
resource_data_update->delta_bytes = 20 * 1024; resource_data_update->delta_bytes = 20 * 1024;
resources.push_back(std::move(resource_data_update)); resources.push_back(std::move(resource_data_update));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
data_use += (20 * 1024); data_use += (20 * 1024);
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
int64_t expected_savings = (data_use * inflation) / 100 + constant_savings; int64_t expected_savings = (data_use * inflation) / 100 + constant_savings;
...@@ -302,7 +303,7 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, ResourceLoadingHintsDataSavings) { ...@@ -302,7 +303,7 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, ResourceLoadingHintsDataSavings) {
auto resource_data_update = ResourceDataUpdate::New(); auto resource_data_update = ResourceDataUpdate::New();
resource_data_update->delta_bytes = 5 * 1024; resource_data_update->delta_bytes = 5 * 1024;
resources.push_back(std::move(resource_data_update)); resources.push_back(std::move(resource_data_update));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
data_use += (5 * 1024); data_use += (5 * 1024);
resources.clear(); resources.clear();
...@@ -310,10 +311,10 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, ResourceLoadingHintsDataSavings) { ...@@ -310,10 +311,10 @@ TEST_F(PreviewsPageLoadMetricsObserverTest, ResourceLoadingHintsDataSavings) {
resource_data_update = ResourceDataUpdate::New(); resource_data_update = ResourceDataUpdate::New();
resource_data_update->delta_bytes = 20 * 1024; resource_data_update->delta_bytes = 20 * 1024;
resources.push_back(std::move(resource_data_update)); resources.push_back(std::move(resource_data_update));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
data_use += (20 * 1024); data_use += (20 * 1024);
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
int64_t expected_savings = (data_use * inflation) / 100 + constant_savings; int64_t expected_savings = (data_use * inflation) / 100 + constant_savings;
......
...@@ -49,7 +49,7 @@ class ProtocolPageLoadMetricsObserverTest ...@@ -49,7 +49,7 @@ class ProtocolPageLoadMetricsObserverTest
page_load_metrics::mojom::PageLoadTiming timing; page_load_metrics::mojom::PageLoadTiming timing;
InitializeTestPageLoadTiming(&timing); InitializeTestPageLoadTiming(&timing);
SimulateTimingUpdate(timing); tester()->SimulateTimingUpdate(timing);
// Navigate again to force OnComplete, which happens when a new navigation // Navigate again to force OnComplete, which happens when a new navigation
// occurs. // occurs.
...@@ -60,7 +60,7 @@ class ProtocolPageLoadMetricsObserverTest ...@@ -60,7 +60,7 @@ class ProtocolPageLoadMetricsObserverTest
int count = 0; int count = 0;
base::HistogramTester::CountsMap counts_map = base::HistogramTester::CountsMap counts_map =
histogram_tester().GetTotalCountsForPrefix( tester()->histogram_tester().GetTotalCountsForPrefix(
"PageLoad.Clients.Protocol."); "PageLoad.Clients.Protocol.");
for (const auto& entry : counts_map) for (const auto& entry : counts_map)
count += entry.second; count += entry.second;
...@@ -75,21 +75,21 @@ class ProtocolPageLoadMetricsObserverTest ...@@ -75,21 +75,21 @@ class ProtocolPageLoadMetricsObserverTest
std::string prefix = "PageLoad.Clients.Protocol."; std::string prefix = "PageLoad.Clients.Protocol.";
prefix += protocol; prefix += protocol;
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
prefix + ".ParseTiming.NavigationToParseStart", 1); prefix + ".ParseTiming.NavigationToParseStart", 1);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
prefix + ".PaintTiming.ParseStartToFirstContentfulPaint", 1); prefix + ".PaintTiming.ParseStartToFirstContentfulPaint", 1);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
prefix + ".PaintTiming.NavigationToFirstContentfulPaint", 1); prefix + ".PaintTiming.NavigationToFirstContentfulPaint", 1);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
prefix + ".Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint", prefix + ".Experimental.PaintTiming.ParseStartToFirstMeaningfulPaint",
1); 1);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
prefix + ".Experimental.PaintTiming.NavigationToFirstMeaningfulPaint", prefix + ".Experimental.PaintTiming.NavigationToFirstMeaningfulPaint",
1); 1);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
prefix + ".DocumentTiming.NavigationToDOMContentLoadedEventFired", 1); prefix + ".DocumentTiming.NavigationToDOMContentLoadedEventFired", 1);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
prefix + ".DocumentTiming.NavigationToLoadEventFired", 1); prefix + ".DocumentTiming.NavigationToLoadEventFired", 1);
} }
......
...@@ -48,7 +48,7 @@ class SchemePageLoadMetricsObserverTest ...@@ -48,7 +48,7 @@ class SchemePageLoadMetricsObserverTest
page_load_metrics::mojom::PageLoadTiming timing; page_load_metrics::mojom::PageLoadTiming timing;
InitializeTestPageLoadTiming(&timing); InitializeTestPageLoadTiming(&timing);
SimulateTimingUpdate(timing); tester()->SimulateTimingUpdate(timing);
// Navigate again to force OnComplete, which happens when a new navigation // Navigate again to force OnComplete, which happens when a new navigation
// occurs. // occurs.
...@@ -59,13 +59,14 @@ class SchemePageLoadMetricsObserverTest ...@@ -59,13 +59,14 @@ class SchemePageLoadMetricsObserverTest
int CountTotalProtocolMetricsRecorded(const std::string& protocol) { int CountTotalProtocolMetricsRecorded(const std::string& protocol) {
int count = 0; int count = 0;
base::HistogramTester::CountsMap counts_map = base::HistogramTester::CountsMap counts_map =
histogram_tester().GetTotalCountsForPrefix("PageLoad.Clients.Scheme."); tester()->histogram_tester().GetTotalCountsForPrefix(
"PageLoad.Clients.Scheme.");
for (const auto& entry : counts_map) for (const auto& entry : counts_map)
count += entry.second; count += entry.second;
int understat_count = 0; int understat_count = 0;
base::HistogramTester::CountsMap understat_counts_map = base::HistogramTester::CountsMap understat_counts_map =
histogram_tester().GetTotalCountsForPrefix( tester()->histogram_tester().GetTotalCountsForPrefix(
"PageLoad.Clients.Scheme." + base::ToUpperASCII(protocol) + "PageLoad.Clients.Scheme." + base::ToUpperASCII(protocol) +
".PaintTiming.UnderStat"); ".PaintTiming.UnderStat");
for (const auto& entry : understat_counts_map) for (const auto& entry : understat_counts_map)
...@@ -77,10 +78,10 @@ class SchemePageLoadMetricsObserverTest ...@@ -77,10 +78,10 @@ class SchemePageLoadMetricsObserverTest
// Returns the value of the sample present in |histogram_name|. Should be // Returns the value of the sample present in |histogram_name|. Should be
// called only if |histogram_name| contains exactly 1 sample. // called only if |histogram_name| contains exactly 1 sample.
int32_t GetRecordedMetricValue(const std::string& histogram_name) const { int32_t GetRecordedMetricValue(const std::string& histogram_name) const {
histogram_tester().ExpectTotalCount(histogram_name, 1); tester()->histogram_tester().ExpectTotalCount(histogram_name, 1);
std::vector<base::Bucket> buckets = std::vector<base::Bucket> buckets =
histogram_tester().GetAllSamples(histogram_name); tester()->histogram_tester().GetAllSamples(histogram_name);
for (const auto& bucket : buckets) { for (const auto& bucket : buckets) {
if (bucket.count == 1) { if (bucket.count == 1) {
return bucket.min; return bucket.min;
...@@ -106,25 +107,26 @@ class SchemePageLoadMetricsObserverTest ...@@ -106,25 +107,26 @@ class SchemePageLoadMetricsObserverTest
std::string fcp_understat_new_nav_histogram_name( std::string fcp_understat_new_nav_histogram_name(
fcp_understat_histogram_name + ".UserInitiated.NewNavigation"); fcp_understat_histogram_name + ".UserInitiated.NewNavigation");
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
prefix + ".ParseTiming.NavigationToParseStart", 1); prefix + ".ParseTiming.NavigationToParseStart", 1);
histogram_tester().ExpectTotalCount(fcp_histogram_name, 1); tester()->histogram_tester().ExpectTotalCount(fcp_histogram_name, 1);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
prefix + ".PaintTiming.ParseStartToFirstContentfulPaint", 1); prefix + ".PaintTiming.ParseStartToFirstContentfulPaint", 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
prefix + ".PaintTiming.ParseStartToFirstContentfulPaint", prefix + ".PaintTiming.ParseStartToFirstContentfulPaint",
static_cast<base::HistogramBase::Sample>(200), 1); static_cast<base::HistogramBase::Sample>(200), 1);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
prefix + ".Experimental.PaintTiming.NavigationToFirstMeaningfulPaint", prefix + ".Experimental.PaintTiming.NavigationToFirstMeaningfulPaint",
1); 1);
histogram_tester().ExpectBucketCount(fcp_understat_histogram_name, 0, 1); tester()->histogram_tester().ExpectBucketCount(fcp_understat_histogram_name,
0, 1);
if (new_navigation) { if (new_navigation) {
histogram_tester().ExpectBucketCount(fcp_understat_new_nav_histogram_name, tester()->histogram_tester().ExpectBucketCount(
0, 1); fcp_understat_new_nav_histogram_name, 0, 1);
} else { } else {
histogram_tester().ExpectTotalCount(fcp_understat_new_nav_histogram_name, tester()->histogram_tester().ExpectTotalCount(
0); fcp_understat_new_nav_histogram_name, 0);
} }
// Must remain synchronized with the array of the same name in // Must remain synchronized with the array of the same name in
...@@ -140,10 +142,10 @@ class SchemePageLoadMetricsObserverTest ...@@ -140,10 +142,10 @@ class SchemePageLoadMetricsObserverTest
base::TimeDelta threshold(base::TimeDelta::FromSeconds( base::TimeDelta threshold(base::TimeDelta::FromSeconds(
kUnderStatRecordingIntervalsSeconds[index])); kUnderStatRecordingIntervalsSeconds[index]));
if (recorded_fcp_value <= threshold) { if (recorded_fcp_value <= threshold) {
histogram_tester().ExpectBucketCount(fcp_understat_histogram_name, tester()->histogram_tester().ExpectBucketCount(
index + 1, 1); fcp_understat_histogram_name, index + 1, 1);
if (new_navigation) { if (new_navigation) {
histogram_tester().ExpectBucketCount( tester()->histogram_tester().ExpectBucketCount(
fcp_understat_new_nav_histogram_name, index + 1, 1); fcp_understat_new_nav_histogram_name, index + 1, 1);
} }
} }
...@@ -152,7 +154,7 @@ class SchemePageLoadMetricsObserverTest ...@@ -152,7 +154,7 @@ class SchemePageLoadMetricsObserverTest
// Overflow bucket should be empty. This also ensures that // Overflow bucket should be empty. This also ensures that
// kUnderStatRecordingIntervalsSeconds above is synchronized with the array // kUnderStatRecordingIntervalsSeconds above is synchronized with the array
// of the same name in scheme_page_load_metrics_observer.cc. // of the same name in scheme_page_load_metrics_observer.cc.
histogram_tester().ExpectBucketCount( tester()->histogram_tester().ExpectBucketCount(
fcp_understat_histogram_name, fcp_understat_histogram_name,
base::size(kUnderStatRecordingIntervalsSeconds) + 1, 0); base::size(kUnderStatRecordingIntervalsSeconds) + 1, 0);
} }
......
...@@ -19,11 +19,11 @@ ...@@ -19,11 +19,11 @@
#include "base/time/time.h" #include "base/time/time.h"
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h" #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h"
#include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.h"
#include "chrome/browser/resource_coordinator/tab_manager.h" #include "chrome/browser/resource_coordinator/tab_manager.h"
#include "chrome/browser/sessions/session_restore.h" #include "chrome/browser/sessions/session_restore.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile.h"
#include "components/page_load_metrics/browser/observers/page_load_metrics_observer_tester.h"
#include "components/page_load_metrics/browser/page_load_tracker.h" #include "components/page_load_metrics/browser/page_load_tracker.h"
#include "components/page_load_metrics/common/test/page_load_metrics_test_util.h" #include "components/page_load_metrics/common/test/page_load_metrics_test_util.h"
#include "content/public/browser/browser_url_handler.h" #include "content/public/browser/browser_url_handler.h"
...@@ -160,7 +160,7 @@ class SessionRestorePageLoadMetricsObserverTest ...@@ -160,7 +160,7 @@ class SessionRestorePageLoadMetricsObserverTest
TEST_F(SessionRestorePageLoadMetricsObserverTest, NoMetrics) { TEST_F(SessionRestorePageLoadMetricsObserverTest, NoMetrics) {
ExpectFirstPaintMetricsTotalCount(0); ExpectFirstPaintMetricsTotalCount(0);
EXPECT_EQ(0ul, test_ukm_recorder().entries_count()); EXPECT_EQ(0ul, tester()->test_ukm_recorder().entries_count());
} }
TEST_F(SessionRestorePageLoadMetricsObserverTest, TEST_F(SessionRestorePageLoadMetricsObserverTest,
...@@ -169,7 +169,7 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest, ...@@ -169,7 +169,7 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest,
GetTestURL(), web_contents()->GetMainFrame()); GetTestURL(), web_contents()->GetMainFrame());
ASSERT_NO_FATAL_FAILURE(SimulateTimingUpdateForTab(web_contents())); ASSERT_NO_FATAL_FAILURE(SimulateTimingUpdateForTab(web_contents()));
ExpectFirstPaintMetricsTotalCount(0); ExpectFirstPaintMetricsTotalCount(0);
EXPECT_EQ(0ul, test_ukm_recorder().entries_count()); EXPECT_EQ(0ul, tester()->test_ukm_recorder().entries_count());
} }
TEST_F(SessionRestorePageLoadMetricsObserverTest, RestoreSingleForegroundTab) { TEST_F(SessionRestorePageLoadMetricsObserverTest, RestoreSingleForegroundTab) {
...@@ -177,9 +177,9 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest, RestoreSingleForegroundTab) { ...@@ -177,9 +177,9 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest, RestoreSingleForegroundTab) {
ASSERT_NO_FATAL_FAILURE(RestoreTab(web_contents())); ASSERT_NO_FATAL_FAILURE(RestoreTab(web_contents()));
ASSERT_NO_FATAL_FAILURE(SimulateTimingUpdateForTab(web_contents())); ASSERT_NO_FATAL_FAILURE(SimulateTimingUpdateForTab(web_contents()));
ExpectFirstPaintMetricsTotalCount(1); ExpectFirstPaintMetricsTotalCount(1);
EXPECT_EQ(1ul, test_ukm_recorder().entries_count()); EXPECT_EQ(1ul, tester()->test_ukm_recorder().entries_count());
ukm::TestUkmRecorder::ExpectEntryMetric( ukm::TestUkmRecorder::ExpectEntryMetric(
test_ukm_recorder().GetEntriesByName(UkmEntry::kEntryName)[0], tester()->test_ukm_recorder().GetEntriesByName(UkmEntry::kEntryName)[0],
UkmEntry::kSessionRestoreTabCountName, 1); UkmEntry::kSessionRestoreTabCountName, 1);
} }
...@@ -193,9 +193,9 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest, ...@@ -193,9 +193,9 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest,
ASSERT_NO_FATAL_FAILURE(RestoreTab(contents)); ASSERT_NO_FATAL_FAILURE(RestoreTab(contents));
ASSERT_NO_FATAL_FAILURE(SimulateTimingUpdateForTab(contents)); ASSERT_NO_FATAL_FAILURE(SimulateTimingUpdateForTab(contents));
ExpectFirstPaintMetricsTotalCount(i + 1); ExpectFirstPaintMetricsTotalCount(i + 1);
EXPECT_EQ(i + 1, test_ukm_recorder().entries_count()); EXPECT_EQ(i + 1, tester()->test_ukm_recorder().entries_count());
ukm::TestUkmRecorder::ExpectEntryMetric( ukm::TestUkmRecorder::ExpectEntryMetric(
test_ukm_recorder().GetEntriesByName(UkmEntry::kEntryName)[i], tester()->test_ukm_recorder().GetEntriesByName(UkmEntry::kEntryName)[i],
UkmEntry::kSessionRestoreTabCountName, i + 1); UkmEntry::kSessionRestoreTabCountName, i + 1);
} }
} }
...@@ -210,7 +210,7 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest, RestoreBackgroundTab) { ...@@ -210,7 +210,7 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest, RestoreBackgroundTab) {
// No paint timings recorded for tabs restored in background. // No paint timings recorded for tabs restored in background.
ExpectFirstPaintMetricsTotalCount(0); ExpectFirstPaintMetricsTotalCount(0);
EXPECT_EQ(0ul, test_ukm_recorder().entries_count()); EXPECT_EQ(0ul, tester()->test_ukm_recorder().entries_count());
} }
TEST_F(SessionRestorePageLoadMetricsObserverTest, HideTabBeforeFirstPaints) { TEST_F(SessionRestorePageLoadMetricsObserverTest, HideTabBeforeFirstPaints) {
...@@ -243,7 +243,7 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest, ...@@ -243,7 +243,7 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest,
// No paint timings recorded because the initial foreground tab was hidden. // No paint timings recorded because the initial foreground tab was hidden.
ASSERT_NO_FATAL_FAILURE(SimulateTimingUpdateForTab(web_contents())); ASSERT_NO_FATAL_FAILURE(SimulateTimingUpdateForTab(web_contents()));
ExpectFirstPaintMetricsTotalCount(0); ExpectFirstPaintMetricsTotalCount(0);
EXPECT_EQ(0ul, test_ukm_recorder().entries_count()); EXPECT_EQ(0ul, tester()->test_ukm_recorder().entries_count());
} }
TEST_F(SessionRestorePageLoadMetricsObserverTest, MultipleSessionRestores) { TEST_F(SessionRestorePageLoadMetricsObserverTest, MultipleSessionRestores) {
...@@ -256,9 +256,10 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest, MultipleSessionRestores) { ...@@ -256,9 +256,10 @@ TEST_F(SessionRestorePageLoadMetricsObserverTest, MultipleSessionRestores) {
// Number of paint timings should match the number of session restores. // Number of paint timings should match the number of session restores.
ExpectFirstPaintMetricsTotalCount(i); ExpectFirstPaintMetricsTotalCount(i);
EXPECT_EQ(i, test_ukm_recorder().entries_count()); EXPECT_EQ(i, tester()->test_ukm_recorder().entries_count());
ukm::TestUkmRecorder::ExpectEntryMetric( ukm::TestUkmRecorder::ExpectEntryMetric(
test_ukm_recorder().GetEntriesByName(UkmEntry::kEntryName)[i - 1], tester()->test_ukm_recorder().GetEntriesByName(
UkmEntry::kEntryName)[i - 1],
UkmEntry::kSessionRestoreTabCountName, i); UkmEntry::kSessionRestoreTabCountName, i);
} }
} }
...@@ -44,7 +44,7 @@ class SubresourceLoadingPageLoadMetricsObserverTest ...@@ -44,7 +44,7 @@ class SubresourceLoadingPageLoadMetricsObserverTest
} }
NavigateAndCommit(navigation_url_); NavigateAndCommit(navigation_url_);
SimulateTimingUpdate(timing_); tester()->SimulateTimingUpdate(timing_);
} }
page_load_metrics::mojom::ResourceDataUpdatePtr CreateCSSResource( page_load_metrics::mojom::ResourceDataUpdatePtr CreateCSSResource(
...@@ -131,13 +131,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, BeforeFCP_CSS) { ...@@ -131,13 +131,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, BeforeFCP_CSS) {
true /* is_complete */, true /* is_complete */,
true /* completed_before_fcp */)); true /* completed_before_fcp */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 2, "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 2,
1); 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 3, 1); "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 3, 1);
} }
...@@ -162,13 +162,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, BeforeFCP_JS) { ...@@ -162,13 +162,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, BeforeFCP_JS) {
true /* is_complete */, true /* is_complete */,
true /* completed_before_fcp */)); true /* completed_before_fcp */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 2, "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 2,
1); 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 3, 1); "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 3, 1);
} }
...@@ -193,13 +193,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, BeforeFCP_Other) { ...@@ -193,13 +193,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, BeforeFCP_Other) {
true /* is_complete */, true /* is_complete */,
true /* completed_before_fcp */)); true /* completed_before_fcp */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0, "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0,
1); 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1); "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1);
} }
...@@ -224,13 +224,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, BeforeFCP_NotComplete) { ...@@ -224,13 +224,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, BeforeFCP_NotComplete) {
false /* is_complete */, false /* is_complete */,
false /* completed_before_fcp */)); false /* completed_before_fcp */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0, "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0,
1); 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1); "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1);
} }
...@@ -256,13 +256,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, BeforeFCP_Subframe) { ...@@ -256,13 +256,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, BeforeFCP_Subframe) {
true /* is_complete */, true /* is_complete */,
true /* completed_before_fcp */)); true /* completed_before_fcp */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0, "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0,
1); 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1); "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1);
} }
...@@ -287,13 +287,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, AfterFCP) { ...@@ -287,13 +287,13 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, AfterFCP) {
true /* is_complete */, true /* is_complete */,
false /* completed_before_fcp */)); false /* completed_before_fcp */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0, "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0,
1); 1);
histogram_tester().ExpectUniqueSample( tester()->histogram_tester().ExpectUniqueSample(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1); "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0, 1);
} }
...@@ -320,11 +320,11 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, DontRecordForNonHttp) { ...@@ -320,11 +320,11 @@ TEST_F(SubresourceLoadingPageLoadMetricsObserverTest, DontRecordForNonHttp) {
true /* is_complete */, true /* is_complete */,
true /* completed_before_fcp */)); true /* completed_before_fcp */));
SimulateResourceDataUseUpdate(resources); tester()->SimulateResourceDataUseUpdate(resources);
NavigateToUntrackedUrl(); tester()->NavigateToUntrackedUrl();
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0); "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Noncached", 0);
histogram_tester().ExpectTotalCount( tester()->histogram_tester().ExpectTotalCount(
"PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0); "PageLoad.Clients.SubresourceLoading.LoadedCSSJSBeforeFCP.Cached", 0);
} }
This diff is collapsed.
...@@ -3,6 +3,7 @@ include_rules = [ ...@@ -3,6 +3,7 @@ include_rules = [
"+content/public/browser", "+content/public/browser",
"+content/public/test", "+content/public/test",
"+components/data_reduction_proxy/core/browser", "+components/data_reduction_proxy/core/browser",
"+components/ukm",
"+net", "+net",
"+services/metrics", "+services/metrics",
"+third_party/blink/public", "+third_party/blink/public",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment