Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(650)

Issue 1871293002: Don't use pending NavigationEntries for navigation transfers (try #2). (Closed)

Created:
4 years, 8 months ago by Charlie Reis
Modified:
4 years, 7 months ago
Reviewers:
alexmos
CC:
chromium-reviews, darin-cc_chromium.org, nasko+codewatch_chromium.org, jam, creis+watch_chromium.org, site-isolation-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Don't use pending NavigationEntries for navigation transfers (try #2). Cross-process transfers for navigations that are about to commit had been using NavigationControllerImpl::LoadURLWithParams (as an artifact of previously going through OpenURL). Most of that code is unnecessary, in particular the fact that it creates a new pending NavigationEntry. That's problematic for subframe transfers, where we should not affect any existing pending NavigationEntry (e.g., for a slow main frame navigation). This CL shortcuts the transfer by creating a NavigationEntry without making it the pending one. A future CL can eliminate the entry entirely by validating and passing the parameters to the right RenderFrameHost directly. This also makes it possible to do cross-process navigations in subframes of the initial blank page, fixing a crash. This CL is a second attempt that fixes crashes seen after https://crrev.com/384009, and adds tests for those cases. It works around https://crbug.com/608402 for the time being. BUG=495161, 584739, 608402 TEST=Create OOPIF on initial blank page of a tab. TEST=Cross-process subframe navigation during slow main frame navigation. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation Committed: https://crrev.com/c717927a3712cf6391962971e0e4084a8f159ba0 Cr-Commit-Position: refs/heads/master@{#391439}

Patch Set 1 #

Patch Set 2 : Rebase #

Patch Set 3 : Add tests and crash fix #

Patch Set 4 : Fix SubframeOnEmptyPage #

Total comments: 15

Patch Set 5 : Fix review comments. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+330 lines, -64 lines) Patch
M content/browser/frame_host/navigation_controller_impl_browsertest.cc View 1 2 3 4 3 chunks +265 lines, -53 lines 0 comments Download
M content/browser/frame_host/navigator_impl.cc View 1 2 3 4 1 chunk +65 lines, -11 lines 0 comments Download

Messages

Total messages: 21 (12 generated)
Charlie Reis
Alex, can you take a look? This is very similar to https://codereview.chromium.org/1683593002, but handles the ...
4 years, 7 months ago (2016-05-02 22:35:34 UTC) #7
alexmos
Thanks, this looks great, just one question about FNE cleanup and a few nits. https://codereview.chromium.org/1871293002/diff/140001/content/browser/frame_host/navigation_controller_impl_browsertest.cc ...
4 years, 7 months ago (2016-05-03 22:07:52 UTC) #8
Charlie Reis
Thanks! PTAL. https://codereview.chromium.org/1871293002/diff/140001/content/browser/frame_host/navigation_controller_impl_browsertest.cc File content/browser/frame_host/navigation_controller_impl_browsertest.cc (right): https://codereview.chromium.org/1871293002/diff/140001/content/browser/frame_host/navigation_controller_impl_browsertest.cc#newcode640 content/browser/frame_host/navigation_controller_impl_browsertest.cc:640: EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); On 2016/05/03 22:07:51, alexmos wrote: > ...
4 years, 7 months ago (2016-05-03 23:43:05 UTC) #9
alexmos
LGTM https://codereview.chromium.org/1871293002/diff/140001/content/browser/frame_host/navigation_controller_impl_browsertest.cc File content/browser/frame_host/navigation_controller_impl_browsertest.cc (right): https://codereview.chromium.org/1871293002/diff/140001/content/browser/frame_host/navigation_controller_impl_browsertest.cc#newcode1776 content/browser/frame_host/navigation_controller_impl_browsertest.cc:1776: capturer.Wait(); On 2016/05/03 23:43:05, Charlie Reis wrote: > ...
4 years, 7 months ago (2016-05-03 23:52:40 UTC) #10
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1871293002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1871293002/160001
4 years, 7 months ago (2016-05-03 23:58:23 UTC) #12
commit-bot: I haz the power
Failed to apply the patch.
4 years, 7 months ago (2016-05-04 01:17:40 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1871293002/160001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1871293002/160001
4 years, 7 months ago (2016-05-04 03:32:37 UTC) #17
commit-bot: I haz the power
Committed patchset #5 (id:160001)
4 years, 7 months ago (2016-05-04 03:36:10 UTC) #19
commit-bot: I haz the power
4 years, 7 months ago (2016-05-04 03:37:45 UTC) #21
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/c717927a3712cf6391962971e0e4084a8f159ba0
Cr-Commit-Position: refs/heads/master@{#391439}

Powered by Google App Engine
This is Rietveld 408576698