Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 263 // callbacks to indicate whether the observer would like to continue observing | 263 // callbacks to indicate whether the observer would like to continue observing |
| 264 // metric callbacks. Observers that wish to continue observing metric | 264 // metric callbacks. Observers that wish to continue observing metric |
| 265 // callbacks should return CONTINUE_OBSERVING; observers that wish to stop | 265 // callbacks should return CONTINUE_OBSERVING; observers that wish to stop |
| 266 // observing callbacks should return STOP_OBSERVING. Observers that return | 266 // observing callbacks should return STOP_OBSERVING. Observers that return |
| 267 // STOP_OBSERVING may be deleted. | 267 // STOP_OBSERVING may be deleted. |
| 268 enum ObservePolicy { | 268 enum ObservePolicy { |
| 269 CONTINUE_OBSERVING, | 269 CONTINUE_OBSERVING, |
| 270 STOP_OBSERVING, | 270 STOP_OBSERVING, |
| 271 }; | 271 }; |
| 272 | 272 |
| 273 using FrameTreeNodeId = int; | |
| 274 | |
| 273 virtual ~PageLoadMetricsObserver() {} | 275 virtual ~PageLoadMetricsObserver() {} |
| 274 | 276 |
| 275 // The page load started, with the given navigation handle. | 277 // The page load started, with the given navigation handle. |
| 276 // currently_committed_url contains the URL of the committed page load at the | 278 // currently_committed_url contains the URL of the committed page load at the |
| 277 // time the navigation for navigation_handle was initiated, or the empty URL | 279 // time the navigation for navigation_handle was initiated, or the empty URL |
| 278 // if there was no committed page load at the time the navigation was | 280 // if there was no committed page load at the time the navigation was |
| 279 // initiated. | 281 // initiated. |
| 280 virtual ObservePolicy OnStart(content::NavigationHandle* navigation_handle, | 282 virtual ObservePolicy OnStart(content::NavigationHandle* navigation_handle, |
| 281 const GURL& currently_committed_url, | 283 const GURL& currently_committed_url, |
| 282 bool started_in_foreground); | 284 bool started_in_foreground); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 328 // callbacks below. | 330 // callbacks below. |
| 329 | 331 |
| 330 // OnTimingUpdate is triggered when an updated PageLoadTiming is | 332 // OnTimingUpdate is triggered when an updated PageLoadTiming is |
| 331 // available. This method may be called multiple times over the course of the | 333 // available. This method may be called multiple times over the course of the |
| 332 // page load. This method is currently only intended for use in testing. Most | 334 // page load. This method is currently only intended for use in testing. Most |
| 333 // implementers should implement one of the On* callbacks, such as | 335 // implementers should implement one of the On* callbacks, such as |
| 334 // OnFirstContentfulPaint or OnDomContentLoadedEventStart. Please email | 336 // OnFirstContentfulPaint or OnDomContentLoadedEventStart. Please email |
| 335 // loading-dev@chromium.org if you intend to override this method. | 337 // loading-dev@chromium.org if you intend to override this method. |
| 336 virtual void OnTimingUpdate(const PageLoadTiming& timing, | 338 virtual void OnTimingUpdate(const PageLoadTiming& timing, |
| 337 const PageLoadExtraInfo& extra_info) {} | 339 const PageLoadExtraInfo& extra_info) {} |
| 340 | |
| 341 // OnSubFrameTimingUpdate is triggered when an updated PageLoadTiming or | |
| 342 // PageLoadMetadata is available for a child frame of the current page | |
| 343 // load. The FrameTreeNodeId identifies the frame that | |
| 344 // |navigation_start_offset|, |child_timing|, and |child_metadata| are | |
| 345 // associated with. |extra_info| contains the extra info associated with the | |
| 346 // page. |navigation_start_offset| reports the offset of the subframe's | |
| 347 // navigation start from the main frame's navigation_start. The timings | |
| 348 // reported in |child_timing| are relative to the subframe's navigation start. | |
| 349 virtual void OnSubFrameTimingUpdate(FrameTreeNodeId child_frame_id, | |
|
jkarlin
2017/05/10 16:55:28
I'd rather we not create this until a client that
Bryan McQuade
2017/05/10 18:06:15
sure - i think i can switch over to using the Test
| |
| 350 base::TimeDelta navigation_start_offset, | |
| 351 const PageLoadTiming& child_timing, | |
| 352 const PageLoadMetadata& child_metadata, | |
| 353 const PageLoadExtraInfo& extra_info) {} | |
| 354 | |
| 338 // OnUserInput is triggered when a new user input is passed in to | 355 // OnUserInput is triggered when a new user input is passed in to |
| 339 // web_contents. Contains a TimeDelta from navigation start. | 356 // web_contents. Contains a TimeDelta from navigation start. |
| 340 virtual void OnUserInput(const blink::WebInputEvent& event) {} | 357 virtual void OnUserInput(const blink::WebInputEvent& event) {} |
| 341 | 358 |
| 342 // The following methods are invoked at most once, when the timing for the | 359 // The following methods are invoked at most once, when the timing for the |
| 343 // associated event first becomes available. | 360 // associated event first becomes available. |
| 344 virtual void OnDomContentLoadedEventStart( | 361 virtual void OnDomContentLoadedEventStart( |
| 345 const PageLoadTiming& timing, | 362 const PageLoadTiming& timing, |
| 346 const PageLoadExtraInfo& extra_info) {} | 363 const PageLoadExtraInfo& extra_info) {} |
| 347 virtual void OnLoadEventStart(const PageLoadTiming& timing, | 364 virtual void OnLoadEventStart(const PageLoadTiming& timing, |
| 348 const PageLoadExtraInfo& extra_info) {} | 365 const PageLoadExtraInfo& extra_info) {} |
| 349 virtual void OnFirstLayout(const PageLoadTiming& timing, | 366 virtual void OnFirstLayout(const PageLoadTiming& timing, |
| 350 const PageLoadExtraInfo& extra_info) {} | 367 const PageLoadExtraInfo& extra_info) {} |
| 351 virtual void OnFirstPaint(const PageLoadTiming& timing, | |
| 352 const PageLoadExtraInfo& extra_info) {} | |
| 353 virtual void OnFirstTextPaint(const PageLoadTiming& timing, | |
| 354 const PageLoadExtraInfo& extra_info) {} | |
| 355 virtual void OnFirstImagePaint(const PageLoadTiming& timing, | |
| 356 const PageLoadExtraInfo& extra_info) {} | |
| 357 virtual void OnFirstContentfulPaint(const PageLoadTiming& timing, | |
| 358 const PageLoadExtraInfo& extra_info) {} | |
| 359 virtual void OnFirstMeaningfulPaint(const PageLoadTiming& timing, | |
| 360 const PageLoadExtraInfo& extra_info) {} | |
| 361 virtual void OnParseStart(const PageLoadTiming& timing, | 368 virtual void OnParseStart(const PageLoadTiming& timing, |
| 362 const PageLoadExtraInfo& extra_info) {} | 369 const PageLoadExtraInfo& extra_info) {} |
| 363 virtual void OnParseStop(const PageLoadTiming& timing, | 370 virtual void OnParseStop(const PageLoadTiming& timing, |
| 364 const PageLoadExtraInfo& extra_info) {} | 371 const PageLoadExtraInfo& extra_info) {} |
| 365 | 372 |
| 373 // On*PaintInPage(...) are invoked when the first relevant paint in the page, | |
| 374 // across all frames, is observed. | |
| 375 virtual void OnFirstPaintInPage(const PageLoadTiming& timing, | |
| 376 const PageLoadExtraInfo& extra_info) {} | |
| 377 virtual void OnFirstTextPaintInPage(const PageLoadTiming& timing, | |
| 378 const PageLoadExtraInfo& extra_info) {} | |
| 379 virtual void OnFirstImagePaintInPage(const PageLoadTiming& timing, | |
| 380 const PageLoadExtraInfo& extra_info) {} | |
| 381 virtual void OnFirstContentfulPaintInPage( | |
| 382 const PageLoadTiming& timing, | |
| 383 const PageLoadExtraInfo& extra_info) {} | |
| 384 | |
| 385 // Unlike other paint callbacks, OnFirstMeaningfulPaintInMainFrameDocument is | |
| 386 // tracked per document, and is reported for the main frame document only. | |
| 387 virtual void OnFirstMeaningfulPaintInMainFrameDocument( | |
| 388 const PageLoadTiming& timing, | |
| 389 const PageLoadExtraInfo& extra_info) {} | |
| 390 | |
| 366 // Invoked when there is a change in either the main_frame_metadata or the | 391 // Invoked when there is a change in either the main_frame_metadata or the |
| 367 // child_frame_metadata's loading behavior_flags. | 392 // child_frame_metadata's loading behavior_flags. |
| 368 virtual void OnLoadingBehaviorObserved( | 393 virtual void OnLoadingBehaviorObserved( |
| 369 const page_load_metrics::PageLoadExtraInfo& extra_info) {} | 394 const page_load_metrics::PageLoadExtraInfo& extra_info) {} |
| 370 | 395 |
| 371 // Invoked when a media element starts playing. | 396 // Invoked when a media element starts playing. |
| 372 virtual void MediaStartedPlaying( | 397 virtual void MediaStartedPlaying( |
| 373 const content::WebContentsObserver::MediaPlayerInfo& video_type, | 398 const content::WebContentsObserver::MediaPlayerInfo& video_type, |
| 374 bool is_in_main_frame) {} | 399 bool is_in_main_frame) {} |
| 375 | 400 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 426 // Called whenever a request is loaded for this page load. This comes | 451 // Called whenever a request is loaded for this page load. This comes |
| 427 // unfiltered from the ResourceDispatcherHost and may include blob requests | 452 // unfiltered from the ResourceDispatcherHost and may include blob requests |
| 428 // and data uris. | 453 // and data uris. |
| 429 virtual void OnLoadedResource( | 454 virtual void OnLoadedResource( |
| 430 const ExtraRequestCompleteInfo& extra_request_complete_info) {} | 455 const ExtraRequestCompleteInfo& extra_request_complete_info) {} |
| 431 }; | 456 }; |
| 432 | 457 |
| 433 } // namespace page_load_metrics | 458 } // namespace page_load_metrics |
| 434 | 459 |
| 435 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_OBSERVER_H_ | 460 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_OBSERVER_H_ |
| OLD | NEW |