Regression: Blank page is opened on middle click for www.flipkart.com
Reported by
dchau...@etouch.net,
Oct 13 2016
|
||||||
Issue descriptionChrome Version: 56.0.2888.0 (Official Build)41c5c138b099891457c2e0cb965b8f24dacc403e-refs/heads/master@{#424625} 32/64-bit. OS: Windows(7,8,10), Mac(10.10.5,10.11.4). What steps will reproduce the problem? 1. Launch chrome and go to www.flipkart.com 2. Middle click on any slider (Below the menu bar). [Refer video] 3. Now go to newly opened tab and observe. Blank page is opened. Page should not be blank. This is a regression issue. broken in M-56 series, below is manual regression range. Good build: 53.0.2886.0 Bad build: 53.0.2888.0 Kindly review the attached screen-cast for reference.
,
Oct 13 2016
Using the per-revision bisect providing the bisect results, Good build:56.0.2886.0(Revision: 424099). Bad build: 56.0.2888.0 (Revision:424625). You are probably looking for a change made after 424587 (known good), but no later than 424588 (first known bad). CHANGELOG URL: ----------------- https://chromium.googlesource.com/chromium/src/+log/e9c38b3dd90ee61f9c306ba33b4a969aae10f61a..f097ee58fe6bb4c329999f03253bc4849cc50302 From the CL above, assigning the issue to the concern owner @lukasza - Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner. Note: Adding RB-Dev for this issue since it got regressed on latest M-56, Please feel free to edit if this is not the case Thanks!
,
Oct 13 2016
Thank you for reporting and assigning the bug to me. I've confirmed that the bug repros on Windows at r424588 and doesn't repro one revision earlier. I could not repro on a Linux machine. We might have to revert the CL that triggered the regression, but I would like to try looking closer today and tomorrow in case there is an easy explanation and a fix. Please let me know if we need to revert earlier than that.
,
Oct 13 2016
,
Oct 13 2016
During the repro steps, RenderFrameHostImpl::OpenURL is called with url=https://flapt.flipkart.net/click..... and with uses_post=0 and with extra_headers="Upgrade-Insecure-Requests: 1".
,
Oct 14 2016
Able to reproduce the issue on Linux 14.04 chrome version 56.0.2888.0 as well
,
Oct 14 2016
,
Oct 14 2016
The automated revert doesn't apply cleanly anymore (at ). I'll try to put together a manual revert later today. FWIW, the OpenURL where extra_headers are non-empty is handled by the Browser::OpenURLFromTab method (and not by some more exotic content::WebContentsDelegate). I still have no clue how / why this regression happened. The only request with extra_headers is the https://flapt.flipkart.net/click... (the link being middle-clicked) and in Fiddler I see that the request+response don't significantly differ before and after the regression (both the initial 302 and the later /mobiles/~samsung-on8/pr?sid=tyy,4io&otracker=hp_banner_widget_0).
,
Oct 14 2016
(ooops, pressed "Save changes" too soon - the automated revert attempt was at https://codereview.chromium.org/2419093002).
,
Oct 14 2016
It seems that after the regression extra HTTP requests contain "Upgrade-Insecure-Headers: 1" header - it seems as if |extra_headers| are applied not only the navigation requested via NavigationController::LoadURLWithParams, but also to other requests. I will try to investigate if we can/should remove extra headers propagation from RenderFrameImpl::willSendRequest (keeping it only in RenderFrameImpl::NavigateInternal. This is tricky, because it seems that LoadURLParams.extra_headers should still apply after a redirect [1], but should not apply to subresources [2] (hopefully we can distinguish these cases based on webUrlRequest.getFrameType() != WebURLRequest::FrameTypeNone). [1] - for example: #2 0x7f8998dd6bf7 content::RenderFrameImpl::willSendRequest() #3 0x7f898a57dc4b blink::FrameLoaderClientImpl::dispatchWillSendRequest() #4 0x7f897d2a03d9 blink::FrameFetchContext::dispatchWillSendRequest() #5 0x7f897c2ae9d6 blink::ResourceFetcher::willFollowRedirect() #6 0x7f897c2c85dc blink::ResourceLoader::willFollowRedirect() #7 0x7f899705e660 content::WebURLLoaderImpl::Context::OnReceivedRedirect() #8 0x7f8996ff2b79 content::ResourceDispatcher::OnReceivedRedirect() [2] - for example: #2 0x7f8998dd6bf7 content::RenderFrameImpl::willSendRequest() #3 0x7f898a57dc4b blink::FrameLoaderClientImpl::dispatchWillSendRequest() #4 0x7f897d2a27a5 blink::FrameFetchContext::willStartLoadingResource() #5 0x7f897c29fe4a blink::ResourceFetcher::requestResource() #6 0x7f897c2c9607 blink::ScriptResource::fetch() #7 0x7f897d2666f8 blink::DocumentLoader::startPreload() #8 0x7f897c9017e4 blink::HTMLResourcePreloader::preload() #9 0x7f897c98a92e blink::ResourcePreloader::takeAndPreload()
,
Oct 14 2016
The revert has landed in https://codereview.chromium.org/2419093002 - r425473.
,
Oct 14 2016
Hopefully this bug can be fixed when the next canary comes out (including the revert). I've opened issue 656179 to track the problem with attaching extra_headers to non-navigational requests. I've verified that the repro in the current bug goes away if I do not process extra_headers in RenderFrameImpl::willSendRequest if request.getFrameType() != WebURLRequest::FrameTypeNone.
,
Oct 17 2016
r425473 was initially in 56.0.2891.0 I've tested 56.0.2891.0 (Official Build) canary (64-bit) on Windows and the problem does no longer repro. |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by dchau...@etouch.net
, Oct 13 2016