New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 699849 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Mar 2017
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Add support for tracking loading behavior of child frames.

Project Member Reported by bmcquade@chromium.org, Mar 9 2017

Issue description

some loading behaviors, such as subresource filtering and media being played, need to be tracked in both the top level frame and child frames. we need to add support for tracking observed behaviors in child frames.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 10 2017

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

commit 2a2a964c75a71e56aa52790d2ce0bcd5a9af434a
Author: bmcquade <bmcquade@chromium.org>
Date: Fri Mar 10 21:29:38 2017

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}

[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.h
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/page_load_metrics_observer.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/page_load_metrics_observer.h
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/page_load_metrics_util.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/page_load_metrics_util.h
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/page_load_tracker.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/page_load_metrics/page_load_tracker.h
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/browser/subresource_filter/subresource_filter_browsertest.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/renderer/chrome_content_renderer_client.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/renderer/page_load_metrics/metrics_render_frame_observer.h
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
[modify] https://crrev.com/2a2a964c75a71e56aa52790d2ce0bcd5a9af434a/tools/metrics/histograms/histograms.xml

Labels: Merge-Request-58
Project Member

Comment 3 by sheriffbot@chromium.org, Mar 13 2017

Labels: -Merge-Request-58 Hotlist-Merge-Approved Merge-Approved-58
Your change meets the bar and is auto-approved for M58. Please go ahead and merge the CL to branch 3029 manually. Please contact milestone owner if you have questions.
Owners: amineer@(clank), cmasso@(bling), bhthompson@(cros), govind@(desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 4 by bugdroid1@chromium.org, Mar 13 2017

Labels: -merge-approved-58 merge-merged-3029
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a8cb019452819dba009c8807cd729c33337c6b92

commit a8cb019452819dba009c8807cd729c33337c6b92
Author: bmcquade <bmcquade@chromium.org>
Date: Mon Mar 13 15:36:56 2017

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 
NOTRY=true
NOPRESUBMIT=true
TBR=csharrison

Review-Url: https://codereview.chromium.org/2737563007
Cr-Commit-Position: refs/heads/master@{#456166}
(cherry picked from commit 2a2a964c75a71e56aa52790d2ce0bcd5a9af434a)

Review-Url: https://codereview.chromium.org/2750553002
Cr-Commit-Position: refs/branch-heads/3029@{#149}
Cr-Branched-From: 939b32ee5ba05c396eef3fd992822fcca9a2e262-refs/heads/master@{#454471}

[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/observers/css_scanning_page_load_metrics_observer.h
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/page_load_metrics_observer.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/page_load_metrics_observer.h
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/page_load_metrics_util.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/page_load_metrics_util.h
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/page_load_tracker.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/page_load_metrics/page_load_tracker.h
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/browser/subresource_filter/subresource_filter_browsertest.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/renderer/chrome_content_renderer_client.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/renderer/page_load_metrics/metrics_render_frame_observer.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/renderer/page_load_metrics/metrics_render_frame_observer.h
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
[modify] https://crrev.com/a8cb019452819dba009c8807cd729c33337c6b92/tools/metrics/histograms/histograms.xml

Status: Fixed (was: Started)

Sign in to add a comment