New issue
Advanced search Search tips

Issue 627501 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2016
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

[page_load_metrics] Use a NavigationThrottle to get more accurate data about provisional navs

Project Member Reported by csharrison@chromium.org, Jul 12 2016

Issue description

Navigation throttles can give us more reliable user gesture and transition type bits, which will allow us to capture richer abort metrics.
 
Note: the NavigationThrottle should feed data back into the MetricsWebContentsObserver, so the abort tracking logic doesn't spread between multiple classes.
Project Member

Comment 2 by bugdroid1@chromium.org, Jul 22 2016

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

commit dd06babf17af821c4fce1d6509946188c43fd208
Author: csharrison <csharrison@chromium.org>
Date: Fri Jul 22 14:15:02 2016

Call WillStartRequestForTesting in TestRenderFrameHost

This CL calls WillStartRequest on the current NavigationHandle when a
navigation is starting. This mimics the SimulateRedirect call, and enables
NavigationThrottles which override WillStartRequest to be unit testable
using the content unit test framework.

Note: like SimulateRedirect, there is no current support for the throttles
actually cancelling / deferring the navigation.

BUG= 627501 

Review-Url: https://codereview.chromium.org/2157153003
Cr-Commit-Position: refs/heads/master@{#407150}

[modify] https://crrev.com/dd06babf17af821c4fce1d6509946188c43fd208/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/dd06babf17af821c4fce1d6509946188c43fd208/chrome/browser/chromeos/login/signin/merge_session_throttling_utils.cc
[modify] https://crrev.com/dd06babf17af821c4fce1d6509946188c43fd208/chrome/browser/chromeos/login/signin/merge_session_throttling_utils.h
[modify] https://crrev.com/dd06babf17af821c4fce1d6509946188c43fd208/content/test/test_render_frame_host.cc
[modify] https://crrev.com/dd06babf17af821c4fce1d6509946188c43fd208/content/test/test_render_frame_host.h

Project Member

Comment 3 by bugdroid1@chromium.org, Aug 2 2016

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

commit 4bd8a19469434b79ff524323f44eca517e799321
Author: csharrison <csharrison@chromium.org>
Date: Tue Aug 02 18:03:15 2016

[page_load_metrics] Add a NavigationThrottle for richer abort metrics

This patch adds a NavigationThrottle, which forwards calls to
WillStartRequest to the MetricsWebContentsObserver. At this
point in the navigation, the NavigationHandle has additional
data (like user gesture and transition type) that is extremely
useful to track abort types.

With this patch, we thread the page transition type at WillStartRequest
time into the PageLoadTracker, where we use it to attribute abort cause
to previously aborted provisional loads. This immediately yields a
dramatic improvement to the abort metrics, as suddenly the BeforeCommit
variants of all UnknownNavigation abort metrics will have a reliable
transition type that aborted them.

A followup patch will thread the user gesture bit to generate a more
accurate picture of "user initiated" aborts.

TBR=jam@chromium.org

BUG= 627501 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2132603002
Cr-Commit-Position: refs/heads/master@{#409237}

[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/chrome_content_browser_client.cc
[add] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/metrics_navigation_throttle.cc
[add] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/metrics_navigation_throttle.h
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/metrics_web_contents_observer.h
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer.h
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/browser/page_load_metrics/page_load_metrics_observer.h
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/chrome/chrome_browser.gypi
[delete] https://crrev.com/89355878d1d8c4b3ece05d3a48070f87de4e5384/components/page_load_metrics.gypi
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/content/browser/frame_host/navigation_handle_impl.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/content/browser/frame_host/navigation_handle_impl_browsertest.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/content/browser/web_contents/web_contents_impl_browsertest.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/content/public/test/browser_test_utils.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/content/public/test/browser_test_utils.h
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/content/test/content_browser_test_utils_internal.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/content/test/content_browser_test_utils_internal.h
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/content/test/test_web_contents.cc
[modify] https://crrev.com/4bd8a19469434b79ff524323f44eca517e799321/tools/metrics/histograms/histograms.xml

Status: Fixed (was: Started)

Sign in to add a comment