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 6077b6a2abcbb8bbb72cb6d448b736bac50c8b94..ab3266c19a2d20f5bd58511a3971787c31267095 100644 |
--- a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
+++ b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
@@ -21,6 +21,7 @@ |
#include "chrome/test/base/ui_test_utils.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/test/browser_test_utils.h" |
+#include "content/public/test/download_test_observer.h" |
#include "net/http/failing_http_transaction_factory.h" |
#include "net/http/http_cache.h" |
#include "net/test/embedded_test_server/embedded_test_server.h" |
@@ -38,6 +39,10 @@ class PageLoadMetricsBrowserTest : public InProcessBrowserTest { |
ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)); |
} |
+ bool NoPageLoadMetricsRecorded() { |
+ return histogram_tester_.GetTotalCountsForPrefix("PageLoad.").empty(); |
+ } |
+ |
base::HistogramTester histogram_tester_; |
DISALLOW_COPY_AND_ASSIGN(PageLoadMetricsBrowserTest); |
@@ -58,11 +63,7 @@ void FailAllNetworkTransactions(net::URLRequestContextGetter* getter) { |
IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NoNavigation) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
- |
- histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0); |
- histogram_tester_.ExpectTotalCount(internal::kHistogramDomContentLoaded, 0); |
- histogram_tester_.ExpectTotalCount(internal::kHistogramLoad, 0); |
- histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 0); |
+ EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NewPage) { |
@@ -80,6 +81,10 @@ IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NewPage) { |
internal::kHistogramParseBlockedOnScriptLoad, 1); |
histogram_tester_.ExpectTotalCount( |
internal::kHistogramParseBlockedOnScriptExecution, 1); |
+ |
+ // Verify that NoPageLoadMetricsRecorded returns false when PageLoad metrics |
+ // have been recorded. |
+ EXPECT_FALSE(NoPageLoadMetricsRecorded()); |
} |
IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, SamePageNavigation) { |
@@ -118,10 +123,7 @@ IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NonHtmlMainResource) { |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/circle.svg")); |
NavigateToUntrackedUrl(); |
- |
- histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0); |
- histogram_tester_.ExpectTotalCount(page_load_metrics::internal::kErrorEvents, |
- 0); |
+ EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NonHttpOrHttpsUrl) { |
@@ -129,10 +131,7 @@ IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NonHttpOrHttpsUrl) { |
ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIVersionURL)); |
NavigateToUntrackedUrl(); |
- |
- histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0); |
- histogram_tester_.ExpectTotalCount(page_load_metrics::internal::kErrorEvents, |
- 0); |
+ EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, HttpErrorPage) { |
@@ -141,10 +140,7 @@ IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, HttpErrorPage) { |
ui_test_utils::NavigateToURL( |
browser(), embedded_test_server()->GetURL("/page_load_metrics/404.html")); |
NavigateToUntrackedUrl(); |
- |
- histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0); |
- histogram_tester_.ExpectTotalCount(page_load_metrics::internal::kErrorEvents, |
- 0); |
+ EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, ChromeErrorPage) { |
@@ -162,10 +158,32 @@ IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, ChromeErrorPage) { |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/title1.html")); |
NavigateToUntrackedUrl(); |
+ EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, Ignore204Pages) { |
+ ASSERT_TRUE(embedded_test_server()->Start()); |
- histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0); |
- histogram_tester_.ExpectTotalCount(page_load_metrics::internal::kErrorEvents, |
- 0); |
+ ui_test_utils::NavigateToURL(browser(), |
+ embedded_test_server()->GetURL("/page204.html")); |
+ NavigateToUntrackedUrl(); |
+ EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, IgnoreDownloads) { |
+ ASSERT_TRUE(embedded_test_server()->Start()); |
+ |
+ content::DownloadTestObserverTerminal downloads_observer( |
+ content::BrowserContext::GetDownloadManager(browser()->profile()), |
+ 1, // == wait_count (only waiting for "download-test3.gif"). |
+ content::DownloadTestObserver::ON_DANGEROUS_DOWNLOAD_FAIL); |
+ |
+ ui_test_utils::NavigateToURL( |
+ browser(), embedded_test_server()->GetURL("/download-test3.gif")); |
+ downloads_observer.WaitForFinished(); |
+ |
+ NavigateToUntrackedUrl(); |
+ EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, PreloadDocumentWrite) { |