New issue
Advanced search Search tips

Issue 616609 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

UpdateTitle DCHECK fires for title changes after OOPIF navigation

Project Member Reported by creis@chromium.org, Jun 1 2016

Issue description

Version: 53.0.2754.0
OS: All

What steps will reproduce the problem?
1) Start a debug build of Chrome in --site-per-process.
2) Visit http://csreis.github.io/tests/
3) Visit http://csreis.github.io/tests/cross-site-iframe.html
4) Click "Go cross-site (simple)"
5) Update the title of the main frame: javascript:document.title='foo'

We fail the following UpdateTitle DCHECK because the page ID (from the main frame's RVH) says to update the previous NavEntry (since the main frame's RVH doesn't change its page ID in step 4).  Using nav_entry_id is correct here.

  // Try to find the navigation entry, which might not be the current one.
  // For example, it might be from a recently swapped out RFH.
  NavigationEntryImpl* entry = controller_.GetEntryWithPageID(
      render_frame_host->GetSiteInstance(), page_id);

  // TODO(creis): Switch to use this as the default.
  NavigationEntryImpl* new_entry = controller_.GetEntryWithUniqueID(
      static_cast<RenderFrameHostImpl*>(render_frame_host)->nav_entry_id());
  DCHECK_EQ(entry, new_entry);

This accounts for about half of the the crashes in issue 614310, since it explains the reason that nav_entry_id and page_id don't agree in OOPIF-enabled modes like --isolate-extensions and --site-per-process.  (We can't rely on page ID in those modes, since it can't keep track of commits in other processes.  That's the reason we're removing it in  issue 369661 .)

Strangely, there was another set of crashes in issue 614310 in default mode when OOPIFs aren't possible, so we'll need to track down that difference as well.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 2 2016

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

commit 0bfe528899739beaab8587e7c6ee9277209e0c63
Author: creis <creis@chromium.org>
Date: Thu Jun 02 06:46:20 2016

Use nav_entry_id in UpdateTitle for OOPIF-enabled modes.

Keep the DCHECK in default mode for now, until we discover why page_id
and nav_entry_id don't agree when there are no OOPIFs.

BUG= 616609 ,  577449 ,  369661 
TEST=See  bug 616609  for repro steps.

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

[modify] https://crrev.com/0bfe528899739beaab8587e7c6ee9277209e0c63/content/browser/site_per_process_browsertest.cc
[modify] https://crrev.com/0bfe528899739beaab8587e7c6ee9277209e0c63/content/browser/web_contents/web_contents_impl.cc

Comment 2 by creis@chromium.org, Jun 2 2016

Status: Fixed (was: Started)

Sign in to add a comment