Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(665)

Unified Diff: chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc

Issue 2380773002: Prevent tracking metrics for cases such as 204s and downloads. (Closed)
Patch Set: fix comment, and disable tests for browser side navigation Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698