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 57e3b3ea0f6354e84656c09afbaf53552233374f..bf18d3bdbefce717fbc9704108cca9cfbb298720 100644 |
--- a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
+++ b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc |
@@ -7,7 +7,6 @@ |
#include "base/files/scoped_temp_dir.h" |
#include "base/macros.h" |
#include "base/test/histogram_tester.h" |
-#include "base/test/scoped_feature_list.h" |
#include "base/threading/thread_restrictions.h" |
#include "base/time/time.h" |
#include "chrome/browser/page_load_metrics/metrics_web_contents_observer.h" |
@@ -22,7 +21,7 @@ |
#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/chrome_features.h" |
+#include "chrome/common/page_load_metrics/page_load_metrics_messages.h" |
#include "chrome/common/pref_names.h" |
#include "chrome/common/url_constants.h" |
#include "chrome/test/base/in_process_browser_test.h" |
@@ -45,8 +44,6 @@ |
#include "net/url_request/url_request_context_getter.h" |
namespace { |
-using IPCType = |
- page_load_metrics::MetricsWebContentsObserver::TestingObserver::IPCType; |
void FailAllNetworkTransactions(net::URLRequestContextGetter* getter) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
@@ -195,81 +192,14 @@ |
using TimingField = PageLoadMetricsWaiter::TimingField; |
-class IPCTypeVerifier |
- : public page_load_metrics::MetricsWebContentsObserver::TestingObserver { |
- public: |
- explicit IPCTypeVerifier(content::WebContents* web_contents) |
- : TestingObserver(web_contents) {} |
- |
- ~IPCTypeVerifier() override { AssertValidUpdateState(); } |
- |
- void ExpectNoTimingUpdates() { expect_updates_ = false; } |
- |
- void DidReceiveTimingUpdate(IPCType type) override { |
- ++num_updates_; |
- const bool is_mojo_enabled = |
- base::FeatureList::IsEnabled(features::kPageLoadMetricsMojofication); |
- switch (type) { |
- case IPCType::LEGACY: |
- ASSERT_FALSE(is_mojo_enabled); |
- break; |
- case IPCType::MOJO: |
- ASSERT_TRUE(is_mojo_enabled); |
- break; |
- default: |
- FAIL() << "Unknown IPCType"; |
- break; |
- } |
- } |
- |
- private: |
- void AssertValidUpdateState() { |
- ASSERT_EQ(expect_updates_, num_updates_ > 0); |
- } |
- |
- bool expect_updates_ = true; |
- int num_updates_ = 0; |
-}; |
- |
} // namespace |
-class PageLoadMetricsBrowserTest : public InProcessBrowserTest, |
- public testing::WithParamInterface<IPCType> { |
+class PageLoadMetricsBrowserTest : public InProcessBrowserTest { |
public: |
PageLoadMetricsBrowserTest() {} |
~PageLoadMetricsBrowserTest() override {} |
protected: |
- void SetUpCommandLine(base::CommandLine* command_line) override { |
- InProcessBrowserTest::SetUpCommandLine(command_line); |
- |
- // We need to set the feature state before the render process is created, |
- // in order for it to inherit the feature state from the browser process. |
- // SetUp() runs too early, and SetUpOnMainThread() runs too late. |
- const IPCType ipc_type = GetParam(); |
- switch (ipc_type) { |
- case IPCType::LEGACY: |
- scoped_feature_list_.InitAndDisableFeature( |
- features::kPageLoadMetricsMojofication); |
- break; |
- case IPCType::MOJO: |
- scoped_feature_list_.InitAndEnableFeature( |
- features::kPageLoadMetricsMojofication); |
- break; |
- default: |
- CHECK(false) << "Unknown IPCType."; |
- break; |
- } |
- } |
- |
- void SetUpOnMainThread() override { |
- InProcessBrowserTest::SetUpOnMainThread(); |
- |
- content::WebContents* web_contents = |
- browser()->tab_strip_model()->GetActiveWebContents(); |
- ipc_type_verifier_ = base::MakeUnique<IPCTypeVerifier>(web_contents); |
- } |
- |
// Force navigation to a new page, so the currently tracked page load runs its |
// OnComplete callback. You should prefer to use PageLoadMetricsWaiter, and |
// only use NavigateToUntrackedUrl for cases where the waiter isn't |
@@ -295,23 +225,18 @@ |
return base::MakeUnique<PageLoadMetricsWaiter>(web_contents); |
} |
- void ExpectNoTimingUpdates() { ipc_type_verifier_->ExpectNoTimingUpdates(); } |
- |
- base::test::ScopedFeatureList scoped_feature_list_; |
base::HistogramTester histogram_tester_; |
- std::unique_ptr<IPCTypeVerifier> ipc_type_verifier_; |
private: |
DISALLOW_COPY_AND_ASSIGN(PageLoadMetricsBrowserTest); |
}; |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NoNavigation) { |
- ExpectNoTimingUpdates(); |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NoNavigation) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NewPage) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NewPage) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -342,7 +267,7 @@ |
EXPECT_FALSE(NoPageLoadMetricsRecorded()); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NoPaintForEmptyDocument) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NoPaintForEmptyDocument) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -360,7 +285,7 @@ |
0); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, |
NoPaintForEmptyDocumentInChildFrame) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
@@ -383,7 +308,7 @@ |
0); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, PaintInChildFrame) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, PaintInChildFrame) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
GURL a_url(embedded_test_server()->GetURL("/page_load_metrics/iframe.html")); |
@@ -400,7 +325,7 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstPaint, 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, PaintInMultipleChildFrames) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, PaintInMultipleChildFrames) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
GURL a_url(embedded_test_server()->GetURL("/page_load_metrics/iframes.html")); |
@@ -418,7 +343,7 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstPaint, 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, PaintInMainAndChildFrame) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, PaintInMainAndChildFrame) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
GURL a_url(embedded_test_server()->GetURL( |
@@ -439,7 +364,7 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstPaint, 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, SameDocumentNavigation) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, SameDocumentNavigation) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -463,7 +388,7 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, SameUrlNavigation) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, SameUrlNavigation) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -490,36 +415,33 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 2); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NonHtmlMainResource) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NonHtmlMainResource) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/circle.svg")); |
NavigateToUntrackedUrl(); |
- ExpectNoTimingUpdates(); |
EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NonHttpOrHttpsUrl) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NonHttpOrHttpsUrl) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIVersionURL)); |
NavigateToUntrackedUrl(); |
- ExpectNoTimingUpdates(); |
EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, HttpErrorPage) { |
+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(); |
- ExpectNoTimingUpdates(); |
EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, ChromeErrorPage) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, ChromeErrorPage) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
// Configure the network stack to fail all attempted loads with a network |
@@ -534,21 +456,19 @@ |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/title1.html")); |
NavigateToUntrackedUrl(); |
- ExpectNoTimingUpdates(); |
EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, Ignore204Pages) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, Ignore204Pages) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
ui_test_utils::NavigateToURL(browser(), |
embedded_test_server()->GetURL("/page204.html")); |
NavigateToUntrackedUrl(); |
- ExpectNoTimingUpdates(); |
EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, IgnoreDownloads) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, IgnoreDownloads) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
base::ThreadRestrictions::ScopedAllowIO allow_io; |
@@ -566,11 +486,10 @@ |
downloads_observer.WaitForFinished(); |
NavigateToUntrackedUrl(); |
- ExpectNoTimingUpdates(); |
EXPECT_TRUE(NoPageLoadMetricsRecorded()); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, PreloadDocumentWrite) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, PreloadDocumentWrite) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -585,7 +504,7 @@ |
internal::kHistogramDocWriteParseStartToFirstContentfulPaint, 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NoPreloadDocumentWrite) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NoPreloadDocumentWrite) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -601,7 +520,7 @@ |
internal::kHistogramDocWriteParseStartToFirstContentfulPaint, 0); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NoDocumentWrite) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NoDocumentWrite) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -620,7 +539,7 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramDocWriteBlockCount, 0); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, DocumentWriteBlock) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, DocumentWriteBlock) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -636,7 +555,7 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramDocWriteBlockCount, 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, DocumentWriteReload) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, DocumentWriteReload) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -680,7 +599,7 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramDocWriteBlockCount, 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, DocumentWriteAsync) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, DocumentWriteAsync) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -697,7 +616,7 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramDocWriteBlockCount, 0); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, DocumentWriteSameDomain) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, DocumentWriteSameDomain) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -714,7 +633,7 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramDocWriteBlockCount, 0); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, NoDocumentWriteScript) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, NoDocumentWriteScript) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -737,7 +656,7 @@ |
#else |
#define MAYBE_BadXhtml BadXhtml |
#endif |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, MAYBE_BadXhtml) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, MAYBE_BadXhtml) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -772,7 +691,7 @@ |
// 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_P(PageLoadMetricsBrowserTest, AbortNewNavigation) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, AbortNewNavigation) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
GURL url(embedded_test_server()->GetURL("/title1.html")); |
@@ -796,7 +715,7 @@ |
internal::kHistogramAbortNewNavigationBeforeCommit, 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, AbortReload) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, AbortReload) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
GURL url(embedded_test_server()->GetURL("/title1.html")); |
@@ -824,7 +743,7 @@ |
#else |
#define MAYBE_AbortClose AbortClose |
#endif |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, MAYBE_AbortClose) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, MAYBE_AbortClose) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
GURL url(embedded_test_server()->GetURL("/title1.html")); |
@@ -841,10 +760,9 @@ |
histogram_tester_.ExpectTotalCount(internal::kHistogramAbortCloseBeforeCommit, |
1); |
- ExpectNoTimingUpdates(); |
-} |
- |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, AbortMultiple) { |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, AbortMultiple) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
GURL url(embedded_test_server()->GetURL("/title1.html")); |
@@ -878,7 +796,7 @@ |
internal::kHistogramAbortNewNavigationBeforeCommit, 2); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, |
NoAbortMetricsOnClientRedirect) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
@@ -911,7 +829,7 @@ |
.empty()); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, |
FirstMeaningfulPaintRecorded) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
@@ -930,7 +848,7 @@ |
internal::kHistogramParseStartToFirstMeaningfulPaint, 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, |
FirstMeaningfulPaintNotRecorded) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
@@ -956,7 +874,7 @@ |
internal::kHistogramParseStartToFirstMeaningfulPaint, 0); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, |
NoStatePrefetchObserverCacheable) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
@@ -974,7 +892,7 @@ |
"Prerender.none_PrefetchTTFCP.Reference.Cacheable.Visible", 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, |
NoStatePrefetchObserverNoStore) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
@@ -992,7 +910,7 @@ |
"Prerender.none_PrefetchTTFCP.Reference.Cacheable.Visible", 0); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, CSSTiming) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, CSSTiming) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -1016,7 +934,7 @@ |
"PageLoad.CSSTiming.ParseAndUpdate.BeforeFirstContentfulPaint", 1); |
} |
-IN_PROC_BROWSER_TEST_P(PageLoadMetricsBrowserTest, PayloadSize) { |
+IN_PROC_BROWSER_TEST_F(PageLoadMetricsBrowserTest, PayloadSize) { |
ASSERT_TRUE(embedded_test_server()->Start()); |
auto waiter = CreatePageLoadMetricsWaiter(); |
@@ -1035,8 +953,3 @@ |
// of the main HTML response). |
histogram_tester_.ExpectBucketCount(internal::kHistogramTotalBytes, 10, 1); |
} |
- |
-INSTANTIATE_TEST_CASE_P( |
- /* no prefix */, |
- PageLoadMetricsBrowserTest, |
- testing::Values(IPCType::LEGACY, IPCType::MOJO)); |