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

Side by Side Diff: chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc

Issue 2152683004: Refactor PageLoadMetricsObserver completion callback policy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@relevantloads
Patch Set: remove histogram checks that can be flaky due to immediate logging Created 4 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/macros.h" 5 #include "base/macros.h"
6 #include "base/test/histogram_tester.h" 6 #include "base/test/histogram_tester.h"
7 #include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_obse rver.h" 7 #include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_obse rver.h"
8 #include "chrome/browser/page_load_metrics/observers/document_write_page_load_me trics_observer.h" 8 #include "chrome/browser/page_load_metrics/observers/document_write_page_load_me trics_observer.h"
9 #include "chrome/common/url_constants.h"
9 #include "chrome/test/base/in_process_browser_test.h" 10 #include "chrome/test/base/in_process_browser_test.h"
10 #include "chrome/test/base/ui_test_utils.h" 11 #include "chrome/test/base/ui_test_utils.h"
11 #include "net/test/embedded_test_server/embedded_test_server.h" 12 #include "net/test/embedded_test_server/embedded_test_server.h"
12 13
13 class MetricsWebContentsObserverBrowserTest : public InProcessBrowserTest { 14 class MetricsWebContentsObserverBrowserTest : public InProcessBrowserTest {
14 public: 15 public:
15 MetricsWebContentsObserverBrowserTest() {} 16 MetricsWebContentsObserverBrowserTest() {}
16 ~MetricsWebContentsObserverBrowserTest() override {} 17 ~MetricsWebContentsObserverBrowserTest() override {}
17 18
18 protected: 19 protected:
19 base::HistogramTester histogram_tester_; 20 base::HistogramTester histogram_tester_;
20 21
21 DISALLOW_COPY_AND_ASSIGN(MetricsWebContentsObserverBrowserTest); 22 DISALLOW_COPY_AND_ASSIGN(MetricsWebContentsObserverBrowserTest);
22 }; 23 };
23 24
24 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NoNavigation) { 25 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NoNavigation) {
25 ASSERT_TRUE(embedded_test_server()->Start()); 26 ASSERT_TRUE(embedded_test_server()->Start());
26 27
28 histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0);
27 histogram_tester_.ExpectTotalCount(internal::kHistogramDomContentLoaded, 0); 29 histogram_tester_.ExpectTotalCount(internal::kHistogramDomContentLoaded, 0);
28 histogram_tester_.ExpectTotalCount(internal::kHistogramLoad, 0); 30 histogram_tester_.ExpectTotalCount(internal::kHistogramLoad, 0);
29 histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 0); 31 histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 0);
30 } 32 }
31 33
32 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NewPage) { 34 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, NewPage) {
33 ASSERT_TRUE(embedded_test_server()->Start()); 35 ASSERT_TRUE(embedded_test_server()->Start());
34 36
35 ui_test_utils::NavigateToURL(browser(), 37 ui_test_utils::NavigateToURL(browser(),
36 embedded_test_server()->GetURL("/title1.html")); 38 embedded_test_server()->GetURL("/title1.html"));
(...skipping 18 matching lines...) Expand all
55 browser(), embedded_test_server()->GetURL("/title1.html#hash")); 57 browser(), embedded_test_server()->GetURL("/title1.html#hash"));
56 ui_test_utils::NavigateToURL(browser(), 58 ui_test_utils::NavigateToURL(browser(),
57 embedded_test_server()->GetURL("/title2.html")); 59 embedded_test_server()->GetURL("/title2.html"));
58 60
59 histogram_tester_.ExpectTotalCount(internal::kHistogramDomContentLoaded, 1); 61 histogram_tester_.ExpectTotalCount(internal::kHistogramDomContentLoaded, 1);
60 histogram_tester_.ExpectTotalCount(internal::kHistogramLoad, 1); 62 histogram_tester_.ExpectTotalCount(internal::kHistogramLoad, 1);
61 histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 1); 63 histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 1);
62 } 64 }
63 65
64 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, 66 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
67 SameUrlNavigation) {
68 ASSERT_TRUE(embedded_test_server()->Start());
69
70 ui_test_utils::NavigateToURL(browser(),
71 embedded_test_server()->GetURL("/title1.html"));
72 ui_test_utils::NavigateToURL(browser(),
73 embedded_test_server()->GetURL("/title1.html"));
74 ui_test_utils::NavigateToURL(browser(),
75 embedded_test_server()->GetURL("/title2.html"));
76
77 // We expect one histogram sample for each navigation to title1.html.
78 histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 2);
79 histogram_tester_.ExpectTotalCount(internal::kHistogramDomContentLoaded, 2);
80 histogram_tester_.ExpectTotalCount(internal::kHistogramLoad, 2);
81 histogram_tester_.ExpectTotalCount(internal::kHistogramFirstLayout, 2);
82 }
83
84 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
85 NonHtmlMainResource) {
86 ASSERT_TRUE(embedded_test_server()->Start());
87
88 ui_test_utils::NavigateToURL(browser(),
89 embedded_test_server()->GetURL("/simple.svg"));
90 ui_test_utils::NavigateToURL(browser(),
91 embedded_test_server()->GetURL("/title1.html"));
92
93 histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0);
94 }
95
96 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
97 NonHttpOrHttpsUrl) {
98 ASSERT_TRUE(embedded_test_server()->Start());
99
100 ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIVersionURL));
101 ui_test_utils::NavigateToURL(browser(),
102 embedded_test_server()->GetURL("/title1.html"));
103
104 histogram_tester_.ExpectTotalCount(internal::kHistogramCommit, 0);
105 }
106
107 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
65 PreloadDocumentWrite) { 108 PreloadDocumentWrite) {
66 ASSERT_TRUE(embedded_test_server()->Start()); 109 ASSERT_TRUE(embedded_test_server()->Start());
67 110
68 ui_test_utils::NavigateToURL( 111 ui_test_utils::NavigateToURL(
69 browser(), embedded_test_server()->GetURL( 112 browser(), embedded_test_server()->GetURL(
70 "/page_load_metrics/document_write_external_script.html")); 113 "/page_load_metrics/document_write_external_script.html"));
71 ui_test_utils::NavigateToURL(browser(), 114 ui_test_utils::NavigateToURL(browser(),
72 embedded_test_server()->GetURL("/title2.html")); 115 embedded_test_server()->GetURL("/title2.html"));
73 116
74 histogram_tester_.ExpectTotalCount( 117 histogram_tester_.ExpectTotalCount(
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 embedded_test_server()->GetURL("/title2.html")); 184 embedded_test_server()->GetURL("/title2.html"));
142 185
143 histogram_tester_.ExpectTotalCount( 186 histogram_tester_.ExpectTotalCount(
144 internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 1); 187 internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 1);
145 188
146 histogram_tester_.ExpectTotalCount( 189 histogram_tester_.ExpectTotalCount(
147 internal::kHistogramDocWriteBlockReloadCount, 2); 190 internal::kHistogramDocWriteBlockReloadCount, 2);
148 } 191 }
149 192
150 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest, 193 IN_PROC_BROWSER_TEST_F(MetricsWebContentsObserverBrowserTest,
151 DocumentWriteASync) { 194 DocumentWriteAsync) {
152 ASSERT_TRUE(embedded_test_server()->Start()); 195 ASSERT_TRUE(embedded_test_server()->Start());
153 196
154 ui_test_utils::NavigateToURL( 197 ui_test_utils::NavigateToURL(
155 browser(), embedded_test_server()->GetURL( 198 browser(), embedded_test_server()->GetURL(
156 "/page_load_metrics/document_write_script_async.html")); 199 "/page_load_metrics/document_write_script_async.html"));
157 ui_test_utils::NavigateToURL(browser(), 200 ui_test_utils::NavigateToURL(browser(),
158 embedded_test_server()->GetURL("/title2.html")); 201 embedded_test_server()->GetURL("/title2.html"));
159 202
160 histogram_tester_.ExpectTotalCount( 203 histogram_tester_.ExpectTotalCount(
161 internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0); 204 internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0);
(...skipping 19 matching lines...) Expand all
181 224
182 ui_test_utils::NavigateToURL( 225 ui_test_utils::NavigateToURL(
183 browser(), embedded_test_server()->GetURL( 226 browser(), embedded_test_server()->GetURL(
184 "/page_load_metrics/document_write_no_script.html")); 227 "/page_load_metrics/document_write_no_script.html"));
185 ui_test_utils::NavigateToURL(browser(), 228 ui_test_utils::NavigateToURL(browser(),
186 embedded_test_server()->GetURL("/title2.html")); 229 embedded_test_server()->GetURL("/title2.html"));
187 230
188 histogram_tester_.ExpectTotalCount( 231 histogram_tester_.ExpectTotalCount(
189 internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0); 232 internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 0);
190 } 233 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698