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

Side by Side Diff: chrome/browser/page_load_metrics/page_load_metrics_observer.h

Issue 2737563007: Add support for tracking loading behavior of child frames. (Closed)
Patch Set: stop observing if started in background Created 3 years, 9 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 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_OBSERVER_H_ 5 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_OBSERVER_H_
6 #define CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_OBSERVER_H_ 6 #define CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_OBSERVER_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 const base::Optional<base::TimeDelta>& first_background_time, 111 const base::Optional<base::TimeDelta>& first_background_time,
112 const base::Optional<base::TimeDelta>& first_foreground_time, 112 const base::Optional<base::TimeDelta>& first_foreground_time,
113 bool started_in_foreground, 113 bool started_in_foreground,
114 UserInitiatedInfo user_initiated_info, 114 UserInitiatedInfo user_initiated_info,
115 const GURL& url, 115 const GURL& url,
116 const GURL& start_url, 116 const GURL& start_url,
117 bool did_commit, 117 bool did_commit,
118 PageEndReason page_end_reason, 118 PageEndReason page_end_reason,
119 UserInitiatedInfo page_end_user_initiated_info, 119 UserInitiatedInfo page_end_user_initiated_info,
120 const base::Optional<base::TimeDelta>& page_end_time, 120 const base::Optional<base::TimeDelta>& page_end_time,
121 const PageLoadMetadata& metadata); 121 const PageLoadMetadata& main_frame_metadata,
122 const PageLoadMetadata& child_frame_metadata);
122 123
123 // Simplified version of the constructor, intended for use in tests. 124 // Simplified version of the constructor, intended for use in tests.
124 static PageLoadExtraInfo CreateForTesting(const GURL& url, 125 static PageLoadExtraInfo CreateForTesting(const GURL& url,
125 bool started_in_foreground); 126 bool started_in_foreground);
126 127
127 PageLoadExtraInfo(const PageLoadExtraInfo& other); 128 PageLoadExtraInfo(const PageLoadExtraInfo& other);
128 129
129 ~PageLoadExtraInfo(); 130 ~PageLoadExtraInfo();
130 131
131 // The time the navigation was initiated. 132 // The time the navigation was initiated.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 // * the load of the main resource fails 180 // * the load of the main resource fails
180 // * the page load is stopped 181 // * the page load is stopped
181 // * the tab hosting the page is closed 182 // * the tab hosting the page is closed
182 // * the render process hosting the page goes away 183 // * the render process hosting the page goes away
183 // * a new navigation which later commits is initiated in the same tab 184 // * a new navigation which later commits is initiated in the same tab
184 // This field will not be set if the page is still active and hasn't yet 185 // This field will not be set if the page is still active and hasn't yet
185 // finished. 186 // finished.
186 const base::Optional<base::TimeDelta> page_end_time; 187 const base::Optional<base::TimeDelta> page_end_time;
187 188
188 // Extra information supplied to the page load metrics system from the 189 // Extra information supplied to the page load metrics system from the
189 // renderer. 190 // renderer for the main frame.
190 const PageLoadMetadata metadata; 191 const PageLoadMetadata main_frame_metadata;
192
193 // PageLoadMetadata for child frames of the current page load.
194 const PageLoadMetadata child_frame_metadata;
191 }; 195 };
192 196
193 // Container for various information about a request within a page load. 197 // Container for various information about a request within a page load.
194 struct ExtraRequestInfo { 198 struct ExtraRequestInfo {
195 ExtraRequestInfo(bool was_cached, 199 ExtraRequestInfo(bool was_cached,
196 int64_t raw_body_bytes, 200 int64_t raw_body_bytes,
197 bool data_reduction_proxy_used, 201 bool data_reduction_proxy_used,
198 int64_t original_network_content_length); 202 int64_t original_network_content_length);
199 203
200 ExtraRequestInfo(const ExtraRequestInfo& other); 204 ExtraRequestInfo(const ExtraRequestInfo& other);
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 const PageLoadExtraInfo& extra_info) {} 311 const PageLoadExtraInfo& extra_info) {}
308 virtual void OnFirstContentfulPaint(const PageLoadTiming& timing, 312 virtual void OnFirstContentfulPaint(const PageLoadTiming& timing,
309 const PageLoadExtraInfo& extra_info) {} 313 const PageLoadExtraInfo& extra_info) {}
310 virtual void OnFirstMeaningfulPaint(const PageLoadTiming& timing, 314 virtual void OnFirstMeaningfulPaint(const PageLoadTiming& timing,
311 const PageLoadExtraInfo& extra_info) {} 315 const PageLoadExtraInfo& extra_info) {}
312 virtual void OnParseStart(const PageLoadTiming& timing, 316 virtual void OnParseStart(const PageLoadTiming& timing,
313 const PageLoadExtraInfo& extra_info) {} 317 const PageLoadExtraInfo& extra_info) {}
314 virtual void OnParseStop(const PageLoadTiming& timing, 318 virtual void OnParseStop(const PageLoadTiming& timing,
315 const PageLoadExtraInfo& extra_info) {} 319 const PageLoadExtraInfo& extra_info) {}
316 320
317 // Invoked when there is a change in PageLoadMetadata's behavior_flags. 321 // Invoked when there is a change in either the main_frame_metadata or the
322 // child_frame_metadata's loading behavior_flags.
318 virtual void OnLoadingBehaviorObserved( 323 virtual void OnLoadingBehaviorObserved(
319 const page_load_metrics::PageLoadExtraInfo& extra_info) {} 324 const page_load_metrics::PageLoadExtraInfo& extra_info) {}
320 325
321 // Invoked when the UMA metrics subsystem is persisting metrics as the 326 // Invoked when the UMA metrics subsystem is persisting metrics as the
322 // application goes into the background, on platforms where the browser 327 // application goes into the background, on platforms where the browser
323 // process may be killed after backgrounding (Android). Implementers should 328 // process may be killed after backgrounding (Android). Implementers should
324 // persist any metrics that have been buffered in memory in this callback, as 329 // persist any metrics that have been buffered in memory in this callback, as
325 // the application may be killed at any time after this method is invoked 330 // the application may be killed at any time after this method is invoked
326 // without further notification. Note that this may be called both for 331 // without further notification. Note that this may be called both for
327 // provisional loads as well as committed loads. Implementations that only 332 // provisional loads as well as committed loads. Implementations that only
(...skipping 30 matching lines...) Expand all
358 const FailedProvisionalLoadInfo& failed_provisional_load_info, 363 const FailedProvisionalLoadInfo& failed_provisional_load_info,
359 const PageLoadExtraInfo& extra_info) {} 364 const PageLoadExtraInfo& extra_info) {}
360 365
361 // Called whenever a request is loaded for this page load. 366 // Called whenever a request is loaded for this page load.
362 virtual void OnLoadedResource(const ExtraRequestInfo& extra_request_info) {} 367 virtual void OnLoadedResource(const ExtraRequestInfo& extra_request_info) {}
363 }; 368 };
364 369
365 } // namespace page_load_metrics 370 } // namespace page_load_metrics
366 371
367 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_OBSERVER_H_ 372 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_OBSERVER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698