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

Issue 2798953002: [PageLoadMetrics] Keep track of Ad Sizes on Pages (Closed)

Created:
3 years, 8 months ago by jkarlin
Modified:
3 years, 7 months ago
CC:
chromium-reviews, csharrison+watch_chromium.org, darin-cc_chromium.org, jam, loading-reviews+metrics_chromium.org, loading-reviews_chromium.org, mmenke, Randy Smith (Not in Mondays), speed-metrics-reviews_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

[PageLoadMetrics] Keep track of Ad Sizes on Pages In order to help us understand the resource footprint that ads have on webpages, we need to measure things like their network and cache utilizations. This CL adds a PageLoadObserver that keeps track of frames with ads and reports statistics on the number of ad frames found on the page, the size of the ad frames, and the percentage that came from cache vs network. As part of the work, the following additional changes were necessary: 1) Frame Tree ID and URL are added to extra request info 2) Add GetRenderFrameHostGetterForRequest to ResourceRequestInfo so that ChromeResourceDispatcherHostDelegate can get at the frame tree node id of the resource. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation BUG=708570 Review-Url: https://codereview.chromium.org/2798953002 Cr-Commit-Position: refs/heads/master@{#468738} Committed: https://chromium.googlesource.com/chromium/src/+/6616a885b4f18edd4f6aa178146c14538ca1d429

Patch Set 1 #

Patch Set 2 : Comment nit #

Patch Set 3 : Add histograms.xml #

Patch Set 4 : Improved heuristic #

Patch Set 5 : Fix existing tests #

Patch Set 6 : Add tests #

Total comments: 4

Patch Set 7 : Rebase #

Patch Set 8 : Updates and address Ojan's comments #

Total comments: 39

Patch Set 9 : SubFrame nav must be committed #

Total comments: 1

Patch Set 10 : Address comments from PS8 #

Total comments: 24

Patch Set 11 : Address comments from PS10 plus many improvements #

Total comments: 14

Patch Set 12 : Fix test framework #

Patch Set 13 : Remove dcheck #

Total comments: 12

Patch Set 14 : Address comments from PS11-13 #

Total comments: 55

Patch Set 15 : Address comments from PS13 14 #

Patch Set 16 : Painful Rebase #

Patch Set 17 : Clean up test #

Total comments: 28

Patch Set 18 : Address comments from PS17 #

Total comments: 6

Patch Set 19 : Rebase #

Patch Set 20 : Address comments from PS18 #

Total comments: 18

Patch Set 21 : Rebase #

Patch Set 22 : Address comments from PS20 #

Total comments: 18

Patch Set 23 : Address comments from PS22 #

Total comments: 2

Patch Set 24 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1353 lines, -74 lines) Patch
M chrome/browser/BUILD.gn 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 +2 lines, -0 lines 0 comments Download
M chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 3 chunks +10 lines, -7 lines 0 comments Download
M chrome/browser/page_load_metrics/metrics_web_contents_observer.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 1 chunk +2 lines, -0 lines 0 comments Download
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 3 chunks +7 lines, -2 lines 0 comments Download
A 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 1 chunk +82 lines, -0 lines 0 comments Download
A chrome/browser/page_load_metrics/observers/ads_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 1 chunk +297 lines, -0 lines 0 comments Download
A chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +528 lines, -0 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 3 chunks +13 lines, -9 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 3 chunks +23 lines, -12 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/media_page_load_metrics_observer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +8 lines, -4 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.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 +8 lines, -8 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +6 lines, -2 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 4 chunks +24 lines, -22 lines 0 comments Download
M chrome/browser/page_load_metrics/observers/tab_restore_page_load_metrics_observer_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +8 lines, -4 lines 0 comments Download
M chrome/browser/page_load_metrics/page_load_metrics_initialize.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 2 chunks +5 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 +21 lines, -1 line 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 +11 lines, -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 1 chunk +2 lines, -0 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 2 chunks +10 lines, -2 lines 0 comments Download
M chrome/test/BUILD.gn 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 +1 line, -0 lines 0 comments Download
M content/browser/loader/resource_request_info_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/loader/resource_request_info_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 2 chunks +25 lines, -0 lines 0 comments Download
M content/public/browser/resource_request_info.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +13 lines, -0 lines 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 2 chunks +246 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 172 (130 generated)
ojan
Initial drive-by review... https://codereview.chromium.org/2798953002/diff/100001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc File chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc (right): https://codereview.chromium.org/2798953002/diff/100001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc#newcode21 chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc:21: return base::StartsWith(name, "google_ads_iframe", People will stumble ...
3 years, 8 months ago (2017-04-07 19:40:06 UTC) #17
jkarlin
https://codereview.chromium.org/2798953002/diff/100001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc File chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc (right): https://codereview.chromium.org/2798953002/diff/100001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc#newcode21 chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc:21: return base::StartsWith(name, "google_ads_iframe", On 2017/04/07 19:40:06, ojan wrote: > ...
3 years, 8 months ago (2017-04-10 17:52:23 UTC) #24
jkarlin
csharrison@ PTAL at everything, thanks!
3 years, 8 months ago (2017-04-10 17:58:42 UTC) #28
Charlie Harrison
Only looked at PLM non test parts. Just some initial comments. https://codereview.chromium.org/2798953002/diff/140001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc File chrome/browser/page_load_metrics/metrics_web_contents_observer.cc (right): ...
3 years, 8 months ago (2017-04-10 18:39:42 UTC) #30
Bryan McQuade
seems good to me - just one suggestion around policy for tracking sub frame commits. ...
3 years, 8 months ago (2017-04-11 15:44:50 UTC) #36
jkarlin
Address comments from PS8. PTAL. Now digging into why plznavigate tests are failing. https://codereview.chromium.org/2798953002/diff/140001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc File ...
3 years, 8 months ago (2017-04-11 16:46:28 UTC) #39
Charlie Harrison
Given the subtleties of the code wrt navigation, I think it might warrant browser tests ...
3 years, 8 months ago (2017-04-11 17:30:07 UTC) #40
Bryan McQuade
https://codereview.chromium.org/2798953002/diff/180001/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/2798953002/diff/180001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode261 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:261: std::move(url), frame_tree_node_id, was_cached, raw_body_bytes, we chatted about this & ...
3 years, 8 months ago (2017-04-12 15:01:17 UTC) #43
jkarlin
Thanks! PTAL I'm not sure about the need for browser tests. I think the unit ...
3 years, 8 months ago (2017-04-13 17:25:30 UTC) #49
jkarlin
clamy@chromium.org: Please review changes in content/public/ Thanks!
3 years, 8 months ago (2017-04-13 17:29:46 UTC) #51
jkarlin
jam@chromium.org: Please review changes in chrome/browser/loader and content/public/ isherman@: PTAL at histograms.xml removing clamy as ...
3 years, 8 months ago (2017-04-13 18:46:03 UTC) #57
Charlie Harrison
Looks great. It looks like you are prefacing these histogram names with "Google", how do ...
3 years, 8 months ago (2017-04-13 19:09:57 UTC) #62
Bryan McQuade
thanks! core page load metrics infra changes look good. i haven't looked at the new ...
3 years, 8 months ago (2017-04-13 19:21:27 UTC) #63
Charlie Harrison
https://codereview.chromium.org/2798953002/diff/260001/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/2798953002/diff/260001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode278 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:278: committed_load_->DidCommitSubFrame(navigation_handle); On 2017/04/13 19:21:27, Bryan McQuade wrote: > On ...
3 years, 8 months ago (2017-04-13 19:26:36 UTC) #64
clamy
Thanks! As explained in the comment below, I don't agree with the approach of the ...
3 years, 8 months ago (2017-04-14 13:56:09 UTC) #65
Charlie Harrison
https://codereview.chromium.org/2798953002/diff/260001/content/public/browser/resource_request_info.h File content/public/browser/resource_request_info.h (right): https://codereview.chromium.org/2798953002/diff/260001/content/public/browser/resource_request_info.h#newcode98 content/public/browser/resource_request_info.h:98: // example, requests made by a ServiceWorker. On 2017/04/14 ...
3 years, 8 months ago (2017-04-14 14:02:25 UTC) #66
jkarlin
Thanks all! PTAL In terms of naming in the future, the current plan is to ...
3 years, 8 months ago (2017-04-14 17:50:20 UTC) #78
Bryan McQuade
this is a really nice change - great to see how all these components can ...
3 years, 8 months ago (2017-04-14 19:19:23 UTC) #81
Charlie Harrison
https://codereview.chromium.org/2798953002/diff/320001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc File chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc (right): https://codereview.chromium.org/2798953002/diff/320001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc#newcode25 chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc:25: navigation_handle->GetWebContents()->FindFrameByFrameTreeNodeId( On 2017/04/14 19:19:23, Bryan McQuade wrote: > is ...
3 years, 8 months ago (2017-04-14 20:16:26 UTC) #82
jam
lgtm https://codereview.chromium.org/2798953002/diff/320001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc File chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc (right): https://codereview.chromium.org/2798953002/diff/320001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc#newcode26 chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc:26: frame_tree_node_id); these two lines can just be navigation_handle->GetRenderFrameHost ...
3 years, 8 months ago (2017-04-17 15:41:55 UTC) #83
Bryan McQuade
I looked at everything but RecordHistograms. See what you think. https://codereview.chromium.org/2798953002/diff/320001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc File chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc (right): https://codereview.chromium.org/2798953002/diff/320001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc#newcode25 ...
3 years, 8 months ago (2017-04-17 22:00:04 UTC) #84
Bryan McQuade
here are some suggestions for histogram names to make them slightly more consistent w/ existing ...
3 years, 8 months ago (2017-04-18 17:11:33 UTC) #85
clamy
Thanks! content/ lgtm.
3 years, 8 months ago (2017-04-19 15:38:11 UTC) #86
jkarlin
Thanks all, PTAL! https://codereview.chromium.org/2798953002/diff/260001/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/2798953002/diff/260001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode278 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:278: committed_load_->DidCommitSubFrame(navigation_handle); On 2017/04/13 19:26:36, Charlie Harrison ...
3 years, 7 months ago (2017-04-24 17:28:00 UTC) #110
Charlie Harrison
Looks really good, just a few more comments. https://codereview.chromium.org/2798953002/diff/440001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc File chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc (right): https://codereview.chromium.org/2798953002/diff/440001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc#newcode111 chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc:111: ad_frames_data_storage_.emplace_back(); ...
3 years, 7 months ago (2017-04-24 19:18:26 UTC) #113
Bryan McQuade
https://codereview.chromium.org/2798953002/diff/440001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h File chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h (right): https://codereview.chromium.org/2798953002/diff/440001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h#newcode41 chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h:41: struct AdFrameData { cam we specify sane default values ...
3 years, 7 months ago (2017-04-24 19:20:47 UTC) #114
Bryan McQuade
https://codereview.chromium.org/2798953002/diff/320001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc File chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc (right): https://codereview.chromium.org/2798953002/diff/320001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc#newcode87 chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc:87: // This frame was previously not an ad, process ...
3 years, 7 months ago (2017-04-24 19:28:22 UTC) #115
jkarlin
Thanks all. I appreciate the review effort you've put in. PTAL. https://codereview.chromium.org/2798953002/diff/440001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc File chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc (right): ...
3 years, 7 months ago (2017-04-25 15:56:51 UTC) #118
Bryan McQuade
LGTM, thanks! https://codereview.chromium.org/2798953002/diff/460001/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/2798953002/diff/460001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode295 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:295: if (!navigation_handle->IsInMainFrame() && committed_load_) { i think ...
3 years, 7 months ago (2017-04-25 16:36:44 UTC) #121
Bryan McQuade
https://codereview.chromium.org/2798953002/diff/460001/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/2798953002/diff/460001/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc#newcode295 chrome/browser/page_load_metrics/metrics_web_contents_observer.cc:295: if (!navigation_handle->IsInMainFrame() && committed_load_) { On 2017/04/25 at 16:36:44, ...
3 years, 7 months ago (2017-04-25 16:37:59 UTC) #122
jkarlin
https://codereview.chromium.org/2798953002/diff/460001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h File chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h (right): https://codereview.chromium.org/2798953002/diff/460001/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h#newcode45 chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h:45: FrameTreeNodeId frame_tree_node_id; On 2017/04/25 16:36:44, Bryan McQuade wrote: > ...
3 years, 7 months ago (2017-04-25 16:42:51 UTC) #125
Charlie Harrison
lgtm/2 thanks
3 years, 7 months ago (2017-04-25 17:12:51 UTC) #128
jkarlin
isherman@ PTAL at histograms.xml, thanks!
3 years, 7 months ago (2017-04-25 17:17:31 UTC) #132
Ilya Sherman
First of all, has there been a conversation with the privacy team about recording these ...
3 years, 7 months ago (2017-04-26 00:09:45 UTC) #135
jkarlin
Thanks Ilya! > First of all, has there been a conversation with the privacy team ...
3 years, 7 months ago (2017-04-26 16:34:55 UTC) #146
Ilya Sherman
If you really want to record all of these metrics, I'd suggest rejiggering the naming ...
3 years, 7 months ago (2017-04-27 00:25:29 UTC) #149
jkarlin
Thanks for the great review isherman@. I've made the renaming changes as well as those ...
3 years, 7 months ago (2017-04-28 15:11:20 UTC) #155
Ilya Sherman
Thanks! Metrics LGTM. That said, please wait for final confirmation from the privacy team prior ...
3 years, 7 months ago (2017-04-28 22:57:19 UTC) #158
jkarlin
Thanks Ilya! And thanks to all of the reviewers. https://codereview.chromium.org/2798953002/diff/620001/tools/metrics/histograms/histograms.xml File tools/metrics/histograms/histograms.xml (right): https://codereview.chromium.org/2798953002/diff/620001/tools/metrics/histograms/histograms.xml#newcode46789 tools/metrics/histograms/histograms.xml:46789: ...
3 years, 7 months ago (2017-05-02 18:20:52 UTC) #161
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/2798953002/640001
3 years, 7 months ago (2017-05-02 19:21:30 UTC) #168
commit-bot: I haz the power
Committed patchset #24 (id:640001) as https://chromium.googlesource.com/chromium/src/+/6616a885b4f18edd4f6aa178146c14538ca1d429
3 years, 7 months ago (2017-05-02 19:27:21 UTC) #171
jkarlin
3 years, 7 months ago (2017-05-03 13:53:43 UTC) #172
Message was sent while issue was closed.
Reverted in https://codereview.chromium.org/2857963002

Powered by Google App Engine
This is Rietveld 408576698