New issue
Advanced search Search tips

Issue 851543 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 17
Components:
EstimatedDays: 10
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Measure size of top-level ad resources in total page measurements

Project Member Reported by jkarlin@chromium.org, Jun 11 2018

Issue description

The renderer (but not the browser process) knows which resources are ad resources. Get that information to the PageLoadMetrics so that it can measure the total byte count of ad resources on a page.
 
Owner: johnidel@chromium.org
Status: Assigned (was: Available)
We can measure this pretty easily in Blink. Let's do that now while we're trying to figure out how to propagate the is-ad resource bit to the browser process.

Comment 2 Deleted

Cc: -japhet@chromium.org
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/30c255498a700b299da7723f2b6369ae0464a2f3

commit 30c255498a700b299da7723f2b6369ae0464a2f3
Author: John Delaney <johnidel@chromium.org>
Date: Thu Aug 16 16:51:47 2018

Send per-resource updates to PageLoadMetrics

Send data use updates per resource from renderer to browser. This
will allow the browser process to aggregate per-resource information
and will keep feature specific logic out of core PageLoadMetrics
code.

Bug:  873746 , 851543 
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I34a617c8f1212d9d9ec157de16d65379340b1697
Reviewed-on: https://chromium-review.googlesource.com/1164222
Commit-Queue: John Delaney <johnidel@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583691}
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/metrics_web_contents_observer.h
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_tester.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/page_load_metrics_observer.h
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.h
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/page_load_tracker.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/browser/page_load_metrics/page_load_tracker.h
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/common/page_load_metrics/page_load_metrics.mojom
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/renderer/page_load_metrics/fake_page_timing_sender.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/renderer/page_load_metrics/fake_page_timing_sender.h
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/renderer/page_load_metrics/page_resource_data_use.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/renderer/page_load_metrics/page_resource_data_use.h
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/renderer/page_load_metrics/page_timing_metrics_sender.h
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/chrome/renderer/page_load_metrics/page_timing_sender.h
[modify] https://crrev.com/30c255498a700b299da7723f2b6369ae0464a2f3/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 31

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/44a6b036f9e937f1f5311188ddf5f69d37b340cb

commit 44a6b036f9e937f1f5311188ddf5f69d37b340cb
Author: John Delaney <johnidel@chromium.org>
Date: Fri Aug 31 22:48:16 2018

Route is_ad_resource flag from blink to SubresourceFilterAgent

Route the per resource request is_ad_resource flag to the
SubresourceFilterAgent so it can be used in creating per-page ad
metrics. The request ids are necessary to associate the
network PLM updates with the resource.

Requires that the subresource request id be returned from the
WebUrLoader in blink::ResourceResponse.

Bug:  851543 
Change-Id: I2ca0ed887cfa8a2c8dddf99613a29f8654bf9ed5
Reviewed-on: https://chromium-review.googlesource.com/1165823
Commit-Queue: John Delaney <johnidel@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588195}
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_browsertest.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/common/page_load_metrics/page_load_metrics.mojom
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/renderer/chrome_content_renderer_client.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/renderer/page_load_metrics/metrics_render_frame_observer.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/renderer/page_load_metrics/page_resource_data_use.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/renderer/page_load_metrics/page_resource_data_use.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/renderer/page_load_metrics/page_timing_metrics_sender.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/chrome/test/data/ad_tagging/create_frame.js
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/components/subresource_filter/content/renderer/BUILD.gn
[add] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/components/subresource_filter/content/renderer/ad_resource_tracker.cc
[add] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/components/subresource_filter/content/renderer/ad_resource_tracker.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/components/subresource_filter/content/renderer/subresource_filter_agent.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/components/subresource_filter/content/renderer/subresource_filter_agent.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/components/subresource_filter/content/renderer/subresource_filter_agent_unittest.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/components/subresource_filter/content/renderer/web_document_subresource_filter_impl.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/components/subresource_filter/content/renderer/web_document_subresource_filter_impl.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/content/renderer/loader/web_url_loader_impl.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/content/renderer/loader/weburlresponse_extradata_impl.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/third_party/blink/public/platform/web_document_subresource_filter.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/third_party/blink/public/platform/web_url_response.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/third_party/blink/renderer/core/loader/base_fetch_context.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/third_party/blink/renderer/core/loader/frame_fetch_context.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/third_party/blink/renderer/core/loader/subresource_filter.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/third_party/blink/renderer/core/loader/subresource_filter.h
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/third_party/blink/renderer/platform/exported/web_url_response.cc
[modify] https://crrev.com/44a6b036f9e937f1f5311188ddf5f69d37b340cb/third_party/blink/renderer/platform/loader/fetch/resource_response.h

Project Member

Comment 6 by bugdroid1@chromium.org, Sep 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/51b414c4a62c3c556bf85b9469c857949e114e17

commit 51b414c4a62c3c556bf85b9469c857949e114e17
Author: John Delaney <johnidel@chromium.org>
Date: Tue Sep 11 15:22:28 2018

Add new per-resource metrics to AdsPageLoadMetricsObserver

Now that we have an ad flag in the browser process, log per resource
metrics for ad resource sizes. Also log new metrics for total ad bytes
per-page and for top-level ads now that this information is
available in the browser process. These metrics are different than the
existing page byte totals as they account for network bytes that went
towards canceled and incomplete resource loads.

Bug:  851543 , 859080 
Change-Id: I2ad863f0fc718f51521269d7ffd1c1bb8d0bf886
Reviewed-on: https://chromium-review.googlesource.com/1199576
Commit-Queue: John Delaney <johnidel@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590317}
[modify] https://crrev.com/51b414c4a62c3c556bf85b9469c857949e114e17/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc
[modify] https://crrev.com/51b414c4a62c3c556bf85b9469c857949e114e17/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h
[modify] https://crrev.com/51b414c4a62c3c556bf85b9469c857949e114e17/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_browsertest.cc
[modify] https://crrev.com/51b414c4a62c3c556bf85b9469c857949e114e17/tools/metrics/histograms/histograms.xml

Status: Fixed (was: Assigned)

Sign in to add a comment