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

Side by Side Diff: chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc

Issue 2874663005: [Page Load Metrics] Add mojom file to page load metrics. (Closed)
Patch Set: Remove unnecessary variable Created 3 years, 7 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 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 "chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_ observer.h" 5 #include "chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_ observer.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h" 9 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h"
10 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h" 10 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h"
11 #include "third_party/WebKit/public/platform/WebMouseEvent.h" 11 #include "third_party/WebKit/public/platform/WebMouseEvent.h"
12 12
13 namespace { 13 namespace {
14 const char kExampleUrl[] = "http://www.example.com/"; 14 const char kExampleUrl[] = "http://www.example.com/";
15 const char kGoogleSearchResultsUrl[] = "https://www.google.com/webhp?q=d"; 15 const char kGoogleSearchResultsUrl[] = "https://www.google.com/webhp?q=d";
16 } // namespace 16 } // namespace
17 17
18 class FromGWSPageLoadMetricsObserverTest 18 class FromGWSPageLoadMetricsObserverTest
19 : public page_load_metrics::PageLoadMetricsObserverTestHarness { 19 : public page_load_metrics::PageLoadMetricsObserverTestHarness {
20 public: 20 public:
21 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override { 21 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override {
22 FromGWSPageLoadMetricsObserver* observer = 22 FromGWSPageLoadMetricsObserver* observer =
23 new FromGWSPageLoadMetricsObserver(); 23 new FromGWSPageLoadMetricsObserver();
24 tracker->AddObserver(base::WrapUnique(observer)); 24 tracker->AddObserver(base::WrapUnique(observer));
25 } 25 }
26 26
27 void SimulateTimingWithoutPaint() { 27 void SimulateTimingWithoutPaint() {
28 page_load_metrics::PageLoadTiming timing; 28 page_load_metrics::mojom::PageLoadTiming timing;
29 page_load_metrics::InitPageLoadTimingForTest(&timing);
29 timing.navigation_start = base::Time::FromDoubleT(1); 30 timing.navigation_start = base::Time::FromDoubleT(1);
30 SimulateTimingUpdate(timing); 31 SimulateTimingUpdate(timing);
31 } 32 }
32 33
33 void SimulateTimingWithFirstPaint() { 34 void SimulateTimingWithFirstPaint() {
34 page_load_metrics::PageLoadTiming timing; 35 page_load_metrics::mojom::PageLoadTiming timing;
36 page_load_metrics::InitPageLoadTimingForTest(&timing);
35 timing.navigation_start = base::Time::FromDoubleT(1); 37 timing.navigation_start = base::Time::FromDoubleT(1);
36 timing.paint_timing.first_paint = base::TimeDelta::FromMilliseconds(0); 38 timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(0);
37 PopulateRequiredTimingFields(&timing); 39 PopulateRequiredTimingFields(&timing);
38 SimulateTimingUpdate(timing); 40 SimulateTimingUpdate(timing);
39 } 41 }
40 42
41 void SimulateMouseEvent() { 43 void SimulateMouseEvent() {
42 blink::WebMouseEvent mouse_event( 44 blink::WebMouseEvent mouse_event(
43 blink::WebInputEvent::kMouseDown, blink::WebInputEvent::kNoModifiers, 45 blink::WebInputEvent::kMouseDown, blink::WebInputEvent::kNoModifiers,
44 blink::WebInputEvent::kTimeStampForTesting); 46 blink::WebInputEvent::kTimeStampForTesting);
45 mouse_event.button = blink::WebMouseEvent::Button::kLeft; 47 mouse_event.button = blink::WebMouseEvent::Button::kLeft;
46 mouse_event.SetPositionInWidget(7, 7); 48 mouse_event.SetPositionInWidget(7, 7);
47 mouse_event.click_count = 1; 49 mouse_event.click_count = 1;
48 SimulateInputEvent(mouse_event); 50 SimulateInputEvent(mouse_event);
49 } 51 }
50 }; 52 };
51 53
52 class FromGWSPageLoadMetricsLoggerTest : public testing::Test {}; 54 class FromGWSPageLoadMetricsLoggerTest : public testing::Test {};
53 55
54 TEST_F(FromGWSPageLoadMetricsObserverTest, NoMetrics) { 56 TEST_F(FromGWSPageLoadMetricsObserverTest, NoMetrics) {
55 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 57 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
56 0); 58 0);
57 } 59 }
58 60
59 TEST_F(FromGWSPageLoadMetricsObserverTest, NoPreviousCommittedUrl) { 61 TEST_F(FromGWSPageLoadMetricsObserverTest, NoPreviousCommittedUrl) {
60 page_load_metrics::PageLoadTiming timing; 62 page_load_metrics::mojom::PageLoadTiming timing;
63 page_load_metrics::InitPageLoadTimingForTest(&timing);
61 timing.navigation_start = base::Time::FromDoubleT(1); 64 timing.navigation_start = base::Time::FromDoubleT(1);
62 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 65 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
63 PopulateRequiredTimingFields(&timing); 66 PopulateRequiredTimingFields(&timing);
64 NavigateAndCommit(GURL(kExampleUrl)); 67 NavigateAndCommit(GURL(kExampleUrl));
65 68
66 SimulateTimingUpdate(timing); 69 SimulateTimingUpdate(timing);
67 70
68 // Navigate again to force logging. 71 // Navigate again to force logging.
69 NavigateAndCommit(GURL("http://www.final.com")); 72 NavigateAndCommit(GURL("http://www.final.com"));
70 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 73 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
71 0); 74 0);
72 } 75 }
73 76
74 TEST_F(FromGWSPageLoadMetricsObserverTest, NonSearchPreviousCommittedUrl) { 77 TEST_F(FromGWSPageLoadMetricsObserverTest, NonSearchPreviousCommittedUrl) {
75 page_load_metrics::PageLoadTiming timing; 78 page_load_metrics::mojom::PageLoadTiming timing;
79 page_load_metrics::InitPageLoadTimingForTest(&timing);
76 timing.navigation_start = base::Time::FromDoubleT(1); 80 timing.navigation_start = base::Time::FromDoubleT(1);
77 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 81 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
78 PopulateRequiredTimingFields(&timing); 82 PopulateRequiredTimingFields(&timing);
79 NavigateAndCommit(GURL("http://www.other.com")); 83 NavigateAndCommit(GURL("http://www.other.com"));
80 NavigateAndCommit(GURL(kExampleUrl)); 84 NavigateAndCommit(GURL(kExampleUrl));
81 85
82 SimulateTimingUpdate(timing); 86 SimulateTimingUpdate(timing);
83 87
84 // Navigate again to force logging. 88 // Navigate again to force logging.
85 NavigateAndCommit(GURL("http://www.final.com")); 89 NavigateAndCommit(GURL("http://www.final.com"));
86 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 90 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
87 0); 91 0);
88 } 92 }
89 93
90 TEST_F(FromGWSPageLoadMetricsObserverTest, 94 TEST_F(FromGWSPageLoadMetricsObserverTest,
91 GoogleNonSearchPreviousCommittedUrl1) { 95 GoogleNonSearchPreviousCommittedUrl1) {
92 page_load_metrics::PageLoadTiming timing; 96 page_load_metrics::mojom::PageLoadTiming timing;
97 page_load_metrics::InitPageLoadTimingForTest(&timing);
93 timing.navigation_start = base::Time::FromDoubleT(1); 98 timing.navigation_start = base::Time::FromDoubleT(1);
94 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 99 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
95 PopulateRequiredTimingFields(&timing); 100 PopulateRequiredTimingFields(&timing);
96 NavigateAndCommit(GURL("https://www.google.com/")); 101 NavigateAndCommit(GURL("https://www.google.com/"));
97 NavigateAndCommit(GURL(kExampleUrl)); 102 NavigateAndCommit(GURL(kExampleUrl));
98 103
99 SimulateTimingUpdate(timing); 104 SimulateTimingUpdate(timing);
100 105
101 // Navigate again to force logging. 106 // Navigate again to force logging.
102 NavigateAndCommit(GURL("http://www.final.com")); 107 NavigateAndCommit(GURL("http://www.final.com"));
103 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 108 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
104 0); 109 0);
105 } 110 }
106 111
107 TEST_F(FromGWSPageLoadMetricsObserverTest, 112 TEST_F(FromGWSPageLoadMetricsObserverTest,
108 GoogleNonSearchPreviousCommittedUrl2) { 113 GoogleNonSearchPreviousCommittedUrl2) {
109 page_load_metrics::PageLoadTiming timing; 114 page_load_metrics::mojom::PageLoadTiming timing;
115 page_load_metrics::InitPageLoadTimingForTest(&timing);
110 timing.navigation_start = base::Time::FromDoubleT(1); 116 timing.navigation_start = base::Time::FromDoubleT(1);
111 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 117 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
112 PopulateRequiredTimingFields(&timing); 118 PopulateRequiredTimingFields(&timing);
113 // Navigation from /search, but missing a query string, so can't have been a 119 // Navigation from /search, but missing a query string, so can't have been a
114 // search results page. 120 // search results page.
115 NavigateAndCommit(GURL("https://www.google.com/search?a=b&c=d")); 121 NavigateAndCommit(GURL("https://www.google.com/search?a=b&c=d"));
116 NavigateAndCommit(GURL(kExampleUrl)); 122 NavigateAndCommit(GURL(kExampleUrl));
117 123
118 SimulateTimingUpdate(timing); 124 SimulateTimingUpdate(timing);
119 125
120 // Navigate again to force logging. 126 // Navigate again to force logging.
121 NavigateAndCommit(GURL("http://www.final.com")); 127 NavigateAndCommit(GURL("http://www.final.com"));
122 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 128 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
123 0); 129 0);
124 } 130 }
125 131
126 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl1) { 132 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl1) {
127 page_load_metrics::PageLoadTiming timing; 133 page_load_metrics::mojom::PageLoadTiming timing;
134 page_load_metrics::InitPageLoadTimingForTest(&timing);
128 timing.navigation_start = base::Time::FromDoubleT(1); 135 timing.navigation_start = base::Time::FromDoubleT(1);
129 timing.parse_timing.parse_start = base::TimeDelta::FromMilliseconds(10); 136 timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(10);
130 timing.paint_timing.first_paint = base::TimeDelta::FromMilliseconds(20); 137 timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(20);
131 timing.paint_timing.first_contentful_paint = 138 timing.paint_timing->first_contentful_paint =
132 base::TimeDelta::FromMilliseconds(40); 139 base::TimeDelta::FromMilliseconds(40);
133 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(80); 140 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(80);
134 timing.paint_timing.first_image_paint = 141 timing.paint_timing->first_image_paint =
135 base::TimeDelta::FromMilliseconds(160); 142 base::TimeDelta::FromMilliseconds(160);
136 timing.parse_timing.parse_stop = base::TimeDelta::FromMilliseconds(320); 143 timing.parse_timing->parse_stop = base::TimeDelta::FromMilliseconds(320);
137 timing.document_timing.dom_content_loaded_event_start = 144 timing.document_timing->dom_content_loaded_event_start =
138 base::TimeDelta::FromMilliseconds(640); 145 base::TimeDelta::FromMilliseconds(640);
139 timing.document_timing.load_event_start = 146 timing.document_timing->load_event_start =
140 base::TimeDelta::FromMilliseconds(1280); 147 base::TimeDelta::FromMilliseconds(1280);
141 PopulateRequiredTimingFields(&timing); 148 PopulateRequiredTimingFields(&timing);
142 NavigateAndCommit(GURL("https://www.google.com/webhp?q=test")); 149 NavigateAndCommit(GURL("https://www.google.com/webhp?q=test"));
143 NavigateAndCommit(GURL(kExampleUrl)); 150 NavigateAndCommit(GURL(kExampleUrl));
144 151
145 SimulateTimingUpdate(timing); 152 SimulateTimingUpdate(timing);
146 153
147 // Navigate again to force logging. 154 // Navigate again to force logging.
148 NavigateAndCommit(GURL("http://www.final.com")); 155 NavigateAndCommit(GURL("http://www.final.com"));
149 156
150 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSParseStart, 1); 157 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSParseStart, 1);
151 histogram_tester().ExpectBucketCount( 158 histogram_tester().ExpectBucketCount(
152 internal::kHistogramFromGWSParseStart, 159 internal::kHistogramFromGWSParseStart,
153 timing.parse_timing.parse_start.value().InMilliseconds(), 1); 160 timing.parse_timing->parse_start.value().InMilliseconds(), 1);
154 161
155 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstPaint, 1); 162 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstPaint, 1);
156 histogram_tester().ExpectBucketCount( 163 histogram_tester().ExpectBucketCount(
157 internal::kHistogramFromGWSFirstPaint, 164 internal::kHistogramFromGWSFirstPaint,
158 timing.paint_timing.first_paint.value().InMilliseconds(), 1); 165 timing.paint_timing->first_paint.value().InMilliseconds(), 1);
159 166
160 histogram_tester().ExpectTotalCount( 167 histogram_tester().ExpectTotalCount(
161 internal::kHistogramFromGWSFirstContentfulPaint, 1); 168 internal::kHistogramFromGWSFirstContentfulPaint, 1);
162 histogram_tester().ExpectBucketCount( 169 histogram_tester().ExpectBucketCount(
163 internal::kHistogramFromGWSFirstContentfulPaint, 170 internal::kHistogramFromGWSFirstContentfulPaint,
164 timing.paint_timing.first_contentful_paint.value().InMilliseconds(), 1); 171 timing.paint_timing->first_contentful_paint.value().InMilliseconds(), 1);
165 172
166 histogram_tester().ExpectTotalCount( 173 histogram_tester().ExpectTotalCount(
167 internal::kHistogramFromGWSParseStartToFirstContentfulPaint, 1); 174 internal::kHistogramFromGWSParseStartToFirstContentfulPaint, 1);
168 histogram_tester().ExpectBucketCount( 175 histogram_tester().ExpectBucketCount(
169 internal::kHistogramFromGWSParseStartToFirstContentfulPaint, 176 internal::kHistogramFromGWSParseStartToFirstContentfulPaint,
170 (timing.paint_timing.first_contentful_paint.value() - 177 (timing.paint_timing->first_contentful_paint.value() -
171 timing.parse_timing.parse_start.value()) 178 timing.parse_timing->parse_start.value())
172 .InMilliseconds(), 179 .InMilliseconds(),
173 1); 180 1);
174 181
175 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 182 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
176 1); 183 1);
177 histogram_tester().ExpectBucketCount( 184 histogram_tester().ExpectBucketCount(
178 internal::kHistogramFromGWSFirstTextPaint, 185 internal::kHistogramFromGWSFirstTextPaint,
179 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 186 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
180 187
181 histogram_tester().ExpectTotalCount( 188 histogram_tester().ExpectTotalCount(
182 internal::kHistogramFromGWSFirstImagePaint, 1); 189 internal::kHistogramFromGWSFirstImagePaint, 1);
183 histogram_tester().ExpectBucketCount( 190 histogram_tester().ExpectBucketCount(
184 internal::kHistogramFromGWSFirstImagePaint, 191 internal::kHistogramFromGWSFirstImagePaint,
185 timing.paint_timing.first_image_paint.value().InMilliseconds(), 1); 192 timing.paint_timing->first_image_paint.value().InMilliseconds(), 1);
186 193
187 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSParseDuration, 194 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSParseDuration,
188 1); 195 1);
189 histogram_tester().ExpectBucketCount(internal::kHistogramFromGWSParseDuration, 196 histogram_tester().ExpectBucketCount(
190 (timing.parse_timing.parse_stop.value() - 197 internal::kHistogramFromGWSParseDuration,
191 timing.parse_timing.parse_start.value()) 198 (timing.parse_timing->parse_stop.value() -
192 .InMilliseconds(), 199 timing.parse_timing->parse_start.value())
193 1); 200 .InMilliseconds(),
201 1);
194 202
195 histogram_tester().ExpectTotalCount( 203 histogram_tester().ExpectTotalCount(
196 internal::kHistogramFromGWSDomContentLoaded, 1); 204 internal::kHistogramFromGWSDomContentLoaded, 1);
197 histogram_tester().ExpectBucketCount( 205 histogram_tester().ExpectBucketCount(
198 internal::kHistogramFromGWSDomContentLoaded, 206 internal::kHistogramFromGWSDomContentLoaded,
199 timing.document_timing.dom_content_loaded_event_start.value() 207 timing.document_timing->dom_content_loaded_event_start.value()
200 .InMilliseconds(), 208 .InMilliseconds(),
201 1); 209 1);
202 210
203 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSLoad, 1); 211 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSLoad, 1);
204 histogram_tester().ExpectBucketCount( 212 histogram_tester().ExpectBucketCount(
205 internal::kHistogramFromGWSLoad, 213 internal::kHistogramFromGWSLoad,
206 timing.document_timing.load_event_start.value().InMilliseconds(), 1); 214 timing.document_timing->load_event_start.value().InMilliseconds(), 1);
207 } 215 }
208 216
209 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl2) { 217 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl2) {
210 page_load_metrics::PageLoadTiming timing; 218 page_load_metrics::mojom::PageLoadTiming timing;
219 page_load_metrics::InitPageLoadTimingForTest(&timing);
211 timing.navigation_start = base::Time::FromDoubleT(1); 220 timing.navigation_start = base::Time::FromDoubleT(1);
212 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 221 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
213 PopulateRequiredTimingFields(&timing); 222 PopulateRequiredTimingFields(&timing);
214 NavigateAndCommit(GURL("https://www.google.com/#q=test")); 223 NavigateAndCommit(GURL("https://www.google.com/#q=test"));
215 NavigateAndCommit(GURL(kExampleUrl)); 224 NavigateAndCommit(GURL(kExampleUrl));
216 225
217 SimulateTimingUpdate(timing); 226 SimulateTimingUpdate(timing);
218 227
219 // Navigate again to force logging. 228 // Navigate again to force logging.
220 NavigateAndCommit(GURL("http://www.final.com")); 229 NavigateAndCommit(GURL("http://www.final.com"));
221 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 230 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
222 1); 231 1);
223 histogram_tester().ExpectBucketCount( 232 histogram_tester().ExpectBucketCount(
224 internal::kHistogramFromGWSFirstTextPaint, 233 internal::kHistogramFromGWSFirstTextPaint,
225 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 234 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
226 } 235 }
227 236
228 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl3) { 237 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl3) {
229 page_load_metrics::PageLoadTiming timing; 238 page_load_metrics::mojom::PageLoadTiming timing;
239 page_load_metrics::InitPageLoadTimingForTest(&timing);
230 timing.navigation_start = base::Time::FromDoubleT(1); 240 timing.navigation_start = base::Time::FromDoubleT(1);
231 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 241 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
232 PopulateRequiredTimingFields(&timing); 242 PopulateRequiredTimingFields(&timing);
233 NavigateAndCommit(GURL("https://www.google.com/webhp#q=test")); 243 NavigateAndCommit(GURL("https://www.google.com/webhp#q=test"));
234 NavigateAndCommit(GURL(kExampleUrl)); 244 NavigateAndCommit(GURL(kExampleUrl));
235 245
236 SimulateTimingUpdate(timing); 246 SimulateTimingUpdate(timing);
237 247
238 // Navigate again to force logging. 248 // Navigate again to force logging.
239 NavigateAndCommit(GURL("http://www.final.com")); 249 NavigateAndCommit(GURL("http://www.final.com"));
240 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 250 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
241 1); 251 1);
242 histogram_tester().ExpectBucketCount( 252 histogram_tester().ExpectBucketCount(
243 internal::kHistogramFromGWSFirstTextPaint, 253 internal::kHistogramFromGWSFirstTextPaint,
244 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 254 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
245 } 255 }
246 256
247 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl4) { 257 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl4) {
248 page_load_metrics::PageLoadTiming timing; 258 page_load_metrics::mojom::PageLoadTiming timing;
259 page_load_metrics::InitPageLoadTimingForTest(&timing);
249 timing.navigation_start = base::Time::FromDoubleT(1); 260 timing.navigation_start = base::Time::FromDoubleT(1);
250 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 261 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
251 PopulateRequiredTimingFields(&timing); 262 PopulateRequiredTimingFields(&timing);
252 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test")); 263 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
253 NavigateAndCommit(GURL(kExampleUrl)); 264 NavigateAndCommit(GURL(kExampleUrl));
254 265
255 SimulateTimingUpdate(timing); 266 SimulateTimingUpdate(timing);
256 267
257 // Navigate again to force logging. 268 // Navigate again to force logging.
258 NavigateAndCommit(GURL("http://www.final.com")); 269 NavigateAndCommit(GURL("http://www.final.com"));
259 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 270 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
260 1); 271 1);
261 histogram_tester().ExpectBucketCount( 272 histogram_tester().ExpectBucketCount(
262 internal::kHistogramFromGWSFirstTextPaint, 273 internal::kHistogramFromGWSFirstTextPaint,
263 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 274 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
264 } 275 }
265 276
266 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchToNonSearchToOtherPage) { 277 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchToNonSearchToOtherPage) {
267 page_load_metrics::PageLoadTiming timing; 278 page_load_metrics::mojom::PageLoadTiming timing;
279 page_load_metrics::InitPageLoadTimingForTest(&timing);
268 timing.navigation_start = base::Time::FromDoubleT(1); 280 timing.navigation_start = base::Time::FromDoubleT(1);
269 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 281 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
270 page_load_metrics::PageLoadTiming timing2; 282 page_load_metrics::mojom::PageLoadTiming timing2;
283 page_load_metrics::InitPageLoadTimingForTest(&timing2);
271 timing2.navigation_start = base::Time::FromDoubleT(2); 284 timing2.navigation_start = base::Time::FromDoubleT(2);
272 timing2.paint_timing.first_text_paint = 285 timing2.paint_timing->first_text_paint =
273 base::TimeDelta::FromMilliseconds(100); 286 base::TimeDelta::FromMilliseconds(100);
274 PopulateRequiredTimingFields(&timing); 287 PopulateRequiredTimingFields(&timing);
275 PopulateRequiredTimingFields(&timing2); 288 PopulateRequiredTimingFields(&timing2);
276 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test")); 289 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
277 NavigateAndCommit(GURL(kExampleUrl)); 290 NavigateAndCommit(GURL(kExampleUrl));
278 SimulateTimingUpdate(timing); 291 SimulateTimingUpdate(timing);
279 NavigateAndCommit(GURL("http://www.example.com/other")); 292 NavigateAndCommit(GURL("http://www.example.com/other"));
280 SimulateTimingUpdate(timing2); 293 SimulateTimingUpdate(timing2);
281 294
282 // Navigate again to force logging. We expect to log timing for the page 295 // Navigate again to force logging. We expect to log timing for the page
283 // navigated from search, but not for the page navigated from that page. 296 // navigated from search, but not for the page navigated from that page.
284 NavigateAndCommit(GURL("http://www.final.com")); 297 NavigateAndCommit(GURL("http://www.final.com"));
285 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 298 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
286 1); 299 1);
287 histogram_tester().ExpectBucketCount( 300 histogram_tester().ExpectBucketCount(
288 internal::kHistogramFromGWSFirstTextPaint, 301 internal::kHistogramFromGWSFirstTextPaint,
289 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 302 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
290 } 303 }
291 304
292 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchToNonSearchToSearch) { 305 TEST_F(FromGWSPageLoadMetricsObserverTest, SearchToNonSearchToSearch) {
293 page_load_metrics::PageLoadTiming timing; 306 page_load_metrics::mojom::PageLoadTiming timing;
307 page_load_metrics::InitPageLoadTimingForTest(&timing);
294 timing.navigation_start = base::Time::FromDoubleT(1); 308 timing.navigation_start = base::Time::FromDoubleT(1);
295 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 309 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
296 page_load_metrics::PageLoadTiming timing2; 310 page_load_metrics::mojom::PageLoadTiming timing2;
311 page_load_metrics::InitPageLoadTimingForTest(&timing2);
297 timing2.navigation_start = base::Time::FromDoubleT(2); 312 timing2.navigation_start = base::Time::FromDoubleT(2);
298 timing2.paint_timing.first_text_paint = 313 timing2.paint_timing->first_text_paint =
299 base::TimeDelta::FromMilliseconds(100); 314 base::TimeDelta::FromMilliseconds(100);
300 PopulateRequiredTimingFields(&timing); 315 PopulateRequiredTimingFields(&timing);
301 PopulateRequiredTimingFields(&timing2); 316 PopulateRequiredTimingFields(&timing2);
302 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test")); 317 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
303 NavigateAndCommit(GURL(kExampleUrl)); 318 NavigateAndCommit(GURL(kExampleUrl));
304 SimulateTimingUpdate(timing); 319 SimulateTimingUpdate(timing);
305 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test")); 320 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
306 SimulateTimingUpdate(timing2); 321 SimulateTimingUpdate(timing2);
307 322
308 // Navigate again to force logging. We expect to log timing for the page 323 // Navigate again to force logging. We expect to log timing for the page
309 // navigated from search, but not for the search page we navigated to. 324 // navigated from search, but not for the search page we navigated to.
310 NavigateAndCommit(GURL("http://www.final.com")); 325 NavigateAndCommit(GURL("http://www.final.com"));
311 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 326 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
312 1); 327 1);
313 histogram_tester().ExpectBucketCount( 328 histogram_tester().ExpectBucketCount(
314 internal::kHistogramFromGWSFirstTextPaint, 329 internal::kHistogramFromGWSFirstTextPaint,
315 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 330 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
316 } 331 }
317 332
318 TEST_F(FromGWSPageLoadMetricsObserverTest, 333 TEST_F(FromGWSPageLoadMetricsObserverTest,
319 SearchToNonSearchToSearchToNonSearch) { 334 SearchToNonSearchToSearchToNonSearch) {
320 page_load_metrics::PageLoadTiming timing; 335 page_load_metrics::mojom::PageLoadTiming timing;
336 page_load_metrics::InitPageLoadTimingForTest(&timing);
321 timing.navigation_start = base::Time::FromDoubleT(1); 337 timing.navigation_start = base::Time::FromDoubleT(1);
322 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 338 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
323 page_load_metrics::PageLoadTiming timing2; 339 page_load_metrics::mojom::PageLoadTiming timing2;
340 page_load_metrics::InitPageLoadTimingForTest(&timing2);
324 timing2.navigation_start = base::Time::FromDoubleT(2); 341 timing2.navigation_start = base::Time::FromDoubleT(2);
325 timing2.paint_timing.first_text_paint = 342 timing2.paint_timing->first_text_paint =
326 base::TimeDelta::FromMilliseconds(100); 343 base::TimeDelta::FromMilliseconds(100);
327 page_load_metrics::PageLoadTiming timing3; 344 page_load_metrics::mojom::PageLoadTiming timing3;
345 page_load_metrics::InitPageLoadTimingForTest(&timing3);
328 timing3.navigation_start = base::Time::FromDoubleT(3); 346 timing3.navigation_start = base::Time::FromDoubleT(3);
329 timing3.paint_timing.first_text_paint = 347 timing3.paint_timing->first_text_paint =
330 base::TimeDelta::FromMilliseconds(1000); 348 base::TimeDelta::FromMilliseconds(1000);
331 PopulateRequiredTimingFields(&timing); 349 PopulateRequiredTimingFields(&timing);
332 PopulateRequiredTimingFields(&timing2); 350 PopulateRequiredTimingFields(&timing2);
333 PopulateRequiredTimingFields(&timing3); 351 PopulateRequiredTimingFields(&timing3);
334 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test")); 352 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
335 NavigateAndCommit(GURL(kExampleUrl)); 353 NavigateAndCommit(GURL(kExampleUrl));
336 SimulateTimingUpdate(timing); 354 SimulateTimingUpdate(timing);
337 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test")); 355 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
338 SimulateTimingUpdate(timing2); 356 SimulateTimingUpdate(timing2);
339 NavigateAndCommit(GURL(kExampleUrl)); 357 NavigateAndCommit(GURL(kExampleUrl));
340 SimulateTimingUpdate(timing3); 358 SimulateTimingUpdate(timing3);
341 359
342 // Navigate again to force logging. We expect to log timing for both pages 360 // Navigate again to force logging. We expect to log timing for both pages
343 // navigated from search, but not for the search pages we navigated to. 361 // navigated from search, but not for the search pages we navigated to.
344 NavigateAndCommit(GURL("http://www.final.com")); 362 NavigateAndCommit(GURL("http://www.final.com"));
345 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 363 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
346 2); 364 2);
347 histogram_tester().ExpectBucketCount( 365 histogram_tester().ExpectBucketCount(
348 internal::kHistogramFromGWSFirstTextPaint, 366 internal::kHistogramFromGWSFirstTextPaint,
349 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 367 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
350 histogram_tester().ExpectBucketCount( 368 histogram_tester().ExpectBucketCount(
351 internal::kHistogramFromGWSFirstTextPaint, 369 internal::kHistogramFromGWSFirstTextPaint,
352 timing3.paint_timing.first_text_paint.value().InMilliseconds(), 1); 370 timing3.paint_timing->first_text_paint.value().InMilliseconds(), 1);
353 } 371 }
354 372
355 TEST_F(FromGWSPageLoadMetricsObserverTest, 373 TEST_F(FromGWSPageLoadMetricsObserverTest,
356 SearchToNonSearchToSearchToNonSearchBackgrounded) { 374 SearchToNonSearchToSearchToNonSearchBackgrounded) {
357 page_load_metrics::PageLoadTiming timing; 375 page_load_metrics::mojom::PageLoadTiming timing;
376 page_load_metrics::InitPageLoadTimingForTest(&timing);
358 timing.navigation_start = base::Time::FromDoubleT(1); 377 timing.navigation_start = base::Time::FromDoubleT(1);
359 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 378 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
360 page_load_metrics::PageLoadTiming timing2; 379 page_load_metrics::mojom::PageLoadTiming timing2;
380 page_load_metrics::InitPageLoadTimingForTest(&timing2);
361 timing2.navigation_start = base::Time::FromDoubleT(2); 381 timing2.navigation_start = base::Time::FromDoubleT(2);
362 timing2.paint_timing.first_text_paint = 382 timing2.paint_timing->first_text_paint =
363 base::TimeDelta::FromMilliseconds(100); 383 base::TimeDelta::FromMilliseconds(100);
364 page_load_metrics::PageLoadTiming timing3; 384 page_load_metrics::mojom::PageLoadTiming timing3;
385 page_load_metrics::InitPageLoadTimingForTest(&timing3);
365 timing3.navigation_start = base::Time::FromDoubleT(3); 386 timing3.navigation_start = base::Time::FromDoubleT(3);
366 timing3.paint_timing.first_text_paint = 387 timing3.paint_timing->first_text_paint =
367 base::TimeDelta::FromMilliseconds(1000); 388 base::TimeDelta::FromMilliseconds(1000);
368 PopulateRequiredTimingFields(&timing); 389 PopulateRequiredTimingFields(&timing);
369 PopulateRequiredTimingFields(&timing2); 390 PopulateRequiredTimingFields(&timing2);
370 PopulateRequiredTimingFields(&timing3); 391 PopulateRequiredTimingFields(&timing3);
371 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test")); 392 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
372 NavigateAndCommit(GURL(kExampleUrl)); 393 NavigateAndCommit(GURL(kExampleUrl));
373 SimulateTimingUpdate(timing); 394 SimulateTimingUpdate(timing);
374 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test")); 395 NavigateAndCommit(GURL("https://www.google.co.uk/search#q=test"));
375 web_contents()->WasHidden(); 396 web_contents()->WasHidden();
376 SimulateTimingUpdate(timing2); 397 SimulateTimingUpdate(timing2);
377 NavigateAndCommit(GURL(kExampleUrl)); 398 NavigateAndCommit(GURL(kExampleUrl));
378 SimulateTimingUpdate(timing3); 399 SimulateTimingUpdate(timing3);
379 400
380 // Navigate again to force logging. We expect to log timing for the first page 401 // Navigate again to force logging. We expect to log timing for the first page
381 // navigated from search, but not the second since it was backgrounded. 402 // navigated from search, but not the second since it was backgrounded.
382 NavigateAndCommit(GURL("http://www.final.com")); 403 NavigateAndCommit(GURL("http://www.final.com"));
383 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 404 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
384 1); 405 1);
385 histogram_tester().ExpectBucketCount( 406 histogram_tester().ExpectBucketCount(
386 internal::kHistogramFromGWSFirstTextPaint, 407 internal::kHistogramFromGWSFirstTextPaint,
387 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 408 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
388 } 409 }
389 410
390 TEST_F(FromGWSPageLoadMetricsObserverTest, 411 TEST_F(FromGWSPageLoadMetricsObserverTest,
391 SearchRedirectorPreviousCommittedUrl) { 412 SearchRedirectorPreviousCommittedUrl) {
392 page_load_metrics::PageLoadTiming timing; 413 page_load_metrics::mojom::PageLoadTiming timing;
414 page_load_metrics::InitPageLoadTimingForTest(&timing);
393 timing.navigation_start = base::Time::FromDoubleT(1); 415 timing.navigation_start = base::Time::FromDoubleT(1);
394 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 416 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
395 PopulateRequiredTimingFields(&timing); 417 PopulateRequiredTimingFields(&timing);
396 NavigateAndCommit(GURL("https://www.google.com/search#q=test")); 418 NavigateAndCommit(GURL("https://www.google.com/search#q=test"));
397 NavigateAndCommit(GURL("https://www.google.com/url?source=web")); 419 NavigateAndCommit(GURL("https://www.google.com/url?source=web"));
398 NavigateAndCommit(GURL(kExampleUrl)); 420 NavigateAndCommit(GURL(kExampleUrl));
399 421
400 SimulateTimingUpdate(timing); 422 SimulateTimingUpdate(timing);
401 423
402 // Navigate again to force logging. 424 // Navigate again to force logging.
403 NavigateAndCommit(GURL("http://www.final.com")); 425 NavigateAndCommit(GURL("http://www.final.com"));
404 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 426 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
405 1); 427 1);
406 histogram_tester().ExpectBucketCount( 428 histogram_tester().ExpectBucketCount(
407 internal::kHistogramFromGWSFirstTextPaint, 429 internal::kHistogramFromGWSFirstTextPaint,
408 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 430 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
409 } 431 }
410 432
411 TEST_F(FromGWSPageLoadMetricsObserverTest, 433 TEST_F(FromGWSPageLoadMetricsObserverTest,
412 NonSearchRedirectorPreviousCommittedUrl) { 434 NonSearchRedirectorPreviousCommittedUrl) {
413 page_load_metrics::PageLoadTiming timing; 435 page_load_metrics::mojom::PageLoadTiming timing;
436 page_load_metrics::InitPageLoadTimingForTest(&timing);
414 timing.navigation_start = base::Time::FromDoubleT(1); 437 timing.navigation_start = base::Time::FromDoubleT(1);
415 timing.paint_timing.first_text_paint = base::TimeDelta::FromMilliseconds(1); 438 timing.paint_timing->first_text_paint = base::TimeDelta::FromMilliseconds(1);
416 PopulateRequiredTimingFields(&timing); 439 PopulateRequiredTimingFields(&timing);
417 NavigateAndCommit(GURL("https://www.google.com/webhp?q=test")); 440 NavigateAndCommit(GURL("https://www.google.com/webhp?q=test"));
418 NavigateAndCommit(GURL("https://www.google.com/url?a=b&c=d")); 441 NavigateAndCommit(GURL("https://www.google.com/url?a=b&c=d"));
419 NavigateAndCommit(GURL(kExampleUrl)); 442 NavigateAndCommit(GURL(kExampleUrl));
420 443
421 SimulateTimingUpdate(timing); 444 SimulateTimingUpdate(timing);
422 445
423 // Navigate again to force logging. 446 // Navigate again to force logging.
424 NavigateAndCommit(GURL("http://www.final.com")); 447 NavigateAndCommit(GURL("http://www.final.com"));
425 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint, 448 histogram_tester().ExpectTotalCount(internal::kHistogramFromGWSFirstTextPaint,
426 0); 449 0);
427 } 450 }
428 451
429 TEST_F(FromGWSPageLoadMetricsObserverTest, 452 TEST_F(FromGWSPageLoadMetricsObserverTest,
430 SearchPreviousCommittedUrlBackgroundLater) { 453 SearchPreviousCommittedUrlBackgroundLater) {
431 page_load_metrics::PageLoadTiming timing; 454 page_load_metrics::mojom::PageLoadTiming timing;
455 page_load_metrics::InitPageLoadTimingForTest(&timing);
432 timing.navigation_start = base::Time::FromDoubleT(1); 456 timing.navigation_start = base::Time::FromDoubleT(1);
433 timing.paint_timing.first_text_paint = base::TimeDelta::FromMicroseconds(1); 457 timing.paint_timing->first_text_paint = base::TimeDelta::FromMicroseconds(1);
434 PopulateRequiredTimingFields(&timing); 458 PopulateRequiredTimingFields(&timing);
435 459
436 NavigateAndCommit(GURL("https://www.google.com/search#q=test")); 460 NavigateAndCommit(GURL("https://www.google.com/search#q=test"));
437 NavigateAndCommit(GURL(kExampleUrl)); 461 NavigateAndCommit(GURL(kExampleUrl));
438 462
439 web_contents()->WasHidden(); 463 web_contents()->WasHidden();
440 SimulateTimingUpdate(timing); 464 SimulateTimingUpdate(timing);
441 465
442 page_load_metrics::PageLoadExtraInfo info = 466 page_load_metrics::PageLoadExtraInfo info =
443 GetPageLoadExtraInfoForCommittedLoad(); 467 GetPageLoadExtraInfoForCommittedLoad();
444 468
445 // If the system clock is low resolution PageLoadTracker's background_time_ 469 // If the system clock is low resolution PageLoadTracker's background_time_
446 // may be < timing.first_text_paint. 470 // may be < timing.first_text_paint.
447 if (page_load_metrics::WasStartedInForegroundOptionalEventInForeground( 471 if (page_load_metrics::WasStartedInForegroundOptionalEventInForeground(
448 timing.paint_timing.first_text_paint, info)) { 472 timing.paint_timing->first_text_paint, info)) {
449 histogram_tester().ExpectTotalCount( 473 histogram_tester().ExpectTotalCount(
450 internal::kHistogramFromGWSFirstTextPaint, 1); 474 internal::kHistogramFromGWSFirstTextPaint, 1);
451 histogram_tester().ExpectBucketCount( 475 histogram_tester().ExpectBucketCount(
452 internal::kHistogramFromGWSFirstTextPaint, 476 internal::kHistogramFromGWSFirstTextPaint,
453 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 477 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
454 } else { 478 } else {
455 histogram_tester().ExpectTotalCount( 479 histogram_tester().ExpectTotalCount(
456 internal::kHistogramFromGWSFirstTextPaint, 0); 480 internal::kHistogramFromGWSFirstTextPaint, 0);
457 } 481 }
458 } 482 }
459 483
460 TEST_F(FromGWSPageLoadMetricsObserverTest, NewNavigationBeforeCommit) { 484 TEST_F(FromGWSPageLoadMetricsObserverTest, NewNavigationBeforeCommit) {
461 NavigateAndCommit(GURL(kGoogleSearchResultsUrl)); 485 NavigateAndCommit(GURL(kGoogleSearchResultsUrl));
462 StartNavigation(GURL("http://example.test")); 486 StartNavigation(GURL("http://example.test"));
463 487
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 TEST_F(FromGWSPageLoadMetricsObserverTest, NoAbortNewNavigationFromAboutURL) { 628 TEST_F(FromGWSPageLoadMetricsObserverTest, NoAbortNewNavigationFromAboutURL) {
605 NavigateAndCommit(GURL(kGoogleSearchResultsUrl)); 629 NavigateAndCommit(GURL(kGoogleSearchResultsUrl));
606 NavigateAndCommit(GURL("about:blank")); 630 NavigateAndCommit(GURL("about:blank"));
607 NavigateAndCommit(GURL("https://www.example.com")); 631 NavigateAndCommit(GURL("https://www.example.com"));
608 histogram_tester().ExpectTotalCount( 632 histogram_tester().ExpectTotalCount(
609 internal::kHistogramFromGWSAbortNewNavigationBeforePaint, 0); 633 internal::kHistogramFromGWSAbortNewNavigationBeforePaint, 0);
610 } 634 }
611 635
612 TEST_F(FromGWSPageLoadMetricsObserverTest, NoAbortNewNavigationAfterPaint) { 636 TEST_F(FromGWSPageLoadMetricsObserverTest, NoAbortNewNavigationAfterPaint) {
613 NavigateAndCommit(GURL(kGoogleSearchResultsUrl)); 637 NavigateAndCommit(GURL(kGoogleSearchResultsUrl));
614 page_load_metrics::PageLoadTiming timing; 638 page_load_metrics::mojom::PageLoadTiming timing;
639 page_load_metrics::InitPageLoadTimingForTest(&timing);
615 timing.navigation_start = base::Time::FromDoubleT(1); 640 timing.navigation_start = base::Time::FromDoubleT(1);
616 timing.paint_timing.first_paint = base::TimeDelta::FromMicroseconds(1); 641 timing.paint_timing->first_paint = base::TimeDelta::FromMicroseconds(1);
617 PopulateRequiredTimingFields(&timing); 642 PopulateRequiredTimingFields(&timing);
618 NavigateAndCommit(GURL("https://example.test")); 643 NavigateAndCommit(GURL("https://example.test"));
619 SimulateTimingUpdate(timing); 644 SimulateTimingUpdate(timing);
620 645
621 // The test cannot assume that abort time will be > first_paint 646 // The test cannot assume that abort time will be > first_paint
622 // (1 micro-sec). If the system clock is low resolution, PageLoadTracker's 647 // (1 micro-sec). If the system clock is low resolution, PageLoadTracker's
623 // abort time may be <= first_paint. In that case the histogram will be 648 // abort time may be <= first_paint. In that case the histogram will be
624 // logged. Thus both 0 and 1 counts of histograms are considered good. 649 // logged. Thus both 0 and 1 counts of histograms are considered good.
625 650
626 NavigateAndCommit(GURL("https://example.test2")); 651 NavigateAndCommit(GURL("https://example.test2"));
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
927 logger.ShouldLogPostCommitMetrics(GURL("https://www.google.com/about/"))); 952 logger.ShouldLogPostCommitMetrics(GURL("https://www.google.com/about/")));
928 } 953 }
929 954
930 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationFromSearchRedirector) { 955 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationFromSearchRedirector) {
931 FromGWSPageLoadMetricsLogger logger; 956 FromGWSPageLoadMetricsLogger logger;
932 logger.SetPreviouslyCommittedUrl( 957 logger.SetPreviouslyCommittedUrl(
933 GURL("https://www.google.com/url?source=web")); 958 GURL("https://www.google.com/url?source=web"));
934 logger.set_navigation_initiated_via_link(true); 959 logger.set_navigation_initiated_via_link(true);
935 ASSERT_TRUE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl))); 960 ASSERT_TRUE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl)));
936 } 961 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698