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

Issue 647698 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

PlzNavigate: layout tests fail because WebFrameClient::didReceiveServerRedirectForProvisionalLoad is not called

Project Member Reported by clamy@chromium.org, Sep 16 2016

Issue description

Some layout tests fail when PlzNavigate is enabled because WebFrameClient::didReceiveServerRedirectForProvisionalLoad is not called is never called, and they expect some output regarding navigation to b eprinted at that time. Browser-side navigation handles all redirects in the browser, hence why the redirect notification is never sent to the renderer code.
 

Comment 1 by nasko@chromium.org, Sep 16 2016

Do those test only check for the callback or is there any functionality that is expected to work? We can't really deliver redirect callbacks in the renderer process with PlzNavigate, so unless we are breaking actual functionality, we should mark those tests for deletion once PlzNavigate ships.
Owner: ananta@chromium.org
Status: Assigned (was: Available)
Project Member

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

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

commit 878b2e67ac952b00b2fcafc54867f61b25507923
Author: ananta <ananta@chromium.org>
Date: Mon Mar 13 22:40:26 2017

PlzNavigate: Fix the http/tests/loading/307-after-303-after-post.html and the http/tests/loading/redirect-methods.html layout tests.

These tests fail because willSendRequest() occurs before didStartProvisionalLoad(). In PlzNavigate willSendRequest is called when
we send a navigation to the browser via BeginNavigation().

Proposed fix is to remember the navigation state in decidePolicyForNavigation() and invoke BeginNavigation() when we
receive the didStartProvisionalLoad() notification.

We pass the WebURLRequest in WebFrameClient::didStartProvisionalLoad()

The other change is to remember the navigation state in a PendingNavigationInfo structure in
RenderFrameImpl. This is populated in decidePolicyForNavigation() and released in didStartProvisionalLoad().

BUG= 647698 , 625765 

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

[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/content/renderer/render_frame_impl.h
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/content/shell/test_runner/web_frame_test_client.cc
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/content/shell/test_runner/web_frame_test_client.h
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/content/shell/test_runner/web_frame_test_proxy.h
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/third_party/WebKit/LayoutTests/FlagExpectations/enable-browser-side-navigation
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/third_party/WebKit/Source/core/frame/LocalFrameClient.h
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/third_party/WebKit/Source/core/loader/EmptyClients.h
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/third_party/WebKit/Source/core/loader/FrameLoader.cpp
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/third_party/WebKit/Source/web/LocalFrameClientImpl.cpp
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/third_party/WebKit/Source/web/LocalFrameClientImpl.h
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/third_party/WebKit/Source/web/tests/WebDocumentSubresourceFilterTest.cpp
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/third_party/WebKit/Source/web/tests/WebFrameTest.cpp
[modify] https://crrev.com/878b2e67ac952b00b2fcafc54867f61b25507923/third_party/WebKit/public/web/WebFrameClient.h

Comment 4 by ananta@chromium.org, Mar 14 2017

Status: Fixed (was: Assigned)

Sign in to add a comment