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

Issue 2737563007: Add support for tracking loading behavior of child frames. (Closed)

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

Description

Add support for tracking loading behavior of child frames. This is required for the existing subresource filtering and css scanning page load metrics, as well as for the upcoming metrics for pages where media is played. In the render process: * move policy decision about whether to process timing or metadata updates from blink to chrome/renderer/page_load_metrics code * instantiate MetricsRenderFrameObservers for child frames * track metadata updates for child frames * send at most one update per second per frame over IPC to the browser process (this is the existing page load metrics IPC policy) In the browser process: * track child frame loading behavior flags * notify observers whenever the loading behavior flags for a child frame are updated In the SubresourceFilterMetricsObserver: * consider the page to have filtered subresources if subresource filter loading behavior is observed in either the main frame or child frames Note that we still do not track timing updates for child frames. This change gets us closer to being able to do so, but given that there is no current need, we don't do this for the time being. BUG=699849 Review-Url: https://codereview.chromium.org/2737563007 Cr-Commit-Position: refs/heads/master@{#456166} Committed: https://chromium.googlesource.com/chromium/src/+/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a

Patch Set 1 #

Patch Set 2 : update histograms.xml #

Patch Set 3 : simplify #

Patch Set 4 : test fixes #

Total comments: 12

Patch Set 5 : address comments #

Total comments: 2

Patch Set 6 : address comments #

Patch Set 7 : rename #

Patch Set 8 : fix comment #

Patch Set 9 : add browsertest #

Patch Set 10 : add comment #

Patch Set 11 : improve test comments #

Total comments: 10

Patch Set 12 : add unit test #

Patch Set 13 : stop observing if started in background #

Unified diffs Side-by-side diffs Delta from patch set Stats (+239 lines, -83 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 2 chunks +12 lines, -1 line 0 comments Download
M chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc View 2 chunks +2 lines, -2 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 2 chunks +10 lines, -0 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 1 chunk +38 lines, -18 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc View 1 2 3 4 5 4 chunks +10 lines, -10 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 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 1 chunk +3 lines, -3 lines 0 comments Download
M chrome/browser/page_load_metrics/page_load_metrics_observer.h View 1 2 3 4 5 6 7 3 chunks +9 lines, -4 lines 0 comments Download
M chrome/browser/page_load_metrics/page_load_metrics_observer.cc View 1 2 3 4 5 3 chunks +6 lines, -3 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 2 chunks +7 lines, -0 lines 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 1 chunk +10 lines, -0 lines 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 3 chunks +10 lines, -1 line 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 4 chunks +32 lines, -14 lines 0 comments Download
M chrome/browser/subresource_filter/subresource_filter_browsertest.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +12 lines, -1 line 0 comments Download
M chrome/renderer/chrome_content_renderer_client.cc View 1 chunk +6 lines, -9 lines 0 comments Download
M chrome/renderer/page_load_metrics/metrics_render_frame_observer.h View 1 2 3 4 5 6 7 8 9 3 chunks +10 lines, -2 lines 0 comments Download
M chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc View 1 2 3 4 5 6 7 8 5 chunks +17 lines, -7 lines 0 comments Download
M chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +37 lines, -3 lines 0 comments Download
M chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc View 1 2 3 4 1 chunk +4 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/loader/DocumentLoader.cpp View 1 chunk +2 lines, -2 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 71 (55 generated)
Charlie Harrison
Yes this looks reasonable. I left some initial comments. https://codereview.chromium.org/2737563007/diff/10012/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/2737563007/diff/10012/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode513 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:513: ...
3 years, 9 months ago (2017-03-08 21:47:17 UTC) #14
RyanSturm
Seems reasonable. https://codereview.chromium.org/2737563007/diff/70001/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/2737563007/diff/70001/chrome/browser/page_load_metrics/page_load_metrics_observer.h#newcode191 chrome/browser/page_load_metrics/page_load_metrics_observer.h:191: const PageLoadMetadata metadata; Can you change this ...
3 years, 9 months ago (2017-03-08 23:54:42 UTC) #18
Bryan McQuade
Thanks! Addressed comments. PTAL. https://codereview.chromium.org/2737563007/diff/10012/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/2737563007/diff/10012/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode513 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:513: content::RenderFrameHost* root_render_frame_host = render_frame_host; On ...
3 years, 9 months ago (2017-03-09 03:06:12 UTC) #33
Bryan McQuade
engedy, PTAL for subresource filter browser test update, thanks!
3 years, 9 months ago (2017-03-09 04:08:01 UTC) #39
Charlie Harrison
https://codereview.chromium.org/2737563007/diff/190001/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/2737563007/diff/190001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode515 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:515: if (!render_frame_host->GetRenderViewHost() || Is it possible to have a ...
3 years, 9 months ago (2017-03-09 16:21:29 UTC) #42
Bryan McQuade
Thanks! Addressed comments. PTAL. https://codereview.chromium.org/2737563007/diff/190001/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/2737563007/diff/190001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode515 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:515: if (!render_frame_host->GetRenderViewHost() || On 2017/03/09 ...
3 years, 9 months ago (2017-03-09 17:36:32 UTC) #48
RyanSturm
lgtm. It might be worth adding a unittest for an observer for checking passing child ...
3 years, 9 months ago (2017-03-09 19:15:09 UTC) #51
Charlie Harrison
LGTM
3 years, 9 months ago (2017-03-09 19:17:11 UTC) #52
Bryan McQuade
jochen, PTAL for chrome_content_renderer_client.cc change, thanks! holte, PTAL for histograms.xml change, thanks!
3 years, 9 months ago (2017-03-09 19:37:03 UTC) #55
jochen (gone - plz use gerrit)
lgtm
3 years, 9 months ago (2017-03-10 10:43:14 UTC) #56
engedy
*subresource_filter* LGTM.
3 years, 9 months ago (2017-03-10 12:07:42 UTC) #57
Bryan McQuade
Looks like holte may not be available for review, so adding isherman. isherman, PTAL for ...
3 years, 9 months ago (2017-03-10 20:11:46 UTC) #63
Ilya Sherman
histograms.xml
3 years, 9 months ago (2017-03-10 20:42:42 UTC) #64
Ilya Sherman
histograms.xml lgtm
3 years, 9 months ago (2017-03-10 20:42:45 UTC) #65
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/2737563007/230001
3 years, 9 months ago (2017-03-10 21:22:54 UTC) #68
commit-bot: I haz the power
3 years, 9 months ago (2017-03-10 21:30:31 UTC) #71
Message was sent while issue was closed.
Committed patchset #13 (id:230001) as
https://chromium.googlesource.com/chromium/src/+/2a2a964c75a71e56aa52790d2ce0...

Powered by Google App Engine
This is Rietveld 408576698