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

Issue 2859393002: Report page load timing information for child frames. (Closed)

Created:
3 years, 7 months ago by Bryan McQuade
Modified:
3 years, 7 months ago
CC:
chromium-reviews, csharrison+watch_chromium.org, loading-reviews+metrics_chromium.org, speed-metrics-reviews_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Report page load timing information for child frames. This change clarifies that our PLMO::On*Paint callbacks are for the whole page, and adds support for aggregating timing data across frames in PageLoadTracker. The current behavior tracks paints across all frames, however this is due to a bug (crbug.com/705315) and will be fixed soon. PLMO implementers actually want to track paints across all frames in the page, so this is desired behavior. This change adds support for tracking paints across all frames so the current behavior doesn't regress when 705315 is fixed. BUG=661702 Review-Url: https://codereview.chromium.org/2859393002 Cr-Commit-Position: refs/heads/master@{#471725} Committed: https://chromium.googlesource.com/chromium/src/+/9f5f6b9548bc4cad0c64d3aa2b5b58ae8dad595b

Patch Set 1 #

Patch Set 2 : add dcheck #

Patch Set 3 : update comment #

Patch Set 4 : remove empty core observer impl #

Patch Set 5 : update comments #

Total comments: 3

Patch Set 6 : add browsertests #

Total comments: 4

Patch Set 7 : browsertests #

Patch Set 8 : add histograms.xml entry #

Patch Set 9 : add comments about broken tests #

Patch Set 10 : test cleanup #

Patch Set 11 : add comments #

Patch Set 12 : cleanup #

Total comments: 8

Patch Set 13 : address comments #

Patch Set 14 : fix build #

Patch Set 15 : merge paint timings across frames #

Patch Set 16 : improve tests #

Patch Set 17 : update comment #

Patch Set 18 : fix android build #

Patch Set 19 : git cl try #

Patch Set 20 : add comment #

Total comments: 14

Patch Set 21 : address comments #

Patch Set 22 : rebase #

Patch Set 23 : cleanup #

Total comments: 3

Patch Set 24 : rebase #

Patch Set 25 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+587 lines, -253 lines) Patch
M chrome/browser/page_load_metrics/metrics_web_contents_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +6 lines, -10 lines 0 comments Download
M chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 10 chunks +59 lines, -42 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 24 1 chunk +0 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/amp_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/android_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +5 lines, -5 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 chunks +5 lines, -5 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +7 lines, -6 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 chunks +8 lines, -7 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/delay_navigation_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +3 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/delay_navigation_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +5 lines, -4 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +12 lines, -10 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 chunks +12 lines, -12 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/no_state_prefetch_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/no_state_prefetch_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/omnibox_suggestion_used_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/omnibox_suggestion_used_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +5 lines, -4 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/prerender_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/prerender_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/previews_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/previews_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/protocol_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/protocol_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/resource_prefetch_predictor_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/resource_prefetch_predictor_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +8 lines, -6 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +2 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +5 lines, -4 lines 0 comments Download
M chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 5 chunks +128 lines, -0 lines 0 comments Download
M chrome/browser/page_load_metrics/page_load_metrics_observer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 5 chunks +25 lines, -14 lines 0 comments Download
M chrome/browser/page_load_metrics/page_load_metrics_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/page_load_metrics_util.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/page_load_metrics_util.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +1 line, -1 line 0 comments Download
M chrome/browser/page_load_metrics/page_load_tracker.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 8 chunks +30 lines, -5 lines 0 comments Download
M chrome/browser/page_load_metrics/page_load_tracker.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 12 chunks +143 lines, -26 lines 0 comments Download
M chrome/browser/prerender/prerender_browsertest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 chunks +14 lines, -7 lines 0 comments Download
M chrome/renderer/page_load_metrics/metrics_render_frame_observer.h View 1 chunk +0 lines, -1 line 0 comments Download
M chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +3 lines, -15 lines 0 comments Download
M chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc View 1 2 3 4 5 3 chunks +0 lines, -24 lines 0 comments Download
M chrome/renderer/page_load_metrics/page_timing_metrics_sender.h View 2 chunks +3 lines, -1 line 0 comments Download
M chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc View 3 chunks +12 lines, -7 lines 0 comments Download
A chrome/test/data/page_load_metrics/empty_iframe.html View 1 2 3 4 5 6 7 8 9 10 1 chunk +7 lines, -0 lines 0 comments Download
A chrome/test/data/page_load_metrics/iframe.html View 1 2 3 4 5 6 7 8 9 10 1 chunk +7 lines, -0 lines 0 comments Download
A chrome/test/data/page_load_metrics/iframes.html View 1 2 3 4 5 6 7 8 9 10 1 chunk +8 lines, -0 lines 0 comments Download
A chrome/test/data/page_load_metrics/main_frame_with_iframe.html View 1 2 3 4 5 6 7 8 9 10 1 chunk +8 lines, -0 lines 0 comments Download
A chrome/test/data/page_load_metrics/seamless-iframe.css View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +12 lines, -0 lines 0 comments Download
M tools/metrics/histograms/enums.xml View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +3 lines, -1 line 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +11 lines, -0 lines 0 comments Download

Messages

Total messages: 111 (91 generated)
jkarlin
https://codereview.chromium.org/2859393002/diff/80001/chrome/browser/page_load_metrics/page_load_metrics_observer.h File chrome/browser/page_load_metrics/page_load_metrics_observer.h (right): https://codereview.chromium.org/2859393002/diff/80001/chrome/browser/page_load_metrics/page_load_metrics_observer.h#newcode351 chrome/browser/page_load_metrics/page_load_metrics_observer.h:351: base::TimeDelta navigation_start, perhaps rename to main_frame_navigation_start? https://codereview.chromium.org/2859393002/diff/100001/chrome/browser/page_load_metrics/page_load_tracker.cc File chrome/browser/page_load_metrics/page_load_tracker.cc ...
3 years, 7 months ago (2017-05-05 19:19:25 UTC) #20
Bryan McQuade
Thanks! Addressed comments and a bunch of other things. I need to figure out how ...
3 years, 7 months ago (2017-05-07 19:32:11 UTC) #35
jkarlin
General design works with me. https://codereview.chromium.org/2859393002/diff/220001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc File chrome/browser/page_load_metrics/metrics_web_contents_observer.cc (right): https://codereview.chromium.org/2859393002/diff/220001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode316 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:316: if (GetMainFrame(navigation_handle->GetRenderFrameHost()) != I ...
3 years, 7 months ago (2017-05-08 13:00:41 UTC) #38
Bryan McQuade
Thanks! Addressed comments. https://codereview.chromium.org/2859393002/diff/220001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc File chrome/browser/page_load_metrics/metrics_web_contents_observer.cc (right): https://codereview.chromium.org/2859393002/diff/220001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode316 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:316: if (GetMainFrame(navigation_handle->GetRenderFrameHost()) != On 2017/05/08 at ...
3 years, 7 months ago (2017-05-08 15:26:32 UTC) #41
Bryan McQuade
On 2017/05/08 at 15:26:32, Bryan McQuade wrote: > Thanks! Addressed comments. > > https://codereview.chromium.org/2859393002/diff/220001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc > ...
3 years, 7 months ago (2017-05-08 19:53:59 UTC) #52
jkarlin
https://codereview.chromium.org/2859393002/diff/380001/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc File chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc (right): https://codereview.chromium.org/2859393002/diff/380001/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc#newcode51 chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc:51: enum ExpectedTimingFields { enum class https://codereview.chromium.org/2859393002/diff/380001/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc#newcode116 chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc:116: main_frame_expected_fields_ &= ...
3 years, 7 months ago (2017-05-10 16:55:28 UTC) #68
Bryan McQuade
https://codereview.chromium.org/2859393002/diff/380001/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc File chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc (right): https://codereview.chromium.org/2859393002/diff/380001/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc#newcode51 chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc:51: enum ExpectedTimingFields { On 2017/05/10 at 16:55:28, jkarlin wrote: ...
3 years, 7 months ago (2017-05-10 18:06:15 UTC) #69
Bryan McQuade
I've merged this change with the recent browsertest update, so this is ready for a ...
3 years, 7 months ago (2017-05-11 19:38:49 UTC) #78
Bryan McQuade
isherman, PTAL for histograms.xml, thanks!
3 years, 7 months ago (2017-05-11 19:39:12 UTC) #81
Bryan McQuade
adding isherman for real this time. :) isherman, PTAL for histograms.xml, thanks!
3 years, 7 months ago (2017-05-12 12:35:03 UTC) #85
jkarlin
lgtm with comment https://codereview.chromium.org/2859393002/diff/440001/chrome/browser/page_load_metrics/page_load_tracker.cc File chrome/browser/page_load_metrics/page_load_tracker.cc (right): https://codereview.chromium.org/2859393002/diff/440001/chrome/browser/page_load_metrics/page_load_tracker.cc#newcode285 chrome/browser/page_load_metrics/page_load_tracker.cc:285: void MaybeUpdateTimeDelta( This should be an ...
3 years, 7 months ago (2017-05-12 13:45:01 UTC) #86
Bryan McQuade
Thanks! https://codereview.chromium.org/2859393002/diff/440001/chrome/browser/page_load_metrics/page_load_tracker.cc File chrome/browser/page_load_metrics/page_load_tracker.cc (right): https://codereview.chromium.org/2859393002/diff/440001/chrome/browser/page_load_metrics/page_load_tracker.cc#newcode285 chrome/browser/page_load_metrics/page_load_tracker.cc:285: void MaybeUpdateTimeDelta( On 2017/05/12 at 13:45:01, jkarlin wrote: ...
3 years, 7 months ago (2017-05-12 14:08:37 UTC) #87
jkarlin
https://codereview.chromium.org/2859393002/diff/440001/chrome/browser/page_load_metrics/page_load_tracker.cc File chrome/browser/page_load_metrics/page_load_tracker.cc (right): https://codereview.chromium.org/2859393002/diff/440001/chrome/browser/page_load_metrics/page_load_tracker.cc#newcode285 chrome/browser/page_load_metrics/page_load_tracker.cc:285: void MaybeUpdateTimeDelta( On 2017/05/12 14:08:36, Bryan McQuade wrote: > ...
3 years, 7 months ago (2017-05-12 14:13:01 UTC) #88
Ilya Sherman
histograms.xml lgtm
3 years, 7 months ago (2017-05-12 21:03:55 UTC) #93
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2859393002/460001
3 years, 7 months ago (2017-05-12 23:51:59 UTC) #96
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/436067)
3 years, 7 months ago (2017-05-13 00:03:44 UTC) #98
Bryan McQuade
mattcary, PTAL for prerender_browsertest changes, thanks!
3 years, 7 months ago (2017-05-13 00:09:03 UTC) #100
mattcary
lgtm For prerender_browsertest.cc
3 years, 7 months ago (2017-05-15 07:46:00 UTC) #105
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2859393002/480001
3 years, 7 months ago (2017-05-15 11:40:16 UTC) #108
commit-bot: I haz the power
3 years, 7 months ago (2017-05-15 11:46:26 UTC) #111
Message was sent while issue was closed.
Committed patchset #25 (id:480001) as
https://chromium.googlesource.com/chromium/src/+/9f5f6b9548bc4cad0c64d3aa2b5b...

Powered by Google App Engine
This is Rietveld 408576698