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

Side by Side Diff: chrome/browser/page_load_metrics/observers/core_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/core_page_load_metrics_obse rver.h" 5 #include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_obse rver.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h" 8 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_ test_harness.h"
9 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h" 9 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h"
10 #include "chrome/test/base/testing_browser_process.h" 10 #include "chrome/test/base/testing_browser_process.h"
(...skipping 30 matching lines...) Expand all
41 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 0); 41 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 0);
42 histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0); 42 histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0);
43 histogram_tester().ExpectTotalCount(internal::kHistogramFirstLayout, 0); 43 histogram_tester().ExpectTotalCount(internal::kHistogramFirstLayout, 0);
44 histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 0); 44 histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 0);
45 } 45 }
46 46
47 TEST_F(CorePageLoadMetricsObserverTest, 47 TEST_F(CorePageLoadMetricsObserverTest,
48 SameDocumentNoTriggerUntilTrueNavCommit) { 48 SameDocumentNoTriggerUntilTrueNavCommit) {
49 base::TimeDelta first_layout = base::TimeDelta::FromMilliseconds(1); 49 base::TimeDelta first_layout = base::TimeDelta::FromMilliseconds(1);
50 50
51 page_load_metrics::PageLoadTiming timing; 51 page_load_metrics::mojom::PageLoadTiming timing;
52 page_load_metrics::InitPageLoadTimingForTest(&timing);
52 timing.navigation_start = base::Time::FromDoubleT(1); 53 timing.navigation_start = base::Time::FromDoubleT(1);
53 timing.document_timing.first_layout = first_layout; 54 timing.document_timing->first_layout = first_layout;
54 PopulateRequiredTimingFields(&timing); 55 PopulateRequiredTimingFields(&timing);
55 56
56 NavigateAndCommit(GURL(kDefaultTestUrl)); 57 NavigateAndCommit(GURL(kDefaultTestUrl));
57 SimulateTimingUpdate(timing); 58 SimulateTimingUpdate(timing);
58 59
59 NavigateAndCommit(GURL(kDefaultTestUrlAnchor)); 60 NavigateAndCommit(GURL(kDefaultTestUrlAnchor));
60 61
61 NavigateAndCommit(GURL(kDefaultTestUrl2)); 62 NavigateAndCommit(GURL(kDefaultTestUrl2));
62 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 0); 63 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 0);
63 histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0); 64 histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0);
64 histogram_tester().ExpectTotalCount(internal::kHistogramFirstLayout, 1); 65 histogram_tester().ExpectTotalCount(internal::kHistogramFirstLayout, 1);
65 histogram_tester().ExpectBucketCount(internal::kHistogramFirstLayout, 66 histogram_tester().ExpectBucketCount(internal::kHistogramFirstLayout,
66 first_layout.InMilliseconds(), 1); 67 first_layout.InMilliseconds(), 1);
67 histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 0); 68 histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 0);
68 } 69 }
69 70
70 TEST_F(CorePageLoadMetricsObserverTest, SingleMetricAfterCommit) { 71 TEST_F(CorePageLoadMetricsObserverTest, SingleMetricAfterCommit) {
71 base::TimeDelta first_layout = base::TimeDelta::FromMilliseconds(1); 72 base::TimeDelta first_layout = base::TimeDelta::FromMilliseconds(1);
72 base::TimeDelta parse_start = base::TimeDelta::FromMilliseconds(1); 73 base::TimeDelta parse_start = base::TimeDelta::FromMilliseconds(1);
73 base::TimeDelta parse_stop = base::TimeDelta::FromMilliseconds(5); 74 base::TimeDelta parse_stop = base::TimeDelta::FromMilliseconds(5);
74 base::TimeDelta parse_script_load_duration = 75 base::TimeDelta parse_script_load_duration =
75 base::TimeDelta::FromMilliseconds(3); 76 base::TimeDelta::FromMilliseconds(3);
76 base::TimeDelta parse_script_exec_duration = 77 base::TimeDelta parse_script_exec_duration =
77 base::TimeDelta::FromMilliseconds(1); 78 base::TimeDelta::FromMilliseconds(1);
78 79
79 page_load_metrics::PageLoadTiming timing; 80 page_load_metrics::mojom::PageLoadTiming timing;
81 page_load_metrics::InitPageLoadTimingForTest(&timing);
80 timing.navigation_start = base::Time::FromDoubleT(1); 82 timing.navigation_start = base::Time::FromDoubleT(1);
81 timing.document_timing.first_layout = first_layout; 83 timing.document_timing->first_layout = first_layout;
82 timing.parse_timing.parse_start = parse_start; 84 timing.parse_timing->parse_start = parse_start;
83 timing.parse_timing.parse_stop = parse_stop; 85 timing.parse_timing->parse_stop = parse_stop;
84 timing.parse_timing.parse_blocked_on_script_load_duration = 86 timing.parse_timing->parse_blocked_on_script_load_duration =
85 parse_script_load_duration; 87 parse_script_load_duration;
86 timing.parse_timing.parse_blocked_on_script_execution_duration = 88 timing.parse_timing->parse_blocked_on_script_execution_duration =
87 parse_script_exec_duration; 89 parse_script_exec_duration;
88 PopulateRequiredTimingFields(&timing); 90 PopulateRequiredTimingFields(&timing);
89 91
90 NavigateAndCommit(GURL(kDefaultTestUrl)); 92 NavigateAndCommit(GURL(kDefaultTestUrl));
91 SimulateTimingUpdate(timing); 93 SimulateTimingUpdate(timing);
92 94
93 // Navigate again to force histogram recording. 95 // Navigate again to force histogram recording.
94 NavigateAndCommit(GURL(kDefaultTestUrl2)); 96 NavigateAndCommit(GURL(kDefaultTestUrl2));
95 97
96 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 0); 98 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 0);
(...skipping 18 matching lines...) Expand all
115 117
116 TEST_F(CorePageLoadMetricsObserverTest, MultipleMetricsAfterCommits) { 118 TEST_F(CorePageLoadMetricsObserverTest, MultipleMetricsAfterCommits) {
117 base::TimeDelta response = base::TimeDelta::FromMilliseconds(1); 119 base::TimeDelta response = base::TimeDelta::FromMilliseconds(1);
118 base::TimeDelta first_layout_1 = base::TimeDelta::FromMilliseconds(10); 120 base::TimeDelta first_layout_1 = base::TimeDelta::FromMilliseconds(10);
119 base::TimeDelta first_layout_2 = base::TimeDelta::FromMilliseconds(20); 121 base::TimeDelta first_layout_2 = base::TimeDelta::FromMilliseconds(20);
120 base::TimeDelta first_text_paint = base::TimeDelta::FromMilliseconds(30); 122 base::TimeDelta first_text_paint = base::TimeDelta::FromMilliseconds(30);
121 base::TimeDelta first_contentful_paint = first_text_paint; 123 base::TimeDelta first_contentful_paint = first_text_paint;
122 base::TimeDelta dom_content = base::TimeDelta::FromMilliseconds(40); 124 base::TimeDelta dom_content = base::TimeDelta::FromMilliseconds(40);
123 base::TimeDelta load = base::TimeDelta::FromMilliseconds(100); 125 base::TimeDelta load = base::TimeDelta::FromMilliseconds(100);
124 126
125 page_load_metrics::PageLoadTiming timing; 127 page_load_metrics::mojom::PageLoadTiming timing;
128 page_load_metrics::InitPageLoadTimingForTest(&timing);
126 timing.navigation_start = base::Time::FromDoubleT(1); 129 timing.navigation_start = base::Time::FromDoubleT(1);
127 timing.response_start = response; 130 timing.response_start = response;
128 timing.document_timing.first_layout = first_layout_1; 131 timing.document_timing->first_layout = first_layout_1;
129 timing.paint_timing.first_text_paint = first_text_paint; 132 timing.paint_timing->first_text_paint = first_text_paint;
130 timing.paint_timing.first_contentful_paint = first_contentful_paint; 133 timing.paint_timing->first_contentful_paint = first_contentful_paint;
131 timing.document_timing.dom_content_loaded_event_start = dom_content; 134 timing.document_timing->dom_content_loaded_event_start = dom_content;
132 timing.document_timing.load_event_start = load; 135 timing.document_timing->load_event_start = load;
133 PopulateRequiredTimingFields(&timing); 136 PopulateRequiredTimingFields(&timing);
134 137
135 NavigateAndCommit(GURL(kDefaultTestUrl)); 138 NavigateAndCommit(GURL(kDefaultTestUrl));
136 SimulateTimingUpdate(timing); 139 SimulateTimingUpdate(timing);
137 140
138 histogram_tester().ExpectTotalCount(internal::kHistogramFirstContentfulPaint, 141 histogram_tester().ExpectTotalCount(internal::kHistogramFirstContentfulPaint,
139 1); 142 1);
140 histogram_tester().ExpectBucketCount(internal::kHistogramFirstContentfulPaint, 143 histogram_tester().ExpectBucketCount(internal::kHistogramFirstContentfulPaint,
141 first_contentful_paint.InMilliseconds(), 144 first_contentful_paint.InMilliseconds(),
142 1); 145 1);
143 146
144 NavigateAndCommit(GURL(kDefaultTestUrl2)); 147 NavigateAndCommit(GURL(kDefaultTestUrl2));
145 148
146 page_load_metrics::PageLoadTiming timing2; 149 page_load_metrics::mojom::PageLoadTiming timing2;
150 page_load_metrics::InitPageLoadTimingForTest(&timing2);
147 timing2.navigation_start = base::Time::FromDoubleT(200); 151 timing2.navigation_start = base::Time::FromDoubleT(200);
148 timing2.document_timing.first_layout = first_layout_2; 152 timing2.document_timing->first_layout = first_layout_2;
149 PopulateRequiredTimingFields(&timing2); 153 PopulateRequiredTimingFields(&timing2);
150 154
151 SimulateTimingUpdate(timing2); 155 SimulateTimingUpdate(timing2);
152 156
153 NavigateAndCommit(GURL(kDefaultTestUrl)); 157 NavigateAndCommit(GURL(kDefaultTestUrl));
154 158
155 histogram_tester().ExpectTotalCount(internal::kHistogramFirstLayout, 2); 159 histogram_tester().ExpectTotalCount(internal::kHistogramFirstLayout, 2);
156 histogram_tester().ExpectBucketCount(internal::kHistogramFirstLayout, 160 histogram_tester().ExpectBucketCount(internal::kHistogramFirstLayout,
157 first_layout_1.InMilliseconds(), 1); 161 first_layout_1.InMilliseconds(), 1);
158 histogram_tester().ExpectBucketCount(internal::kHistogramFirstLayout, 162 histogram_tester().ExpectBucketCount(internal::kHistogramFirstLayout,
(...skipping 13 matching lines...) Expand all
172 dom_content.InMilliseconds(), 1); 176 dom_content.InMilliseconds(), 1);
173 177
174 histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 1); 178 histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 1);
175 histogram_tester().ExpectBucketCount(internal::kHistogramLoad, 179 histogram_tester().ExpectBucketCount(internal::kHistogramLoad,
176 load.InMilliseconds(), 1); 180 load.InMilliseconds(), 1);
177 } 181 }
178 182
179 TEST_F(CorePageLoadMetricsObserverTest, BackgroundDifferentHistogram) { 183 TEST_F(CorePageLoadMetricsObserverTest, BackgroundDifferentHistogram) {
180 base::TimeDelta first_layout = base::TimeDelta::FromSeconds(2); 184 base::TimeDelta first_layout = base::TimeDelta::FromSeconds(2);
181 185
182 page_load_metrics::PageLoadTiming timing; 186 page_load_metrics::mojom::PageLoadTiming timing;
187 page_load_metrics::InitPageLoadTimingForTest(&timing);
183 timing.navigation_start = base::Time::FromDoubleT(1); 188 timing.navigation_start = base::Time::FromDoubleT(1);
184 timing.document_timing.first_layout = first_layout; 189 timing.document_timing->first_layout = first_layout;
185 PopulateRequiredTimingFields(&timing); 190 PopulateRequiredTimingFields(&timing);
186 191
187 // Simulate "Open link in new tab." 192 // Simulate "Open link in new tab."
188 web_contents()->WasHidden(); 193 web_contents()->WasHidden();
189 NavigateAndCommit(GURL(kDefaultTestUrl)); 194 NavigateAndCommit(GURL(kDefaultTestUrl));
190 SimulateTimingUpdate(timing); 195 SimulateTimingUpdate(timing);
191 196
192 // Simulate switching to the tab and making another navigation. 197 // Simulate switching to the tab and making another navigation.
193 web_contents()->WasShown(); 198 web_contents()->WasShown();
194 199
(...skipping 11 matching lines...) Expand all
206 histogram_tester().ExpectTotalCount( 211 histogram_tester().ExpectTotalCount(
207 internal::kBackgroundHistogramFirstTextPaint, 0); 212 internal::kBackgroundHistogramFirstTextPaint, 0);
208 213
209 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 0); 214 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 0);
210 histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0); 215 histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0);
211 histogram_tester().ExpectTotalCount(internal::kHistogramFirstLayout, 0); 216 histogram_tester().ExpectTotalCount(internal::kHistogramFirstLayout, 0);
212 histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 0); 217 histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 0);
213 } 218 }
214 219
215 TEST_F(CorePageLoadMetricsObserverTest, OnlyBackgroundLaterEvents) { 220 TEST_F(CorePageLoadMetricsObserverTest, OnlyBackgroundLaterEvents) {
216 page_load_metrics::PageLoadTiming timing; 221 page_load_metrics::mojom::PageLoadTiming timing;
222 page_load_metrics::InitPageLoadTimingForTest(&timing);
217 timing.navigation_start = base::Time::FromDoubleT(1); 223 timing.navigation_start = base::Time::FromDoubleT(1);
218 timing.document_timing.dom_content_loaded_event_start = 224 timing.document_timing->dom_content_loaded_event_start =
219 base::TimeDelta::FromMicroseconds(1); 225 base::TimeDelta::FromMicroseconds(1);
220 PopulateRequiredTimingFields(&timing); 226 PopulateRequiredTimingFields(&timing);
221 227
222 // Make sure first_text_paint hasn't been set (wasn't set by 228 // Make sure first_text_paint hasn't been set (wasn't set by
223 // PopulateRequiredTimingFields), since we want to defer setting it until 229 // PopulateRequiredTimingFields), since we want to defer setting it until
224 // after backgrounding. 230 // after backgrounding.
225 ASSERT_FALSE(timing.paint_timing.first_text_paint); 231 ASSERT_FALSE(timing.paint_timing->first_text_paint);
226 232
227 NavigateAndCommit(GURL(kDefaultTestUrl)); 233 NavigateAndCommit(GURL(kDefaultTestUrl));
228 SimulateTimingUpdate(timing); 234 SimulateTimingUpdate(timing);
229 235
230 // Background the tab, then foreground it. 236 // Background the tab, then foreground it.
231 web_contents()->WasHidden(); 237 web_contents()->WasHidden();
232 web_contents()->WasShown(); 238 web_contents()->WasShown();
233 timing.paint_timing.first_text_paint = base::TimeDelta::FromSeconds(4); 239 timing.paint_timing->first_text_paint = base::TimeDelta::FromSeconds(4);
234 PopulateRequiredTimingFields(&timing); 240 PopulateRequiredTimingFields(&timing);
235 SimulateTimingUpdate(timing); 241 SimulateTimingUpdate(timing);
236 242
237 // If the system clock is low resolution, PageLoadTracker's 243 // If the system clock is low resolution, PageLoadTracker's
238 // first_background_time_ may be same as other times such as 244 // first_background_time_ may be same as other times such as
239 // dom_content_loaded_event_start. 245 // dom_content_loaded_event_start.
240 page_load_metrics::PageLoadExtraInfo info = 246 page_load_metrics::PageLoadExtraInfo info =
241 GetPageLoadExtraInfoForCommittedLoad(); 247 GetPageLoadExtraInfoForCommittedLoad();
242 248
243 // Navigate again to force histogram recording. 249 // Navigate again to force histogram recording.
244 NavigateAndCommit(GURL(kDefaultTestUrl2)); 250 NavigateAndCommit(GURL(kDefaultTestUrl2));
245 251
246 if (page_load_metrics::WasStartedInForegroundOptionalEventInForeground( 252 if (page_load_metrics::WasStartedInForegroundOptionalEventInForeground(
247 timing.document_timing.dom_content_loaded_event_start, info)) { 253 timing.document_timing->dom_content_loaded_event_start, info)) {
248 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 254 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded,
249 1); 255 1);
250 histogram_tester().ExpectBucketCount( 256 histogram_tester().ExpectBucketCount(
251 internal::kHistogramDomContentLoaded, 257 internal::kHistogramDomContentLoaded,
252 timing.document_timing.dom_content_loaded_event_start.value() 258 timing.document_timing->dom_content_loaded_event_start.value()
253 .InMilliseconds(), 259 .InMilliseconds(),
254 1); 260 1);
255 histogram_tester().ExpectTotalCount( 261 histogram_tester().ExpectTotalCount(
256 internal::kBackgroundHistogramDomContentLoaded, 0); 262 internal::kBackgroundHistogramDomContentLoaded, 0);
257 } else { 263 } else {
258 histogram_tester().ExpectTotalCount( 264 histogram_tester().ExpectTotalCount(
259 internal::kBackgroundHistogramDomContentLoaded, 1); 265 internal::kBackgroundHistogramDomContentLoaded, 1);
260 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded, 266 histogram_tester().ExpectTotalCount(internal::kHistogramDomContentLoaded,
261 0); 267 0);
262 } 268 }
263 269
264 histogram_tester().ExpectTotalCount(internal::kBackgroundHistogramLoad, 0); 270 histogram_tester().ExpectTotalCount(internal::kBackgroundHistogramLoad, 0);
265 histogram_tester().ExpectTotalCount( 271 histogram_tester().ExpectTotalCount(
266 internal::kBackgroundHistogramFirstTextPaint, 1); 272 internal::kBackgroundHistogramFirstTextPaint, 1);
267 histogram_tester().ExpectBucketCount( 273 histogram_tester().ExpectBucketCount(
268 internal::kBackgroundHistogramFirstTextPaint, 274 internal::kBackgroundHistogramFirstTextPaint,
269 timing.paint_timing.first_text_paint.value().InMilliseconds(), 1); 275 timing.paint_timing->first_text_paint.value().InMilliseconds(), 1);
270 276
271 histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0); 277 histogram_tester().ExpectTotalCount(internal::kHistogramLoad, 0);
272 histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 0); 278 histogram_tester().ExpectTotalCount(internal::kHistogramFirstTextPaint, 0);
273 279
274 histogram_tester().ExpectTotalCount( 280 histogram_tester().ExpectTotalCount(
275 internal::kHistogramPageTimingForegroundDuration, 1); 281 internal::kHistogramPageTimingForegroundDuration, 1);
276 } 282 }
277 283
278 TEST_F(CorePageLoadMetricsObserverTest, DontBackgroundQuickerLoad) { 284 TEST_F(CorePageLoadMetricsObserverTest, DontBackgroundQuickerLoad) {
279 // Set this event at 1 microsecond so it occurs before we foreground later in 285 // Set this event at 1 microsecond so it occurs before we foreground later in
280 // the test. 286 // the test.
281 base::TimeDelta first_layout = base::TimeDelta::FromMicroseconds(1); 287 base::TimeDelta first_layout = base::TimeDelta::FromMicroseconds(1);
282 288
283 page_load_metrics::PageLoadTiming timing; 289 page_load_metrics::mojom::PageLoadTiming timing;
290 page_load_metrics::InitPageLoadTimingForTest(&timing);
284 timing.navigation_start = base::Time::FromDoubleT(1); 291 timing.navigation_start = base::Time::FromDoubleT(1);
285 timing.document_timing.first_layout = first_layout; 292 timing.document_timing->first_layout = first_layout;
286 PopulateRequiredTimingFields(&timing); 293 PopulateRequiredTimingFields(&timing);
287 294
288 web_contents()->WasHidden(); 295 web_contents()->WasHidden();
289 296
290 // Open in new tab 297 // Open in new tab
291 StartNavigation(GURL(kDefaultTestUrl)); 298 StartNavigation(GURL(kDefaultTestUrl));
292 299
293 // Switch to the tab 300 // Switch to the tab
294 web_contents()->WasShown(); 301 web_contents()->WasShown();
295 302
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 } 357 }
351 358
352 TEST_F(CorePageLoadMetricsObserverTest, NoRappor) { 359 TEST_F(CorePageLoadMetricsObserverTest, NoRappor) {
353 rappor::TestSample::Shadow* sample_obj = 360 rappor::TestSample::Shadow* sample_obj =
354 rappor_tester_.GetRecordedSampleForMetric( 361 rappor_tester_.GetRecordedSampleForMetric(
355 internal::kRapporMetricsNameCoarseTiming); 362 internal::kRapporMetricsNameCoarseTiming);
356 EXPECT_EQ(sample_obj, nullptr); 363 EXPECT_EQ(sample_obj, nullptr);
357 } 364 }
358 365
359 TEST_F(CorePageLoadMetricsObserverTest, RapporLongPageLoad) { 366 TEST_F(CorePageLoadMetricsObserverTest, RapporLongPageLoad) {
360 page_load_metrics::PageLoadTiming timing; 367 page_load_metrics::mojom::PageLoadTiming timing;
368 page_load_metrics::InitPageLoadTimingForTest(&timing);
361 timing.navigation_start = base::Time::FromDoubleT(1); 369 timing.navigation_start = base::Time::FromDoubleT(1);
362 timing.paint_timing.first_contentful_paint = base::TimeDelta::FromSeconds(40); 370 timing.paint_timing->first_contentful_paint =
371 base::TimeDelta::FromSeconds(40);
363 PopulateRequiredTimingFields(&timing); 372 PopulateRequiredTimingFields(&timing);
364 NavigateAndCommit(GURL(kDefaultTestUrl)); 373 NavigateAndCommit(GURL(kDefaultTestUrl));
365 SimulateTimingUpdate(timing); 374 SimulateTimingUpdate(timing);
366 375
367 // Navigate again to force logging RAPPOR. 376 // Navigate again to force logging RAPPOR.
368 NavigateAndCommit(GURL(kDefaultTestUrl2)); 377 NavigateAndCommit(GURL(kDefaultTestUrl2));
369 rappor::TestSample::Shadow* sample_obj = 378 rappor::TestSample::Shadow* sample_obj =
370 rappor_tester_.GetRecordedSampleForMetric( 379 rappor_tester_.GetRecordedSampleForMetric(
371 internal::kRapporMetricsNameCoarseTiming); 380 internal::kRapporMetricsNameCoarseTiming);
372 const auto& string_it = sample_obj->string_fields.find("Domain"); 381 const auto& string_it = sample_obj->string_fields.find("Domain");
373 EXPECT_NE(string_it, sample_obj->string_fields.end()); 382 EXPECT_NE(string_it, sample_obj->string_fields.end());
374 EXPECT_EQ(rappor::GetDomainAndRegistrySampleFromGURL(GURL(kDefaultTestUrl)), 383 EXPECT_EQ(rappor::GetDomainAndRegistrySampleFromGURL(GURL(kDefaultTestUrl)),
375 string_it->second); 384 string_it->second);
376 385
377 const auto& flag_it = sample_obj->flag_fields.find("IsSlow"); 386 const auto& flag_it = sample_obj->flag_fields.find("IsSlow");
378 EXPECT_NE(flag_it, sample_obj->flag_fields.end()); 387 EXPECT_NE(flag_it, sample_obj->flag_fields.end());
379 EXPECT_EQ(1u, flag_it->second); 388 EXPECT_EQ(1u, flag_it->second);
380 } 389 }
381 390
382 TEST_F(CorePageLoadMetricsObserverTest, RapporQuickPageLoad) { 391 TEST_F(CorePageLoadMetricsObserverTest, RapporQuickPageLoad) {
383 page_load_metrics::PageLoadTiming timing; 392 page_load_metrics::mojom::PageLoadTiming timing;
393 page_load_metrics::InitPageLoadTimingForTest(&timing);
384 timing.navigation_start = base::Time::FromDoubleT(1); 394 timing.navigation_start = base::Time::FromDoubleT(1);
385 timing.paint_timing.first_contentful_paint = base::TimeDelta::FromSeconds(1); 395 timing.paint_timing->first_contentful_paint = base::TimeDelta::FromSeconds(1);
386 PopulateRequiredTimingFields(&timing); 396 PopulateRequiredTimingFields(&timing);
387 397
388 NavigateAndCommit(GURL(kDefaultTestUrl)); 398 NavigateAndCommit(GURL(kDefaultTestUrl));
389 SimulateTimingUpdate(timing); 399 SimulateTimingUpdate(timing);
390 400
391 // Navigate again to force logging RAPPOR. 401 // Navigate again to force logging RAPPOR.
392 NavigateAndCommit(GURL(kDefaultTestUrl2)); 402 NavigateAndCommit(GURL(kDefaultTestUrl2));
393 rappor::TestSample::Shadow* sample_obj = 403 rappor::TestSample::Shadow* sample_obj =
394 rappor_tester_.GetRecordedSampleForMetric( 404 rappor_tester_.GetRecordedSampleForMetric(
395 internal::kRapporMetricsNameCoarseTiming); 405 internal::kRapporMetricsNameCoarseTiming);
396 const auto& string_it = sample_obj->string_fields.find("Domain"); 406 const auto& string_it = sample_obj->string_fields.find("Domain");
397 EXPECT_NE(string_it, sample_obj->string_fields.end()); 407 EXPECT_NE(string_it, sample_obj->string_fields.end());
398 EXPECT_EQ(rappor::GetDomainAndRegistrySampleFromGURL(GURL(kDefaultTestUrl)), 408 EXPECT_EQ(rappor::GetDomainAndRegistrySampleFromGURL(GURL(kDefaultTestUrl)),
399 string_it->second); 409 string_it->second);
400 410
401 const auto& flag_it = sample_obj->flag_fields.find("IsSlow"); 411 const auto& flag_it = sample_obj->flag_fields.find("IsSlow");
402 EXPECT_NE(flag_it, sample_obj->flag_fields.end()); 412 EXPECT_NE(flag_it, sample_obj->flag_fields.end());
403 EXPECT_EQ(0u, flag_it->second); 413 EXPECT_EQ(0u, flag_it->second);
404 } 414 }
405 415
406 TEST_F(CorePageLoadMetricsObserverTest, Reload) { 416 TEST_F(CorePageLoadMetricsObserverTest, Reload) {
407 page_load_metrics::PageLoadTiming timing; 417 page_load_metrics::mojom::PageLoadTiming timing;
418 page_load_metrics::InitPageLoadTimingForTest(&timing);
408 timing.navigation_start = base::Time::FromDoubleT(1); 419 timing.navigation_start = base::Time::FromDoubleT(1);
409 timing.parse_timing.parse_start = base::TimeDelta::FromMilliseconds(5); 420 timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(5);
410 timing.paint_timing.first_contentful_paint = 421 timing.paint_timing->first_contentful_paint =
411 base::TimeDelta::FromMilliseconds(10); 422 base::TimeDelta::FromMilliseconds(10);
412 PopulateRequiredTimingFields(&timing); 423 PopulateRequiredTimingFields(&timing);
413 424
414 GURL url(kDefaultTestUrl); 425 GURL url(kDefaultTestUrl);
415 NavigateWithPageTransitionAndCommit(url, ui::PAGE_TRANSITION_RELOAD); 426 NavigateWithPageTransitionAndCommit(url, ui::PAGE_TRANSITION_RELOAD);
416 SimulateTimingUpdate(timing); 427 SimulateTimingUpdate(timing);
417 428
418 page_load_metrics::ExtraRequestCompleteInfo resources[] = { 429 page_load_metrics::ExtraRequestCompleteInfo resources[] = {
419 // Cached request. 430 // Cached request.
420 431
(...skipping 19 matching lines...) Expand all
440 cache_bytes += request.raw_body_bytes; 451 cache_bytes += request.raw_body_bytes;
441 } 452 }
442 } 453 }
443 454
444 NavigateToUntrackedUrl(); 455 NavigateToUntrackedUrl();
445 456
446 histogram_tester().ExpectTotalCount( 457 histogram_tester().ExpectTotalCount(
447 internal::kHistogramLoadTypeFirstContentfulPaintReload, 1); 458 internal::kHistogramLoadTypeFirstContentfulPaintReload, 1);
448 histogram_tester().ExpectBucketCount( 459 histogram_tester().ExpectBucketCount(
449 internal::kHistogramLoadTypeFirstContentfulPaintReload, 460 internal::kHistogramLoadTypeFirstContentfulPaintReload,
450 timing.paint_timing.first_contentful_paint.value().InMilliseconds(), 1); 461 timing.paint_timing->first_contentful_paint.value().InMilliseconds(), 1);
451 histogram_tester().ExpectTotalCount( 462 histogram_tester().ExpectTotalCount(
452 internal::kHistogramLoadTypeFirstContentfulPaintForwardBack, 0); 463 internal::kHistogramLoadTypeFirstContentfulPaintForwardBack, 0);
453 histogram_tester().ExpectTotalCount( 464 histogram_tester().ExpectTotalCount(
454 internal::kHistogramLoadTypeFirstContentfulPaintNewNavigation, 0); 465 internal::kHistogramLoadTypeFirstContentfulPaintNewNavigation, 0);
455 histogram_tester().ExpectTotalCount( 466 histogram_tester().ExpectTotalCount(
456 internal::kHistogramLoadTypeParseStartReload, 1); 467 internal::kHistogramLoadTypeParseStartReload, 1);
457 histogram_tester().ExpectBucketCount( 468 histogram_tester().ExpectBucketCount(
458 internal::kHistogramLoadTypeParseStartReload, 469 internal::kHistogramLoadTypeParseStartReload,
459 timing.parse_timing.parse_start.value().InMilliseconds(), 1); 470 timing.parse_timing->parse_start.value().InMilliseconds(), 1);
460 histogram_tester().ExpectTotalCount( 471 histogram_tester().ExpectTotalCount(
461 internal::kHistogramLoadTypeParseStartForwardBack, 0); 472 internal::kHistogramLoadTypeParseStartForwardBack, 0);
462 histogram_tester().ExpectTotalCount( 473 histogram_tester().ExpectTotalCount(
463 internal::kHistogramLoadTypeParseStartNewNavigation, 0); 474 internal::kHistogramLoadTypeParseStartNewNavigation, 0);
464 475
465 histogram_tester().ExpectUniqueSample( 476 histogram_tester().ExpectUniqueSample(
466 internal::kHistogramLoadTypeNetworkBytesReload, 477 internal::kHistogramLoadTypeNetworkBytesReload,
467 static_cast<int>((network_bytes) / 1024), 1); 478 static_cast<int>((network_bytes) / 1024), 1);
468 histogram_tester().ExpectTotalCount( 479 histogram_tester().ExpectTotalCount(
469 internal::kHistogramLoadTypeNetworkBytesForwardBack, 0); 480 internal::kHistogramLoadTypeNetworkBytesForwardBack, 0);
(...skipping 11 matching lines...) Expand all
481 histogram_tester().ExpectUniqueSample( 492 histogram_tester().ExpectUniqueSample(
482 internal::kHistogramLoadTypeTotalBytesReload, 493 internal::kHistogramLoadTypeTotalBytesReload,
483 static_cast<int>((network_bytes + cache_bytes) / 1024), 1); 494 static_cast<int>((network_bytes + cache_bytes) / 1024), 1);
484 histogram_tester().ExpectTotalCount( 495 histogram_tester().ExpectTotalCount(
485 internal::kHistogramLoadTypeTotalBytesForwardBack, 0); 496 internal::kHistogramLoadTypeTotalBytesForwardBack, 0);
486 histogram_tester().ExpectTotalCount( 497 histogram_tester().ExpectTotalCount(
487 internal::kHistogramLoadTypeTotalBytesNewNavigation, 0); 498 internal::kHistogramLoadTypeTotalBytesNewNavigation, 0);
488 } 499 }
489 500
490 TEST_F(CorePageLoadMetricsObserverTest, ForwardBack) { 501 TEST_F(CorePageLoadMetricsObserverTest, ForwardBack) {
491 page_load_metrics::PageLoadTiming timing; 502 page_load_metrics::mojom::PageLoadTiming timing;
503 page_load_metrics::InitPageLoadTimingForTest(&timing);
492 timing.navigation_start = base::Time::FromDoubleT(1); 504 timing.navigation_start = base::Time::FromDoubleT(1);
493 timing.parse_timing.parse_start = base::TimeDelta::FromMilliseconds(5); 505 timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(5);
494 timing.paint_timing.first_contentful_paint = 506 timing.paint_timing->first_contentful_paint =
495 base::TimeDelta::FromMilliseconds(10); 507 base::TimeDelta::FromMilliseconds(10);
496 PopulateRequiredTimingFields(&timing); 508 PopulateRequiredTimingFields(&timing);
497 509
498 GURL url(kDefaultTestUrl); 510 GURL url(kDefaultTestUrl);
499 // Back navigations to a page that was reloaded report a main transition type 511 // Back navigations to a page that was reloaded report a main transition type
500 // of PAGE_TRANSITION_RELOAD with a PAGE_TRANSITION_FORWARD_BACK 512 // of PAGE_TRANSITION_RELOAD with a PAGE_TRANSITION_FORWARD_BACK
501 // modifier. This test verifies that when we encounter such a page, we log it 513 // modifier. This test verifies that when we encounter such a page, we log it
502 // as a forward/back navigation. 514 // as a forward/back navigation.
503 NavigateWithPageTransitionAndCommit( 515 NavigateWithPageTransitionAndCommit(
504 url, ui::PageTransitionFromInt(ui::PAGE_TRANSITION_RELOAD | 516 url, ui::PageTransitionFromInt(ui::PAGE_TRANSITION_RELOAD |
(...skipping 26 matching lines...) Expand all
531 } 543 }
532 544
533 NavigateToUntrackedUrl(); 545 NavigateToUntrackedUrl();
534 546
535 histogram_tester().ExpectTotalCount( 547 histogram_tester().ExpectTotalCount(
536 internal::kHistogramLoadTypeFirstContentfulPaintReload, 0); 548 internal::kHistogramLoadTypeFirstContentfulPaintReload, 0);
537 histogram_tester().ExpectTotalCount( 549 histogram_tester().ExpectTotalCount(
538 internal::kHistogramLoadTypeFirstContentfulPaintForwardBack, 1); 550 internal::kHistogramLoadTypeFirstContentfulPaintForwardBack, 1);
539 histogram_tester().ExpectBucketCount( 551 histogram_tester().ExpectBucketCount(
540 internal::kHistogramLoadTypeFirstContentfulPaintForwardBack, 552 internal::kHistogramLoadTypeFirstContentfulPaintForwardBack,
541 timing.paint_timing.first_contentful_paint.value().InMilliseconds(), 1); 553 timing.paint_timing->first_contentful_paint.value().InMilliseconds(), 1);
542 histogram_tester().ExpectTotalCount( 554 histogram_tester().ExpectTotalCount(
543 internal::kHistogramLoadTypeFirstContentfulPaintNewNavigation, 0); 555 internal::kHistogramLoadTypeFirstContentfulPaintNewNavigation, 0);
544 histogram_tester().ExpectTotalCount( 556 histogram_tester().ExpectTotalCount(
545 internal::kHistogramLoadTypeParseStartReload, 0); 557 internal::kHistogramLoadTypeParseStartReload, 0);
546 histogram_tester().ExpectTotalCount( 558 histogram_tester().ExpectTotalCount(
547 internal::kHistogramLoadTypeParseStartForwardBack, 1); 559 internal::kHistogramLoadTypeParseStartForwardBack, 1);
548 histogram_tester().ExpectBucketCount( 560 histogram_tester().ExpectBucketCount(
549 internal::kHistogramLoadTypeParseStartForwardBack, 561 internal::kHistogramLoadTypeParseStartForwardBack,
550 timing.parse_timing.parse_start.value().InMilliseconds(), 1); 562 timing.parse_timing->parse_start.value().InMilliseconds(), 1);
551 histogram_tester().ExpectTotalCount( 563 histogram_tester().ExpectTotalCount(
552 internal::kHistogramLoadTypeParseStartNewNavigation, 0); 564 internal::kHistogramLoadTypeParseStartNewNavigation, 0);
553 565
554 histogram_tester().ExpectUniqueSample( 566 histogram_tester().ExpectUniqueSample(
555 internal::kHistogramLoadTypeNetworkBytesForwardBack, 567 internal::kHistogramLoadTypeNetworkBytesForwardBack,
556 static_cast<int>((network_bytes) / 1024), 1); 568 static_cast<int>((network_bytes) / 1024), 1);
557 histogram_tester().ExpectTotalCount( 569 histogram_tester().ExpectTotalCount(
558 internal::kHistogramLoadTypeNetworkBytesNewNavigation, 0); 570 internal::kHistogramLoadTypeNetworkBytesNewNavigation, 0);
559 histogram_tester().ExpectTotalCount( 571 histogram_tester().ExpectTotalCount(
560 internal::kHistogramLoadTypeNetworkBytesReload, 0); 572 internal::kHistogramLoadTypeNetworkBytesReload, 0);
561 573
562 histogram_tester().ExpectUniqueSample( 574 histogram_tester().ExpectUniqueSample(
563 internal::kHistogramLoadTypeCacheBytesForwardBack, 575 internal::kHistogramLoadTypeCacheBytesForwardBack,
564 static_cast<int>((cache_bytes) / 1024), 1); 576 static_cast<int>((cache_bytes) / 1024), 1);
565 histogram_tester().ExpectTotalCount( 577 histogram_tester().ExpectTotalCount(
566 internal::kHistogramLoadTypeCacheBytesNewNavigation, 0); 578 internal::kHistogramLoadTypeCacheBytesNewNavigation, 0);
567 histogram_tester().ExpectTotalCount( 579 histogram_tester().ExpectTotalCount(
568 internal::kHistogramLoadTypeCacheBytesReload, 0); 580 internal::kHistogramLoadTypeCacheBytesReload, 0);
569 581
570 histogram_tester().ExpectUniqueSample( 582 histogram_tester().ExpectUniqueSample(
571 internal::kHistogramLoadTypeTotalBytesForwardBack, 583 internal::kHistogramLoadTypeTotalBytesForwardBack,
572 static_cast<int>((network_bytes + cache_bytes) / 1024), 1); 584 static_cast<int>((network_bytes + cache_bytes) / 1024), 1);
573 histogram_tester().ExpectTotalCount( 585 histogram_tester().ExpectTotalCount(
574 internal::kHistogramLoadTypeTotalBytesNewNavigation, 0); 586 internal::kHistogramLoadTypeTotalBytesNewNavigation, 0);
575 histogram_tester().ExpectTotalCount( 587 histogram_tester().ExpectTotalCount(
576 internal::kHistogramLoadTypeTotalBytesReload, 0); 588 internal::kHistogramLoadTypeTotalBytesReload, 0);
577 } 589 }
578 590
579 TEST_F(CorePageLoadMetricsObserverTest, NewNavigation) { 591 TEST_F(CorePageLoadMetricsObserverTest, NewNavigation) {
580 page_load_metrics::PageLoadTiming timing; 592 page_load_metrics::mojom::PageLoadTiming timing;
593 page_load_metrics::InitPageLoadTimingForTest(&timing);
581 timing.navigation_start = base::Time::FromDoubleT(1); 594 timing.navigation_start = base::Time::FromDoubleT(1);
582 timing.parse_timing.parse_start = base::TimeDelta::FromMilliseconds(5); 595 timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(5);
583 timing.paint_timing.first_contentful_paint = 596 timing.paint_timing->first_contentful_paint =
584 base::TimeDelta::FromMilliseconds(10); 597 base::TimeDelta::FromMilliseconds(10);
585 PopulateRequiredTimingFields(&timing); 598 PopulateRequiredTimingFields(&timing);
586 599
587 GURL url(kDefaultTestUrl); 600 GURL url(kDefaultTestUrl);
588 NavigateWithPageTransitionAndCommit(url, ui::PAGE_TRANSITION_LINK); 601 NavigateWithPageTransitionAndCommit(url, ui::PAGE_TRANSITION_LINK);
589 SimulateTimingUpdate(timing); 602 SimulateTimingUpdate(timing);
590 603
591 page_load_metrics::ExtraRequestCompleteInfo resources[] = { 604 page_load_metrics::ExtraRequestCompleteInfo resources[] = {
592 // Cached request. 605 // Cached request.
593 {GURL(), -1 /* frame_tree_node_id */, true /*was_cached*/, 606 {GURL(), -1 /* frame_tree_node_id */, true /*was_cached*/,
(...skipping 22 matching lines...) Expand all
616 NavigateToUntrackedUrl(); 629 NavigateToUntrackedUrl();
617 630
618 histogram_tester().ExpectTotalCount( 631 histogram_tester().ExpectTotalCount(
619 internal::kHistogramLoadTypeFirstContentfulPaintReload, 0); 632 internal::kHistogramLoadTypeFirstContentfulPaintReload, 0);
620 histogram_tester().ExpectTotalCount( 633 histogram_tester().ExpectTotalCount(
621 internal::kHistogramLoadTypeFirstContentfulPaintForwardBack, 0); 634 internal::kHistogramLoadTypeFirstContentfulPaintForwardBack, 0);
622 histogram_tester().ExpectTotalCount( 635 histogram_tester().ExpectTotalCount(
623 internal::kHistogramLoadTypeFirstContentfulPaintNewNavigation, 1); 636 internal::kHistogramLoadTypeFirstContentfulPaintNewNavigation, 1);
624 histogram_tester().ExpectBucketCount( 637 histogram_tester().ExpectBucketCount(
625 internal::kHistogramLoadTypeFirstContentfulPaintNewNavigation, 638 internal::kHistogramLoadTypeFirstContentfulPaintNewNavigation,
626 timing.paint_timing.first_contentful_paint.value().InMilliseconds(), 1); 639 timing.paint_timing->first_contentful_paint.value().InMilliseconds(), 1);
627 histogram_tester().ExpectTotalCount( 640 histogram_tester().ExpectTotalCount(
628 internal::kHistogramLoadTypeParseStartReload, 0); 641 internal::kHistogramLoadTypeParseStartReload, 0);
629 histogram_tester().ExpectTotalCount( 642 histogram_tester().ExpectTotalCount(
630 internal::kHistogramLoadTypeParseStartForwardBack, 0); 643 internal::kHistogramLoadTypeParseStartForwardBack, 0);
631 histogram_tester().ExpectTotalCount( 644 histogram_tester().ExpectTotalCount(
632 internal::kHistogramLoadTypeParseStartNewNavigation, 1); 645 internal::kHistogramLoadTypeParseStartNewNavigation, 1);
633 histogram_tester().ExpectBucketCount( 646 histogram_tester().ExpectBucketCount(
634 internal::kHistogramLoadTypeParseStartNewNavigation, 647 internal::kHistogramLoadTypeParseStartNewNavigation,
635 timing.parse_timing.parse_start.value().InMilliseconds(), 1); 648 timing.parse_timing->parse_start.value().InMilliseconds(), 1);
636 649
637 histogram_tester().ExpectUniqueSample( 650 histogram_tester().ExpectUniqueSample(
638 internal::kHistogramLoadTypeNetworkBytesNewNavigation, 651 internal::kHistogramLoadTypeNetworkBytesNewNavigation,
639 static_cast<int>((network_bytes) / 1024), 1); 652 static_cast<int>((network_bytes) / 1024), 1);
640 histogram_tester().ExpectTotalCount( 653 histogram_tester().ExpectTotalCount(
641 internal::kHistogramLoadTypeNetworkBytesForwardBack, 0); 654 internal::kHistogramLoadTypeNetworkBytesForwardBack, 0);
642 histogram_tester().ExpectTotalCount( 655 histogram_tester().ExpectTotalCount(
643 internal::kHistogramLoadTypeNetworkBytesReload, 0); 656 internal::kHistogramLoadTypeNetworkBytesReload, 0);
644 657
645 histogram_tester().ExpectUniqueSample( 658 histogram_tester().ExpectUniqueSample(
(...skipping 21 matching lines...) Expand all
667 histogram_tester().ExpectTotalCount(internal::kHistogramCacheBytes, 1); 680 histogram_tester().ExpectTotalCount(internal::kHistogramCacheBytes, 1);
668 histogram_tester().ExpectTotalCount( 681 histogram_tester().ExpectTotalCount(
669 internal::kHistogramTotalCompletedResources, 1); 682 internal::kHistogramTotalCompletedResources, 1);
670 histogram_tester().ExpectTotalCount( 683 histogram_tester().ExpectTotalCount(
671 internal::kHistogramNetworkCompletedResources, 1); 684 internal::kHistogramNetworkCompletedResources, 1);
672 histogram_tester().ExpectTotalCount( 685 histogram_tester().ExpectTotalCount(
673 internal::kHistogramCacheCompletedResources, 1); 686 internal::kHistogramCacheCompletedResources, 1);
674 } 687 }
675 688
676 TEST_F(CorePageLoadMetricsObserverTest, FirstMeaningfulPaint) { 689 TEST_F(CorePageLoadMetricsObserverTest, FirstMeaningfulPaint) {
677 page_load_metrics::PageLoadTiming timing; 690 page_load_metrics::mojom::PageLoadTiming timing;
691 page_load_metrics::InitPageLoadTimingForTest(&timing);
678 timing.navigation_start = base::Time::FromDoubleT(1); 692 timing.navigation_start = base::Time::FromDoubleT(1);
679 timing.parse_timing.parse_start = base::TimeDelta::FromMilliseconds(5); 693 timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(5);
680 timing.paint_timing.first_meaningful_paint = 694 timing.paint_timing->first_meaningful_paint =
681 base::TimeDelta::FromMilliseconds(10); 695 base::TimeDelta::FromMilliseconds(10);
682 PopulateRequiredTimingFields(&timing); 696 PopulateRequiredTimingFields(&timing);
683 697
684 NavigateAndCommit(GURL(kDefaultTestUrl)); 698 NavigateAndCommit(GURL(kDefaultTestUrl));
685 SimulateTimingUpdate(timing); 699 SimulateTimingUpdate(timing);
686 NavigateAndCommit(GURL(kDefaultTestUrl2)); 700 NavigateAndCommit(GURL(kDefaultTestUrl2));
687 701
688 histogram_tester().ExpectTotalCount( 702 histogram_tester().ExpectTotalCount(
689 internal::kHistogramFirstMeaningfulPaint, 1); 703 internal::kHistogramFirstMeaningfulPaint, 1);
690 histogram_tester().ExpectTotalCount( 704 histogram_tester().ExpectTotalCount(
691 internal::kHistogramParseStartToFirstMeaningfulPaint, 1); 705 internal::kHistogramParseStartToFirstMeaningfulPaint, 1);
692 histogram_tester().ExpectBucketCount( 706 histogram_tester().ExpectBucketCount(
693 internal::kHistogramFirstMeaningfulPaintStatus, 707 internal::kHistogramFirstMeaningfulPaintStatus,
694 internal::FIRST_MEANINGFUL_PAINT_RECORDED, 1); 708 internal::FIRST_MEANINGFUL_PAINT_RECORDED, 1);
695 } 709 }
696 710
697 TEST_F(CorePageLoadMetricsObserverTest, FirstMeaningfulPaintAfterInteraction) { 711 TEST_F(CorePageLoadMetricsObserverTest, FirstMeaningfulPaintAfterInteraction) {
698 page_load_metrics::PageLoadTiming timing; 712 page_load_metrics::mojom::PageLoadTiming timing;
713 page_load_metrics::InitPageLoadTimingForTest(&timing);
699 timing.navigation_start = base::Time::FromDoubleT(1); 714 timing.navigation_start = base::Time::FromDoubleT(1);
700 timing.parse_timing.parse_start = base::TimeDelta::FromMilliseconds(5); 715 timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(5);
701 timing.paint_timing.first_paint = base::TimeDelta::FromMilliseconds(10); 716 timing.paint_timing->first_paint = base::TimeDelta::FromMilliseconds(10);
702 PopulateRequiredTimingFields(&timing); 717 PopulateRequiredTimingFields(&timing);
703 718
704 NavigateAndCommit(GURL(kDefaultTestUrl)); 719 NavigateAndCommit(GURL(kDefaultTestUrl));
705 SimulateTimingUpdate(timing); 720 SimulateTimingUpdate(timing);
706 721
707 blink::WebMouseEvent mouse_event(blink::WebInputEvent::kMouseDown, 722 blink::WebMouseEvent mouse_event(blink::WebInputEvent::kMouseDown,
708 blink::WebInputEvent::kNoModifiers, 723 blink::WebInputEvent::kNoModifiers,
709 blink::WebInputEvent::kTimeStampForTesting); 724 blink::WebInputEvent::kTimeStampForTesting);
710 SimulateInputEvent(mouse_event); 725 SimulateInputEvent(mouse_event);
711 726
712 timing.paint_timing.first_meaningful_paint = 727 timing.paint_timing->first_meaningful_paint =
713 base::TimeDelta::FromMilliseconds(1000); 728 base::TimeDelta::FromMilliseconds(1000);
714 PopulateRequiredTimingFields(&timing); 729 PopulateRequiredTimingFields(&timing);
715 SimulateTimingUpdate(timing); 730 SimulateTimingUpdate(timing);
716 731
717 NavigateAndCommit(GURL(kDefaultTestUrl2)); 732 NavigateAndCommit(GURL(kDefaultTestUrl2));
718 733
719 histogram_tester().ExpectTotalCount( 734 histogram_tester().ExpectTotalCount(
720 internal::kHistogramFirstMeaningfulPaint, 0); 735 internal::kHistogramFirstMeaningfulPaint, 0);
721 histogram_tester().ExpectTotalCount( 736 histogram_tester().ExpectTotalCount(
722 internal::kHistogramParseStartToFirstMeaningfulPaint, 0); 737 internal::kHistogramParseStartToFirstMeaningfulPaint, 0);
723 histogram_tester().ExpectBucketCount( 738 histogram_tester().ExpectBucketCount(
724 internal::kHistogramFirstMeaningfulPaintStatus, 739 internal::kHistogramFirstMeaningfulPaintStatus,
725 internal::FIRST_MEANINGFUL_PAINT_USER_INTERACTION_BEFORE_FMP, 1); 740 internal::FIRST_MEANINGFUL_PAINT_USER_INTERACTION_BEFORE_FMP, 1);
726 } 741 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698