OOPIF: NC_IN_PAGE_NAVIGATION kill when going back in subframe |
|
Issue descriptionVersion: 53.0.2761.2 OS: All What steps will reproduce the problem? 0) Start Chrome in --site-per-process or --isolate-extensions. 1) Visit http://csreis.github.io/tests/cross-site-iframe.html. 2) Using DevTools, navigate in-page inside the subframe: "location.href='#foo';" 3) Add #foo to the URL in the omnibox and hit enter. 4) Click "Go cross-site (simple page)" 5) Go back two entries at once (by holding back button and choosing entry). 6) Go back a third time. This causes a renderer kill with NC_IN_PAGE_NAVIGATION. This bug is follow-up from issue 612713, where these steps were fixed in default Chrome. The bug also exists in NavigationControllerImpl::FindFramesToNavigate, which is used in OOPIF modes like --site-per-process and --isolate-extensions.
,
Jun 24 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/128faaf6f959fe4ab60578d3c6db8480fc932d49 commit 128faaf6f959fe4ab60578d3c6db8480fc932d49 Author: creis <creis@chromium.org> Date: Fri Jun 24 20:15:04 2016 Disable test for rare in-page navigation kill in new navigation logic. This case is almost never hit in practice, so it should be safe to switch to the new navigation path before fixing it. BUG=618100 TEST=No product behavior change. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation Review-Url: https://codereview.chromium.org/2095833004 Cr-Commit-Position: refs/heads/master@{#401951} [modify] https://crrev.com/128faaf6f959fe4ab60578d3c6db8480fc932d49/content/browser/frame_host/navigation_controller_impl_browsertest.cc [modify] https://crrev.com/128faaf6f959fe4ab60578d3c6db8480fc932d49/testing/buildbot/filters/isolate-extensions.content_browsertests.filter [modify] https://crrev.com/128faaf6f959fe4ab60578d3c6db8480fc932d49/testing/buildbot/filters/site-per-process.content_browsertests.filter
,
Jan 5 2017
Note: This is not resulting in a NC_IN_PAGE_NAVIGATION renderer kill anymore. However, we do get a renderer crash in NavigationControllerBrowserTest's BackTwiceToIframeWithContent test in debug mode if running in --site-per-process, since we hit the following NOTREACHED in RenderFrameImpl::NavigateInternal:
if (history_load_type == blink::WebHistorySameDocumentLoad) {
// If this is marked as a same document load but we haven't committed
// anything, treat it as a new load. The browser shouldn't let this
// happen.
if (current_history_item_.isNull()) {
history_load_type = blink::WebHistoryDifferentDocumentLoad;
NOTREACHED();
That happens in step 6 of the repro steps. The browser process classifies it as a SameDocument navigation when it should be a DifferentDocument navigation. We're actually going from the cross-site page to the initial data URL in the subframe in step 6, but the last committed NavigationEntry says we're already on the initial data URL in that frame. (We just never told the frame to navigate there in FindFramesToNavigate due to the fix for issue 598043 .)
We should really be comparing against the actual last committed FrameNavigationEntry for the frame (perhaps stored on the RFH?), rather than the FrameNavigationEntry in the last committed NavigationEntry. This will matter in the case of slow back/forward subframe navigations as well, when we're actually headed to the FNE in the NavEntry but haven't gotten there yet.
Fixing this will let us re-enable the BackTwiceToIframeWithContent test.
,
Jan 11
You started fixing this bug over two years ago. Are you still working on it? You can update the status to "archived", "wontfix", or "closed". You can remove yourself as owner and change status to "untriaged", but if this is still a real bug, please do not sit on it. |
|
►
Sign in to add a comment |
|
Comment 1 by creis@chromium.org
, Jun 24 2016Labels: -Proj-IsolateExtensions-BlockingLaunch