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

Issue 705559 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner: ----
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug
Proj-Servicification

Blocked on:
issue 705318
issue 705744
issue 707282

Blocking:
issue 368813


Show other hotlists

Hotlists containing this issue:
plz-navigate-blockers


Sign in to add a comment

PlzNavigate causing performance issues

Project Member Reported by jam@chromium.org, Mar 27 2017

Issue description

Comment 1 by jam@chromium.org, Mar 27 2017

Labels: -OS-Windows OS-All

Comment 2 by jam@chromium.org, Mar 27 2017

Blockedon: 705744
Project Member

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

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

commit a2c84a7664eceb5cbeaae5bf1ec32da0060e3097
Author: John Abd-El-Malek <jam@chromium.org>
Date: Wed Mar 29 23:47:53 2017

Keep track in the browser of which frames have onunload and onbeforeunload handlers.

This allows PlzNavigate to only pause fetching the request if it knows that the page has an onbeforeunload handler, where today it currently always goes to the renderer. This avoids delaying the network requests in the 95% cases that don't onbeforeunload handler on a process hop to the renderer.

BUG=365039, 705559 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
R=dcheng@chromium.org, nasko@chromium.org

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

[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/chrome/browser/lifetime/browser_close_manager.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/browser_side_navigation_browsertest.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/frame_host/navigation_request.h
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/frame_host/navigator_impl_unittest.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/frame_host/render_frame_host_manager_unittest.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/web_contents/web_contents_impl_browsertest.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/browser/web_contents/web_contents_impl_unittest.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/common/frame_messages.h
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/renderer/render_frame_impl.h
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/content/test/test_render_frame_host.h
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
[modify] https://crrev.com/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097/ui/views/controls/webview/web_dialog_view.cc

Project Member

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

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

commit 73bcfa377fd851623f577ef447c281f2c81866b6
Author: John Abd-El-Malek <jam@chromium.org>
Date: Thu Mar 30 02:31:10 2017

Disable a few tests that started flaking after r460581.

The tests are:
WebNavigationApiTest.ForwardBack
LoginPromptBrowserTest.SupplyRedundantAuths
LoginPromptBrowserTest.CancelRedundantAuths

I'll investigate these to see if they're real failures or just test issues.

BUG= 705559 
TBR=nasko@chromium.org

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

[modify] https://crrev.com/73bcfa377fd851623f577ef447c281f2c81866b6/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
[modify] https://crrev.com/73bcfa377fd851623f577ef447c281f2c81866b6/chrome/browser/ui/login/login_handler_browsertest.cc

Comment 5 by falken@chromium.org, Mar 30 2017

Blockedon: 705318
Since NTP is using service worker, this could be caused by  issue 705318 .
Project Member

Comment 6 by bugdroid1@chromium.org, Mar 31 2017

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

commit 8393de464114cb0a3d5e82a93a491728aa49e043
Author: jam <jam@chromium.org>
Date: Fri Mar 31 03:29:08 2017

Followup comments from r460581.

BUG=365039,  705559 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/8393de464114cb0a3d5e82a93a491728aa49e043/content/browser/browser_side_navigation_browsertest.cc
[modify] https://crrev.com/8393de464114cb0a3d5e82a93a491728aa49e043/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/8393de464114cb0a3d5e82a93a491728aa49e043/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/8393de464114cb0a3d5e82a93a491728aa49e043/content/browser/frame_host/render_frame_host_manager_unittest.cc
[modify] https://crrev.com/8393de464114cb0a3d5e82a93a491728aa49e043/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/8393de464114cb0a3d5e82a93a491728aa49e043/content/browser/web_contents/web_contents_impl_browsertest.cc
[modify] https://crrev.com/8393de464114cb0a3d5e82a93a491728aa49e043/content/common/frame_messages.h
[modify] https://crrev.com/8393de464114cb0a3d5e82a93a491728aa49e043/content/renderer/render_frame_impl.cc
[add] https://crrev.com/8393de464114cb0a3d5e82a93a491728aa49e043/content/test/data/page_with_empty_beforeunload.html
[modify] https://crrev.com/8393de464114cb0a3d5e82a93a491728aa49e043/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp

Project Member

Comment 7 by bugdroid1@chromium.org, Mar 31 2017

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

commit bc0329821f41940fff03c16dd1e36293d1042218
Author: jam <jam@chromium.org>
Date: Fri Mar 31 04:35:10 2017

Fix two tests that started failing with PlzNavigate after browser-initiated navigations stopped going to the renderer first if there was no beforeunload handler in r460581.

The bug was that the tests were sending multiple navigations to different tabs in parallel. While a nested message loop was running for one navigation, the notification that about:blank (initial URL) of the tab was firing and causing the login interstitial (for the next navigation) to be removed. This doesn't happen in practice because we don't run nested message loops that dispatch IPCs in production, but we do for browser tests.

This fixes
LoginPromptBrowserTest.SupplyRedundantAuths
LoginPromptBrowserTest.CancelRedundantAuths

BUG= 705559 

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

[modify] https://crrev.com/bc0329821f41940fff03c16dd1e36293d1042218/chrome/browser/ui/login/login_handler_browsertest.cc

Cc: manoranj...@chromium.org
Labels: TE-NeedsTriageHelp
Unable to view the above provided links in Comment#0,as we observed 'Forbidden ' messages,could anybody from dev team please look into this issue.
Thank you.
Blockedon: 707282
Cc: sgu...@chromium.org
Labels: -TE-NeedsTriageHelp
For comment #8:

The links in #0 are UMA dashboards available to Googlers. They show slow down in navigations in certain cases. I don't think TE help is needed at this time, as it is mostly devs that need to investigate potential differences between the original navigation code and PlzNavigate.
Project Member

Comment 12 by bugdroid1@chromium.org, Apr 10 2017

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

commit 1d0058ca68075ed731ef2d3c150b9c3aba1534f6
Author: jam <jam@chromium.org>
Date: Mon Apr 10 21:28:17 2017

Revert of Followup comments from r460581. (patchset #1 id:1 of https://codereview.chromium.org/2781383002/ )

Reason for revert:
Exposed races with FrameHostMsg_DidStopLoading

BUG=710062

Original issue's description:
> Followup comments from r460581.
>
> BUG=365039,  705559 
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
>
> Review-Url: https://codereview.chromium.org/2781383002
> Cr-Commit-Position: refs/heads/master@{#461012}
> Committed: https://chromium.googlesource.com/chromium/src/+/8393de464114cb0a3d5e82a93a491728aa49e043

TBR=nasko@chromium.org,dcheng@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=365039,  705559 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/1d0058ca68075ed731ef2d3c150b9c3aba1534f6/content/browser/browser_side_navigation_browsertest.cc
[modify] https://crrev.com/1d0058ca68075ed731ef2d3c150b9c3aba1534f6/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/1d0058ca68075ed731ef2d3c150b9c3aba1534f6/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/1d0058ca68075ed731ef2d3c150b9c3aba1534f6/content/browser/frame_host/render_frame_host_manager_unittest.cc
[modify] https://crrev.com/1d0058ca68075ed731ef2d3c150b9c3aba1534f6/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/1d0058ca68075ed731ef2d3c150b9c3aba1534f6/content/browser/web_contents/web_contents_impl_browsertest.cc
[modify] https://crrev.com/1d0058ca68075ed731ef2d3c150b9c3aba1534f6/content/common/frame_messages.h
[modify] https://crrev.com/1d0058ca68075ed731ef2d3c150b9c3aba1534f6/content/renderer/render_frame_impl.cc
[delete] https://crrev.com/ded1c1cc662ecee1ecfa4b41da7ccd9cc5a52129/content/test/data/page_with_empty_beforeunload.html
[modify] https://crrev.com/1d0058ca68075ed731ef2d3c150b9c3aba1534f6/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp

Project Member

Comment 13 by bugdroid1@chromium.org, Apr 11 2017

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

commit 4044498152ad71d05c57aee559cba6a97db82375
Author: jam <jam@chromium.org>
Date: Tue Apr 11 03:01:41 2017

Revert of Keep track in the browser of which frames have onunload and onbeforeunload handlers. (patchset #10 id:180001 of https://codereview.chromium.org/2783723002/ )

Reason for revert:
Exposed races with FrameHostMsg_DidStopLoading

BUG=710062

Original issue's description:
> Keep track in the browser of which frames have onunload and onbeforeunload handlers.
>
> This allows PlzNavigate to only pause fetching the request if it knows that the page has an onbeforeunload handler, where today it currently always goes to the renderer. This avoids delaying the network requests in the 95% cases that don't onbeforeunload handler on a process hop to the renderer.
>
> BUG=365039, 705559 
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
> R=dcheng@chromium.org, nasko@chromium.org
>
> Review-Url: https://codereview.chromium.org/2783723002 .
> Cr-Commit-Position: refs/heads/master@{#460581}
> Committed: https://chromium.googlesource.com/chromium/src/+/a2c84a7664eceb5cbeaae5bf1ec32da0060e3097

TBR=nasko@chromium.org,dcheng@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=365039, 705559 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/chrome/browser/lifetime/browser_close_manager.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/browser_side_navigation_browsertest.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/frame_host/navigation_request.h
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/frame_host/navigator_impl_unittest.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/frame_host/render_frame_host_manager_unittest.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/web_contents/web_contents_impl_browsertest.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/browser/web_contents/web_contents_impl_unittest.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/common/frame_messages.h
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/renderer/render_frame_impl.h
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/content/test/test_render_frame_host.h
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
[modify] https://crrev.com/4044498152ad71d05c57aee559cba6a97db82375/ui/views/controls/webview/web_dialog_view.cc

Comment 14 by clamy@chromium.org, Apr 20 2017

Labels: Proj-PlzNavigate-Blocking

Comment 15 by clamy@chromium.org, Apr 20 2017

Cc: fdegans@chromium.org
 Issue 503975  has been merged into this issue.
Project Member

Comment 16 by bugdroid1@chromium.org, May 25 2017

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

commit 080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0
Author: clamy <clamy@chromium.org>
Date: Thu May 25 00:44:18 2017

Create NavigationHandle after beforeunload with PlzNavigate.

This CL ensures that browser-initiated navigations see their navigation
start time updated to the proceed time of the BeforeUnload event. This
is the correct time to use as per the Navigation Timing API (see
https://www.w3.org/TR/navigation-timing/#dom-performancetiming-navigationstart).

It also ensures that the  NavigationHandle will always be created after the
BeforeUnload event has run when PlzNavigate is enabled (this is already the
case without PlzNavigate). The NavigationHandle will then always have the
correct navigation start time when Plznavigate is enabled.

BUG= 705559 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
COLLABORATOR=nasko@chromium.org

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

[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/chrome/browser/ui/browser_browsertest.cc
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/chrome/browser/ui/browser_instant_controller_unittest.cc
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/content/browser/devtools/protocol/devtools_protocol_browsertest.cc
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/content/browser/frame_host/frame_tree_node.cc
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/content/browser/frame_host/navigation_handle_impl_browsertest.cc
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/content/browser/frame_host/navigation_request.cc
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/content/browser/frame_host/navigation_request.h
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/content/browser/frame_host/navigator.h
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/content/browser/frame_host/navigator_impl.h
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/080e7966ea2c9603ae48cc8c0e2f227fb5dac1e0/content/browser/web_contents/aura/overscroll_navigation_overlay_unittest.cc

Comment 18 by jam@chromium.org, Jul 21 2017

Status: Fixed (was: Unconfirmed)
https://uma.googleplex.com/variations?sid=bbc7ca04262309781615df3ebe71b9c1 doesn't show a slowdown anymore.

Navigation is now faster as well in general. The only slowdown is with back/forward navigations, which switching to a data pipe will fix ( bug 705744 ).
Components: Internals>Network>Service
Components: -Internals>Network>Service Internals>Services>Network
Apologies, applied the wrong component in bulk.

Sign in to add a comment