Chromium Code Reviews| Index: chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
| diff --git a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
| index 6f6a8015d7cb5de958d574bb584c45dcfce36fff..dd2da42de6cd6901c26dfacc67b160d1693b2c6f 100644 |
| --- a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
| +++ b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
| @@ -377,3 +377,49 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, |
| histogram_tester_.ExpectTotalCount( |
| internal::kHistogramAbortClientRedirectBeforeCommit, 1); |
| } |
| + |
| +IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, |
| + FirstMeaningfulPaintRecorded) { |
| + ASSERT_TRUE(embedded_test_server()->Start()); |
| + |
| + ui_test_utils::NavigateToURL(browser(), |
| + embedded_test_server()->GetURL("/title1.html")); |
| + |
| + // Wait until a FMP is reported, by polling the histogram counter. |
|
Charlie Harrison
2016/08/08 12:35:44
Can this be avoided? I would slightly prefer using
Kunihiko Sakamoto
2016/08/09 02:32:49
I'm afraid that that will be a source of flakiness
Charlie Harrison
2016/08/09 02:36:43
Yeah, that was my idea. The content API call will
Kunihiko Sakamoto
2016/08/09 03:31:14
Ah, now I got your idea.
Done, thanks!
|
| + while (histogram_tester_.GetAllSamples( |
| + internal::kHistogramFirstMeaningfulPaintStatus).empty()) { |
| + base::RunLoop run_loop; |
| + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
| + FROM_HERE, run_loop.QuitClosure(), |
| + base::TimeDelta::FromMilliseconds(100)); |
| + run_loop.Run(); |
| + } |
| + |
| + NavigateToUntrackedUrl(); |
| + histogram_tester_.ExpectUniqueSample( |
| + internal::kHistogramFirstMeaningfulPaintStatus, |
| + internal::FMP_RECORDED, 1); |
| + histogram_tester_.ExpectTotalCount( |
| + internal::kHistogramFirstMeaningfulPaint, 1); |
| + histogram_tester_.ExpectTotalCount( |
| + internal::kHistogramParseStartToFirstMeaningfulPaint, 1); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, |
| + FirstMeaningfulPaintNotRecorded) { |
| + ASSERT_TRUE(embedded_test_server()->Start()); |
| + |
| + ui_test_utils::NavigateToURL(browser(), |
| + embedded_test_server()->GetURL("/title1.html")); |
| + |
| + // Navigate away before a FMP is reported. |
| + NavigateToUntrackedUrl(); |
| + |
| + histogram_tester_.ExpectUniqueSample( |
| + internal::kHistogramFirstMeaningfulPaintStatus, |
| + internal::FMP_DID_NOT_REACH_NETWORK_STABLE, 1); |
| + histogram_tester_.ExpectTotalCount( |
| + internal::kHistogramFirstMeaningfulPaint, 0); |
| + histogram_tester_.ExpectTotalCount( |
| + internal::kHistogramParseStartToFirstMeaningfulPaint, 0); |
| +} |