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..6f5a067239d6687362f0e5c311f01d6d4e64313a 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,51 @@ 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 the renderer finishes observing layouts. |
| + const int kNetworkIdleTime = 2000; |
| + const int kMargin = 500; |
| + const std::string javascript = base::StringPrintf( |
| + "setTimeout(() => window.domAutomationController.send(true), %d)", |
| + kNetworkIdleTime + kMargin); |
|
Kunihiko Sakamoto
2016/08/10 02:33:32
I noticed this test fails about once a ten times f
|
| + bool result; |
| + EXPECT_TRUE(content::ExecuteScriptAndExtractBool( |
| + browser()->tab_strip_model()->GetActiveWebContents(), |
| + javascript, &result)); |
| + EXPECT_TRUE(result); |
| + |
| + 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); |
| +} |