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

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

Issue 2331053003: Add common page filtering logic for page load metrics. (Closed)
Patch Set: fixup Created 4 years, 3 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 f766b71b7986b4fafaaa3df9660b378f5d7e2943..26b9ec70113f051ad6e48c7af49f5e1237c3fbc3 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
+++ b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
@@ -8,19 +8,26 @@
#include "chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer.h"
#include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h"
#include "chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.h"
+#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_navigator_params.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/common/url_constants.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
+#include "content/public/browser/browser_thread.h"
#include "content/public/test/browser_test_utils.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"
+#include "net/test/url_request/url_request_failed_job.h"
+#include "net/url_request/url_request_context.h"
+#include "net/url_request/url_request_context_getter.h"
-class MetricsWebContentsObserverBrowserTest : public InProcessBrowserTest {
+class PageLoadMetricsBrowserTest : public InProcessBrowserTest {
public:
- MetricsWebContentsObserverBrowserTest() {}
- ~MetricsWebContentsObserverBrowserTest() override {}
+ PageLoadMetricsBrowserTest() {}
+ ~PageLoadMetricsBrowserTest() override {}
protected:
void NavigateToUntrackedUrl() {
@@ -29,10 +36,23 @@ class MetricsWebContentsObserverBrowserTest : public InProcessBrowserTest {
base::HistogramTester histogram_tester_;
- DISALLOW_COPY_AND_ASSIGN(MetricsWebContentsObserverBrowserTest);
+ DISALLOW_COPY_AND_ASSIGN(PageLoadMetricsBrowserTest);
};
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NoNavigation) {
+void FailAllNetworkTransactions(net::URLRequestContextGetter* getter) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
+ net::HttpCache* cache(
+ getter->GetURLRequestContext()->http_transaction_factory()->GetCache());
+ DCHECK(cache);
+ std::unique_ptr<net::FailingHttpTransactionFactory> factory(
+ new net::FailingHttpTransactionFactory(cache->GetSession(),
+ net::ERR_FAILED));
+ // Throw away old version; since this is a browser test, there is no
+ // need to restore the old state.
+ cache->SetHttpNetworkTransactionFactoryForTesting(std::move(factory));
+}
+
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NoNavigation) {
ASSERT_TRUE(embedded_test_server()->Start());
histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0);
@@ -41,7 +61,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NoNavigation) {
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 0);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NewPage) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NewPage) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(browser(),
@@ -58,8 +78,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NewPage) {
internal::kHistogramParseBlockedOnScriptExecution, 1);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- SamePageNavigation) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, SamePageNavigation) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(browser(),
@@ -73,8 +92,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 1);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- SameUrlNavigation) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, SameUrlNavigation) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(browser(),
@@ -90,8 +108,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 2);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- NonHtmlMainResource) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NonHtmlMainResource) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(browser(),
@@ -99,20 +116,53 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
NavigateToUntrackedUrl();
histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0);
+ histogram_tester_.ExpectTotalCount(page_load_metrics::internal::kErrorEvents,
+ 0);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- NonHttpOrHttpsUrl) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NonHttpOrHttpsUrl) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIVersionURL));
NavigateToUntrackedUrl();
histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0);
+ histogram_tester_.ExpectTotalCount(page_load_metrics::internal::kErrorEvents,
+ 0);
+}
+
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, HttpErrorPage) {
+ ASSERT_TRUE(embedded_test_server()->Start());
+
+ 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);
+}
+
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, ChromeErrorPage) {
+ ASSERT_TRUE(embedded_test_server()->Start());
+
+ scoped_refptr<net::URLRequestContextGetter> url_request_context_getter =
+ browser()->profile()->GetRequestContext();
+ content::BrowserThread::PostTask(
+ content::BrowserThread::IO, FROM_HERE,
+ base::Bind(&FailAllNetworkTransactions,
+ base::RetainedRef(url_request_context_getter)));
+
+ ui_test_utils::NavigateToURL(
+ browser(), embedded_test_server()->GetURL("/title1.html"));
+ NavigateToUntrackedUrl();
+
+ histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0);
+ histogram_tester_.ExpectTotalCount(page_load_metrics::internal::kErrorEvents,
+ 0);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- PreloadDocumentWrite) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, PreloadDocumentWrite) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(
@@ -124,8 +174,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
internal::kHistogramDocWriteParseStartToFirstContentfulPaint, 1);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- NoPreloadDocumentWrite) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NoPreloadDocumentWrite) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(
@@ -137,7 +186,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
internal::kHistogramDocWriteParseStartToFirstContentfulPaint, 0);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NoDocumentWrite) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NoDocumentWrite) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(browser(),
@@ -149,8 +198,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NoDocumentWrite) {
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- DocumentWriteBlock) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, DocumentWriteBlock) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(
@@ -162,8 +210,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 1);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- DocumentWriteReload) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, DocumentWriteReload) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(
@@ -191,8 +238,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
internal::kHistogramDocWriteBlockReloadCount, 2);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- DocumentWriteAsync) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, DocumentWriteAsync) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(
@@ -204,8 +250,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- DocumentWriteSameDomain) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, DocumentWriteSameDomain) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(
@@ -217,8 +262,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- NoDocumentWriteScript) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NoDocumentWriteScript) {
ASSERT_TRUE(embedded_test_server()->Start());
ui_test_utils::NavigateToURL(
@@ -230,7 +274,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, BadXhtml) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, BadXhtml) {
ASSERT_TRUE(embedded_test_server()->Start());
// When an XHTML page contains invalid XML, it causes a paint of the error
@@ -252,8 +296,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, BadXhtml) {
// Test code that aborts provisional navigations.
// TODO(csharrison): Move these to unit tests once the navigation API in content
// properly calls NavigationHandle/NavigationThrottle methods.
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- AbortNewNavigation) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, AbortNewNavigation) {
ASSERT_TRUE(embedded_test_server()->Start());
GURL url(embedded_test_server()->GetURL("/title1.html"));
@@ -276,7 +319,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
internal::kHistogramAbortNewNavigationBeforeCommit, 1);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, AbortReload) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, AbortReload) {
ASSERT_TRUE(embedded_test_server()->Start());
GURL url(embedded_test_server()->GetURL("/title1.html"));
@@ -297,7 +340,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, AbortReload) {
internal::kHistogramAbortReloadBeforeCommit, 1);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, AbortClose) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, AbortClose) {
ASSERT_TRUE(embedded_test_server()->Start());
GURL url(embedded_test_server()->GetURL("/title1.html"));
@@ -316,7 +359,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, AbortClose) {
1);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, AbortMultiple) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, AbortMultiple) {
ASSERT_TRUE(embedded_test_server()->Start());
GURL url(embedded_test_server()->GetURL("/title1.html"));
@@ -351,8 +394,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, AbortMultiple) {
internal::kHistogramAbortNewNavigationBeforeCommit, 2);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
- AbortClientRedirect) {
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, AbortClientRedirect) {
ASSERT_TRUE(embedded_test_server()->Start());
GURL first_url(embedded_test_server()->GetURL("/title1.html"));
@@ -380,7 +422,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
internal::kHistogramAbortClientRedirectBeforeCommit, 1);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest,
FirstMeaningfulPaintRecorded) {
ASSERT_TRUE(embedded_test_server()->Start());
@@ -409,7 +451,7 @@ IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
internal::kHistogramParseStartToFirstMeaningfulPaint, 1);
}
-IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest,
FirstMeaningfulPaintNotRecorded) {
ASSERT_TRUE(embedded_test_server()->Start());

Powered by Google App Engine
This is Rietveld 408576698