| Index: chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc
|
| diff --git a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc
|
| index c19a027f0b3bc26ba61c5e9898dad4d45df62749..5657d3d4e46dfb04c0e4c7277a6c186d0b3d8221 100644
|
| --- a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc
|
| +++ b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc
|
| @@ -26,6 +26,14 @@ class CorePageLoadMetricsObserverTest
|
| tracker->AddObserver(base::WrapUnique(new CorePageLoadMetricsObserver()));
|
| }
|
|
|
| + void AssertNoHistogramsLogged() {
|
| + histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded,
|
| + 0);
|
| + histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0);
|
| + histogram_tester().ExpectTotalCount(internal::kHistogramFirstLayout, 0);
|
| + histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 0);
|
| + }
|
| +
|
| void SetUp() override {
|
| page_load_metrics::PageLoadMetricsObserverTestHarness::SetUp();
|
| TestingBrowserProcess::GetGlobal()->SetRapporService(&rappor_tester_);
|
| @@ -35,10 +43,7 @@ class CorePageLoadMetricsObserverTest
|
| };
|
|
|
| TEST_F(CorePageLoadMetricsObserverTest, NoMetrics) {
|
| - histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 0);
|
| - histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0);
|
| - histogram_tester().ExpectTotalCount(internal::kHistogramFirstLayout, 0);
|
| - histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 0);
|
| + AssertNoHistogramsLogged();
|
| }
|
|
|
| TEST_F(CorePageLoadMetricsObserverTest, SamePageNoTriggerUntilTrueNavCommit) {
|
| @@ -54,7 +59,7 @@ TEST_F(CorePageLoadMetricsObserverTest, SamePageNoTriggerUntilTrueNavCommit) {
|
|
|
| NavigateAndCommit(GURL(kDefaultTestUrlAnchor));
|
| // A same page navigation shouldn't trigger logging UMA for the original.
|
| - histogram_tester().ExpectTotalCount(internal::kHistogramCommit, 0);
|
| + AssertNoHistogramsLogged();
|
|
|
| // But we should keep the timing info and log it when we get another
|
| // navigation.
|
| @@ -86,7 +91,7 @@ TEST_F(CorePageLoadMetricsObserverTest, SingleMetricAfterCommit) {
|
| NavigateAndCommit(GURL(kDefaultTestUrl));
|
| SimulateTimingUpdate(timing);
|
|
|
| - histogram_tester().ExpectTotalCount(internal::kHistogramCommit, 0);
|
| + AssertNoHistogramsLogged();
|
|
|
| // Navigate again to force histogram recording.
|
| NavigateAndCommit(GURL(kDefaultTestUrl2));
|
| @@ -130,11 +135,15 @@ TEST_F(CorePageLoadMetricsObserverTest, MultipleMetricsAfterCommits) {
|
| NavigateAndCommit(GURL(kDefaultTestUrl));
|
| SimulateTimingUpdate(timing);
|
|
|
| + // Verify that the non-immediate FCP has not yet been logged, but the
|
| + // immediate FCP is logged before the next navigation.
|
| histogram_tester().ExpectTotalCount(internal::kHistogramFirstContentfulPaint,
|
| - 1);
|
| - histogram_tester().ExpectBucketCount(internal::kHistogramFirstContentfulPaint,
|
| - first_contentful_paint.InMilliseconds(),
|
| - 1);
|
| + 0);
|
| + histogram_tester().ExpectTotalCount(
|
| + internal::kHistogramFirstContentfulPaintImmediate, 1);
|
| + histogram_tester().ExpectBucketCount(
|
| + internal::kHistogramFirstContentfulPaintImmediate,
|
| + first_contentful_paint.InMilliseconds(), 1);
|
|
|
| NavigateAndCommit(GURL(kDefaultTestUrl2));
|
|
|
| @@ -155,11 +164,29 @@ TEST_F(CorePageLoadMetricsObserverTest, MultipleMetricsAfterCommits) {
|
| histogram_tester().ExpectBucketCount(internal::kHistogramFirstLayout,
|
| first_layout_2.InMilliseconds(), 1);
|
|
|
| + histogram_tester().ExpectTotalCount(
|
| + internal::kHistogramDomLoadingToDomContentLoaded, 1);
|
| + histogram_tester().ExpectBucketCount(
|
| + internal::kHistogramDomLoadingToDomContentLoaded,
|
| + (dom_content - dom_loading).InMilliseconds(), 1);
|
| +
|
| histogram_tester().ExpectTotalCount(internal::kHistogramFirstContentfulPaint,
|
| 1);
|
| histogram_tester().ExpectBucketCount(internal::kHistogramFirstContentfulPaint,
|
| first_contentful_paint.InMilliseconds(),
|
| 1);
|
| +
|
| + // Verify that no additional immediate metrics were logged as a result of
|
| + // navigation.
|
| + histogram_tester().ExpectTotalCount(
|
| + internal::kHistogramFirstContentfulPaintImmediate, 1);
|
| +
|
| + histogram_tester().ExpectTotalCount(
|
| + internal::kHistogramDomLoadingToFirstContentfulPaint, 1);
|
| + histogram_tester().ExpectBucketCount(
|
| + internal::kHistogramDomLoadingToFirstContentfulPaint,
|
| + (first_contentful_paint - dom_loading).InMilliseconds(), 1);
|
| +
|
| histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 1);
|
| histogram_tester().ExpectBucketCount(internal::kHistogramFirstTextPaint,
|
| first_text_paint.InMilliseconds(), 1);
|
| @@ -188,6 +215,7 @@ TEST_F(CorePageLoadMetricsObserverTest, BackgroundDifferentHistogram) {
|
|
|
| // Simulate switching to the tab and making another navigation.
|
| web_contents()->WasShown();
|
| + AssertNoHistogramsLogged();
|
|
|
| // Navigate again to force histogram recording.
|
| NavigateAndCommit(GURL(kDefaultTestUrl2));
|
|
|