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

Issue 730613 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
Last visit > 30 days ago
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Ignore resource completion callbacks for previous main RFHs

Project Member Reported by bmcquade@chromium.org, Jun 7 2017

Issue description

In some cases we can encounter races where a resource completion callback is delivered for a previously committed page. For example:

page A commits
navigation for page B is initiated
page A initiates a resource request (perhaps in the beforeunload handler)
page B commits
resource request from A completes

In this case, depending on whether the RFHs for page A have been cleaned up yet in the browser process, the resource request for A may be delivered and attributed to page B.

We should guard against this. We can verify that the resource's RFH matches the currently committed load's RFH to catch cross-origin cases.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 7 2017

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

commit e9a16456221d58200d57bc551d743aff2c909e26
Author: Bryan McQuade <bmcquade@chromium.org>
Date: Fri Jul 07 14:06:29 2017

Ignore resource completion callbacks for previous main RFHs

We can in some cases receive resource completion callbacks for
resources associated with the previously committed document.

This change filters out callbacks for resources from a previous
RFH.


Bug: 730613
Change-Id: Ia0a677530826d94b13d56f56c53a01cbf9cade72
Reviewed-on: https://chromium-review.googlesource.com/558265
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Commit-Queue: Bryan McQuade <bmcquade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484915}
[modify] https://crrev.com/e9a16456221d58200d57bc551d743aff2c909e26/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
[modify] https://crrev.com/e9a16456221d58200d57bc551d743aff2c909e26/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
[modify] https://crrev.com/e9a16456221d58200d57bc551d743aff2c909e26/chrome/browser/page_load_metrics/metrics_web_contents_observer.h
[modify] https://crrev.com/e9a16456221d58200d57bc551d743aff2c909e26/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
[modify] https://crrev.com/e9a16456221d58200d57bc551d743aff2c909e26/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/e9a16456221d58200d57bc551d743aff2c909e26/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc
[modify] https://crrev.com/e9a16456221d58200d57bc551d743aff2c909e26/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
[add] https://crrev.com/e9a16456221d58200d57bc551d743aff2c909e26/chrome/test/data/page_load_metrics/large_iframe.html

Sign in to add a comment