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

Side by Side Diff: chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/document_write_page_load_me trics_observer.h" 5 #include "chrome/browser/page_load_metrics/observers/document_write_page_load_me trics_observer.h"
6 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h" 6 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h"
7 #include "third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h" 7 #include "third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h"
8 8
9 namespace internal { 9 namespace internal {
10 const char kHistogramDocWriteFirstContentfulPaint[] = 10 const char kHistogramDocWriteFirstContentfulPaint[] =
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 const char kHistogramDocWriteBlockCount[] = 70 const char kHistogramDocWriteBlockCount[] =
71 "PageLoad.Clients.DocWrite.Block.Count"; 71 "PageLoad.Clients.DocWrite.Block.Count";
72 const char kHistogramDocWriteBlockReloadCount[] = 72 const char kHistogramDocWriteBlockReloadCount[] =
73 "PageLoad.Clients.DocWrite.Block.ReloadCount"; 73 "PageLoad.Clients.DocWrite.Block.ReloadCount";
74 const char kHistogramDocWriteBlockLoadingBehavior[] = 74 const char kHistogramDocWriteBlockLoadingBehavior[] =
75 "PageLoad.Clients.DocWrite.Block.DocumentWriteLoadingBehavior"; 75 "PageLoad.Clients.DocWrite.Block.DocumentWriteLoadingBehavior";
76 76
77 } // namespace internal 77 } // namespace internal
78 78
79 void DocumentWritePageLoadMetricsObserver::OnFirstContentfulPaintInPage( 79 void DocumentWritePageLoadMetricsObserver::OnFirstContentfulPaintInPage(
80 const page_load_metrics::PageLoadTiming& timing, 80 const page_load_metrics::mojom::PageLoadTiming& timing,
81 const page_load_metrics::PageLoadExtraInfo& info) { 81 const page_load_metrics::PageLoadExtraInfo& info) {
82 if (info.main_frame_metadata.behavior_flags & 82 if (info.main_frame_metadata.behavior_flags &
83 blink::WebLoadingBehaviorFlag:: 83 blink::WebLoadingBehaviorFlag::
84 kWebLoadingBehaviorDocumentWriteEvaluator) { 84 kWebLoadingBehaviorDocumentWriteEvaluator) {
85 LogDocumentWriteEvaluatorFirstContentfulPaint(timing, info); 85 LogDocumentWriteEvaluatorFirstContentfulPaint(timing, info);
86 } 86 }
87 if (info.main_frame_metadata.behavior_flags & 87 if (info.main_frame_metadata.behavior_flags &
88 blink::WebLoadingBehaviorFlag::kWebLoadingBehaviorDocumentWriteBlock) { 88 blink::WebLoadingBehaviorFlag::kWebLoadingBehaviorDocumentWriteBlock) {
89 LogDocumentWriteBlockFirstContentfulPaint(timing, info); 89 LogDocumentWriteBlockFirstContentfulPaint(timing, info);
90 } 90 }
91 } 91 }
92 92
93 void DocumentWritePageLoadMetricsObserver:: 93 void DocumentWritePageLoadMetricsObserver::
94 OnFirstMeaningfulPaintInMainFrameDocument( 94 OnFirstMeaningfulPaintInMainFrameDocument(
95 const page_load_metrics::PageLoadTiming& timing, 95 const page_load_metrics::mojom::PageLoadTiming& timing,
96 const page_load_metrics::PageLoadExtraInfo& info) { 96 const page_load_metrics::PageLoadExtraInfo& info) {
97 if (info.main_frame_metadata.behavior_flags & 97 if (info.main_frame_metadata.behavior_flags &
98 blink::WebLoadingBehaviorFlag:: 98 blink::WebLoadingBehaviorFlag::
99 kWebLoadingBehaviorDocumentWriteEvaluator) { 99 kWebLoadingBehaviorDocumentWriteEvaluator) {
100 LogDocumentWriteEvaluatorFirstMeaningfulPaint(timing, info); 100 LogDocumentWriteEvaluatorFirstMeaningfulPaint(timing, info);
101 } 101 }
102 if (info.main_frame_metadata.behavior_flags & 102 if (info.main_frame_metadata.behavior_flags &
103 blink::WebLoadingBehaviorFlag::kWebLoadingBehaviorDocumentWriteBlock) { 103 blink::WebLoadingBehaviorFlag::kWebLoadingBehaviorDocumentWriteBlock) {
104 LogDocumentWriteBlockFirstMeaningfulPaint(timing, info); 104 LogDocumentWriteBlockFirstMeaningfulPaint(timing, info);
105 } 105 }
106 } 106 }
107 107
108 void DocumentWritePageLoadMetricsObserver::OnParseStop( 108 void DocumentWritePageLoadMetricsObserver::OnParseStop(
109 const page_load_metrics::PageLoadTiming& timing, 109 const page_load_metrics::mojom::PageLoadTiming& timing,
110 const page_load_metrics::PageLoadExtraInfo& info) { 110 const page_load_metrics::PageLoadExtraInfo& info) {
111 if (info.main_frame_metadata.behavior_flags & 111 if (info.main_frame_metadata.behavior_flags &
112 blink::WebLoadingBehaviorFlag:: 112 blink::WebLoadingBehaviorFlag::
113 kWebLoadingBehaviorDocumentWriteEvaluator) { 113 kWebLoadingBehaviorDocumentWriteEvaluator) {
114 LogDocumentWriteEvaluatorParseStop(timing, info); 114 LogDocumentWriteEvaluatorParseStop(timing, info);
115 } 115 }
116 if (info.main_frame_metadata.behavior_flags & 116 if (info.main_frame_metadata.behavior_flags &
117 blink::WebLoadingBehaviorFlag::kWebLoadingBehaviorDocumentWriteBlock) { 117 blink::WebLoadingBehaviorFlag::kWebLoadingBehaviorDocumentWriteBlock) {
118 LogDocumentWriteBlockParseStop(timing, info); 118 LogDocumentWriteBlockParseStop(timing, info);
119 } 119 }
(...skipping 30 matching lines...) Expand all
150 blink::WebLoadingBehaviorFlag:: 150 blink::WebLoadingBehaviorFlag::
151 kWebLoadingBehaviorDocumentWriteBlockDifferentScheme) && 151 kWebLoadingBehaviorDocumentWriteBlockDifferentScheme) &&
152 !doc_write_same_site_diff_scheme_) { 152 !doc_write_same_site_diff_scheme_) {
153 LogLoadingBehaviorMetrics(LOADING_BEHAVIOR_SAME_SITE_DIFF_SCHEME); 153 LogLoadingBehaviorMetrics(LOADING_BEHAVIOR_SAME_SITE_DIFF_SCHEME);
154 doc_write_same_site_diff_scheme_ = true; 154 doc_write_same_site_diff_scheme_ = true;
155 } 155 }
156 } 156 }
157 157
158 void DocumentWritePageLoadMetricsObserver:: 158 void DocumentWritePageLoadMetricsObserver::
159 LogDocumentWriteEvaluatorFirstContentfulPaint( 159 LogDocumentWriteEvaluatorFirstContentfulPaint(
160 const page_load_metrics::PageLoadTiming& timing, 160 const page_load_metrics::mojom::PageLoadTiming& timing,
161 const page_load_metrics::PageLoadExtraInfo& info) { 161 const page_load_metrics::PageLoadExtraInfo& info) {
162 if (WasStartedInForegroundOptionalEventInForeground( 162 if (WasStartedInForegroundOptionalEventInForeground(
163 timing.paint_timing.first_contentful_paint, info)) { 163 timing.paint_timing->first_contentful_paint, info)) {
164 PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteFirstContentfulPaint, 164 PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteFirstContentfulPaint,
165 timing.paint_timing.first_contentful_paint.value()); 165 timing.paint_timing->first_contentful_paint.value());
166 PAGE_LOAD_HISTOGRAM( 166 PAGE_LOAD_HISTOGRAM(
167 internal::kHistogramDocWriteParseStartToFirstContentfulPaint, 167 internal::kHistogramDocWriteParseStartToFirstContentfulPaint,
168 timing.paint_timing.first_contentful_paint.value() - 168 timing.paint_timing->first_contentful_paint.value() -
169 timing.parse_timing.parse_start.value()); 169 timing.parse_timing->parse_start.value());
170 } else { 170 } else {
171 PAGE_LOAD_HISTOGRAM( 171 PAGE_LOAD_HISTOGRAM(
172 internal::kBackgroundHistogramDocWriteFirstContentfulPaint, 172 internal::kBackgroundHistogramDocWriteFirstContentfulPaint,
173 timing.paint_timing.first_contentful_paint.value()); 173 timing.paint_timing->first_contentful_paint.value());
174 } 174 }
175 } 175 }
176 176
177 // Note: The first meaningful paint calculation in the core observer filters 177 // Note: The first meaningful paint calculation in the core observer filters
178 // out pages which had user interaction before the first meaningful paint. 178 // out pages which had user interaction before the first meaningful paint.
179 // Because the counts of those instances are low (< 2%), just log everything 179 // Because the counts of those instances are low (< 2%), just log everything
180 // here for simplicity. If this ends up being unreliable (the 2% is just from 180 // here for simplicity. If this ends up being unreliable (the 2% is just from
181 // canary), the page_load_metrics API should be altered to return the values 181 // canary), the page_load_metrics API should be altered to return the values
182 // the consumer wants. 182 // the consumer wants.
183 void DocumentWritePageLoadMetricsObserver:: 183 void DocumentWritePageLoadMetricsObserver::
184 LogDocumentWriteEvaluatorFirstMeaningfulPaint( 184 LogDocumentWriteEvaluatorFirstMeaningfulPaint(
185 const page_load_metrics::PageLoadTiming& timing, 185 const page_load_metrics::mojom::PageLoadTiming& timing,
186 const page_load_metrics::PageLoadExtraInfo& info) { 186 const page_load_metrics::PageLoadExtraInfo& info) {
187 if (WasStartedInForegroundOptionalEventInForeground( 187 if (WasStartedInForegroundOptionalEventInForeground(
188 timing.paint_timing.first_meaningful_paint, info)) { 188 timing.paint_timing->first_meaningful_paint, info)) {
189 PAGE_LOAD_HISTOGRAM( 189 PAGE_LOAD_HISTOGRAM(
190 "PageLoad.Clients.DocWrite.Evaluator.Experimental.PaintTiming." 190 "PageLoad.Clients.DocWrite.Evaluator.Experimental.PaintTiming."
191 "ParseStartToFirstMeaningfulPaint", 191 "ParseStartToFirstMeaningfulPaint",
192 timing.paint_timing.first_meaningful_paint.value() - 192 timing.paint_timing->first_meaningful_paint.value() -
193 timing.parse_timing.parse_start.value()); 193 timing.parse_timing->parse_start.value());
194 } 194 }
195 } 195 }
196 196
197 void DocumentWritePageLoadMetricsObserver:: 197 void DocumentWritePageLoadMetricsObserver::
198 LogDocumentWriteBlockFirstMeaningfulPaint( 198 LogDocumentWriteBlockFirstMeaningfulPaint(
199 const page_load_metrics::PageLoadTiming& timing, 199 const page_load_metrics::mojom::PageLoadTiming& timing,
200 const page_load_metrics::PageLoadExtraInfo& info) { 200 const page_load_metrics::PageLoadExtraInfo& info) {
201 if (WasStartedInForegroundOptionalEventInForeground( 201 if (WasStartedInForegroundOptionalEventInForeground(
202 timing.paint_timing.first_meaningful_paint, info)) { 202 timing.paint_timing->first_meaningful_paint, info)) {
203 PAGE_LOAD_HISTOGRAM( 203 PAGE_LOAD_HISTOGRAM(
204 "PageLoad.Clients.DocWrite.Block.Experimental.PaintTiming." 204 "PageLoad.Clients.DocWrite.Block.Experimental.PaintTiming."
205 "ParseStartToFirstMeaningfulPaint", 205 "ParseStartToFirstMeaningfulPaint",
206 timing.paint_timing.first_meaningful_paint.value() - 206 timing.paint_timing->first_meaningful_paint.value() -
207 timing.parse_timing.parse_start.value()); 207 timing.parse_timing->parse_start.value());
208 } 208 }
209 } 209 }
210 210
211 void DocumentWritePageLoadMetricsObserver::LogDocumentWriteEvaluatorParseStop( 211 void DocumentWritePageLoadMetricsObserver::LogDocumentWriteEvaluatorParseStop(
212 const page_load_metrics::PageLoadTiming& timing, 212 const page_load_metrics::mojom::PageLoadTiming& timing,
213 const page_load_metrics::PageLoadExtraInfo& info) { 213 const page_load_metrics::PageLoadExtraInfo& info) {
214 base::TimeDelta parse_duration = timing.parse_timing.parse_stop.value() - 214 base::TimeDelta parse_duration = timing.parse_timing->parse_stop.value() -
215 timing.parse_timing.parse_start.value(); 215 timing.parse_timing->parse_start.value();
216 if (WasStartedInForegroundOptionalEventInForeground( 216 if (WasStartedInForegroundOptionalEventInForeground(
217 timing.parse_timing.parse_stop, info)) { 217 timing.parse_timing->parse_stop, info)) {
218 PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteParseDuration, 218 PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteParseDuration,
219 parse_duration); 219 parse_duration);
220 PAGE_LOAD_HISTOGRAM( 220 PAGE_LOAD_HISTOGRAM(
221 internal::kHistogramDocWriteParseBlockedOnScriptLoad, 221 internal::kHistogramDocWriteParseBlockedOnScriptLoad,
222 timing.parse_timing.parse_blocked_on_script_load_duration.value()); 222 timing.parse_timing->parse_blocked_on_script_load_duration.value());
223 PAGE_LOAD_HISTOGRAM( 223 PAGE_LOAD_HISTOGRAM(
224 internal::kHistogramDocWriteParseBlockedOnScriptLoadDocumentWrite, 224 internal::kHistogramDocWriteParseBlockedOnScriptLoadDocumentWrite,
225 timing.parse_timing 225 timing.parse_timing
226 .parse_blocked_on_script_load_from_document_write_duration.value()); 226 ->parse_blocked_on_script_load_from_document_write_duration
227 .value());
227 PAGE_LOAD_HISTOGRAM( 228 PAGE_LOAD_HISTOGRAM(
228 internal::kHistogramDocWriteParseBlockedOnScriptExecution, 229 internal::kHistogramDocWriteParseBlockedOnScriptExecution,
229 timing.parse_timing.parse_blocked_on_script_execution_duration.value()); 230 timing.parse_timing->parse_blocked_on_script_execution_duration
231 .value());
230 PAGE_LOAD_HISTOGRAM( 232 PAGE_LOAD_HISTOGRAM(
231 internal::kHistogramDocWriteParseBlockedOnScriptExecutionDocumentWrite, 233 internal::kHistogramDocWriteParseBlockedOnScriptExecutionDocumentWrite,
232 timing.parse_timing 234 timing.parse_timing
233 .parse_blocked_on_script_execution_from_document_write_duration 235 ->parse_blocked_on_script_execution_from_document_write_duration
234 .value()); 236 .value());
235 } else { 237 } else {
236 PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramDocWriteParseDuration, 238 PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramDocWriteParseDuration,
237 parse_duration); 239 parse_duration);
238 PAGE_LOAD_HISTOGRAM( 240 PAGE_LOAD_HISTOGRAM(
239 internal::kBackgroundHistogramDocWriteParseBlockedOnScriptLoad, 241 internal::kBackgroundHistogramDocWriteParseBlockedOnScriptLoad,
240 timing.parse_timing.parse_blocked_on_script_load_duration.value()); 242 timing.parse_timing->parse_blocked_on_script_load_duration.value());
241 PAGE_LOAD_HISTOGRAM( 243 PAGE_LOAD_HISTOGRAM(
242 internal:: 244 internal::
243 kBackgroundHistogramDocWriteParseBlockedOnScriptLoadDocumentWrite, 245 kBackgroundHistogramDocWriteParseBlockedOnScriptLoadDocumentWrite,
244 timing.parse_timing 246 timing.parse_timing
245 .parse_blocked_on_script_load_from_document_write_duration.value()); 247 ->parse_blocked_on_script_load_from_document_write_duration
248 .value());
246 } 249 }
247 } 250 }
248 251
249 void DocumentWritePageLoadMetricsObserver:: 252 void DocumentWritePageLoadMetricsObserver::
250 LogDocumentWriteBlockFirstContentfulPaint( 253 LogDocumentWriteBlockFirstContentfulPaint(
251 const page_load_metrics::PageLoadTiming& timing, 254 const page_load_metrics::mojom::PageLoadTiming& timing,
252 const page_load_metrics::PageLoadExtraInfo& info) { 255 const page_load_metrics::PageLoadExtraInfo& info) {
253 if (WasStartedInForegroundOptionalEventInForeground( 256 if (WasStartedInForegroundOptionalEventInForeground(
254 timing.paint_timing.first_contentful_paint, info)) { 257 timing.paint_timing->first_contentful_paint, info)) {
255 PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteBlockFirstContentfulPaint, 258 PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteBlockFirstContentfulPaint,
256 timing.paint_timing.first_contentful_paint.value()); 259 timing.paint_timing->first_contentful_paint.value());
257 PAGE_LOAD_HISTOGRAM( 260 PAGE_LOAD_HISTOGRAM(
258 internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint, 261 internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint,
259 timing.paint_timing.first_contentful_paint.value() - 262 timing.paint_timing->first_contentful_paint.value() -
260 timing.parse_timing.parse_start.value()); 263 timing.parse_timing->parse_start.value());
261 } 264 }
262 } 265 }
263 266
264 void DocumentWritePageLoadMetricsObserver::LogDocumentWriteBlockParseStop( 267 void DocumentWritePageLoadMetricsObserver::LogDocumentWriteBlockParseStop(
265 const page_load_metrics::PageLoadTiming& timing, 268 const page_load_metrics::mojom::PageLoadTiming& timing,
266 const page_load_metrics::PageLoadExtraInfo& info) { 269 const page_load_metrics::PageLoadExtraInfo& info) {
267 base::TimeDelta parse_duration = timing.parse_timing.parse_stop.value() - 270 base::TimeDelta parse_duration = timing.parse_timing->parse_stop.value() -
268 timing.parse_timing.parse_start.value(); 271 timing.parse_timing->parse_start.value();
269 if (WasStartedInForegroundOptionalEventInForeground( 272 if (WasStartedInForegroundOptionalEventInForeground(
270 timing.parse_timing.parse_stop, info)) { 273 timing.parse_timing->parse_stop, info)) {
271 PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteBlockParseDuration, 274 PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteBlockParseDuration,
272 parse_duration); 275 parse_duration);
273 PAGE_LOAD_HISTOGRAM( 276 PAGE_LOAD_HISTOGRAM(
274 internal::kHistogramDocWriteBlockParseBlockedOnScriptLoad, 277 internal::kHistogramDocWriteBlockParseBlockedOnScriptLoad,
275 timing.parse_timing.parse_blocked_on_script_load_duration.value()); 278 timing.parse_timing->parse_blocked_on_script_load_duration.value());
276 PAGE_LOAD_HISTOGRAM( 279 PAGE_LOAD_HISTOGRAM(
277 internal::kHistogramDocWriteBlockParseBlockedOnScriptLoadDocumentWrite, 280 internal::kHistogramDocWriteBlockParseBlockedOnScriptLoadDocumentWrite,
278 timing.parse_timing 281 timing.parse_timing
279 .parse_blocked_on_script_load_from_document_write_duration.value()); 282 ->parse_blocked_on_script_load_from_document_write_duration
283 .value());
280 PAGE_LOAD_HISTOGRAM( 284 PAGE_LOAD_HISTOGRAM(
281 internal::kHistogramDocWriteBlockParseBlockedOnScriptExecution, 285 internal::kHistogramDocWriteBlockParseBlockedOnScriptExecution,
282 timing.parse_timing.parse_blocked_on_script_execution_duration.value()); 286 timing.parse_timing->parse_blocked_on_script_execution_duration
287 .value());
283 PAGE_LOAD_HISTOGRAM( 288 PAGE_LOAD_HISTOGRAM(
284 internal:: 289 internal::
285 kHistogramDocWriteBlockParseBlockedOnScriptExecutionDocumentWrite, 290 kHistogramDocWriteBlockParseBlockedOnScriptExecutionDocumentWrite,
286 timing.parse_timing 291 timing.parse_timing
287 .parse_blocked_on_script_execution_from_document_write_duration 292 ->parse_blocked_on_script_execution_from_document_write_duration
288 .value()); 293 .value());
289 } else { 294 } else {
290 PAGE_LOAD_HISTOGRAM( 295 PAGE_LOAD_HISTOGRAM(
291 internal::kBackgroundHistogramDocWriteBlockParseDuration, 296 internal::kBackgroundHistogramDocWriteBlockParseDuration,
292 parse_duration); 297 parse_duration);
293 PAGE_LOAD_HISTOGRAM( 298 PAGE_LOAD_HISTOGRAM(
294 internal::kBackgroundHistogramDocWriteBlockParseBlockedOnScriptLoad, 299 internal::kBackgroundHistogramDocWriteBlockParseBlockedOnScriptLoad,
295 timing.parse_timing.parse_blocked_on_script_load_duration.value()); 300 timing.parse_timing->parse_blocked_on_script_load_duration.value());
296 PAGE_LOAD_HISTOGRAM( 301 PAGE_LOAD_HISTOGRAM(
297 internal::kBackgroundDocWriteBlockParseBlockedOnScriptLoadDocumentWrite, 302 internal::kBackgroundDocWriteBlockParseBlockedOnScriptLoadDocumentWrite,
298 timing.parse_timing 303 timing.parse_timing
299 .parse_blocked_on_script_load_from_document_write_duration.value()); 304 ->parse_blocked_on_script_load_from_document_write_duration
305 .value());
300 } 306 }
301 } 307 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698