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

Issue 236848: Keep track of frame tree in NavigationEntry

Reported by creis@chromium.org, Apr 30 2013 Project Member

Issue description

In order to support cross-process navigations in subframes (for out-of-process iframes in issue 99379), we will need NavigationController to keep track of subframe navigations that may come from multiple processes.

Currently, each NavigationEntry represents a joint session history item and a stop in the back/forward history.  It relies on Blink's HistoryItem class to keep track of each frame's session history item, and we store a serialized HistoryItem in NavigationEntry's content_state property.

Instead, we want to move the representation of the frame tree from HistoryItem (in the renderer process) to NavigationEntry (in the browser process).  We will likely keep track of a list of FrameNavigationEntry objects for each frame, and each NavigationEntry will keep a tree of pointers to its FrameNavigationEntry objects.

This work will rely on the browser process knowing the frame tree for the current page ( issue 235879 ).  For more background, see http://www.chromium.org/developers/design-documents/oop-iframes.
 

Comment 1 by creis@chromium.org, Apr 30 2013

Blocking: chromium:99379

Comment 2 by mpcomplete@chromium.org, May 6 2013

Blocking: chromium:41321

Comment 3 by Deleted ...@, Oct 30 2013

Hi,
I just wanted to know if this issue is going to be fixed, or is abandoned ?
It is sadly blocking issue 41321 since a few months now.
Thanks.

Comment 4 by creis@chromium.org, Oct 30 2013

This is part of a large refactoring effort.  It's going to be fixed, but not in the short term.

Comment 5 by creis@chromium.org, Oct 30 2013

Labels: Cr-Internals-Sandbox-SiteIsolation

Comment 6 by ttr...@googlemail.com, Jun 7 2014

@creis, may I ask for an update on the status of the ticket? Is it possible to make a (rough) estimate at this stage as to when work on it may likely start? As the (non-official) owner of blocked issue 41321, I was wondering what's keeping blockers from getting resolved yet.

Also, if this is "just" a matter of engineering resources availability, and you would be willing to accept help from an external contributor (me), I'd be more than willing to dive into the issue and submit CLs (after clarifying on the necessary details with you/all stakeholders, of course).

Thanks.

Comment 7 by nasko@google.com, Jun 9 2014

Cc: a...@chromium.org
creis@ is out until mid-July and avi@ is driving this now. I'll let him comment on estimates.

Comment 8 by ttr...@googlemail.com, Jul 23 2014

It's mid-July by now, so I suppose creis@ should have returned by now and may be able to provide some details regarding my questions.

Also, my offer to help out still holds. :)

Comment 9 by creis@chromium.org, Jul 23 2014

Status: Started
I've just returned from leave and I'm ramping back up on things.  There's some draft work for FrameNavigationEntry in https://codereview.chromium.org/281653003, and a design doc here:
https://docs.google.com/a/chromium.org/document/d/1Z-24Xmb5A00eMSfaBB5MQLTrp9LQ5hm3GKMfpFi44fQ/edit?usp=sharing

@avi has been clearing the way on some of the tasks mentioned in the doc, like removing uses of page ID in the renderer process.

Thanks for your offer to help.  We're still working out some tough design issues, but if we get to more easily parallelizable changes it would be great to have the help.  We can probably file smaller bugs blocking this one when we get to that point, making it easy for people to pick up parts of it.

Comment 10 by creis@chromium.org, Jul 23 2014

Cc: japhet@chromium.org
 Issue 369654  has been merged into this issue.

Comment 11 by ttr...@googlemail.com, Jul 23 2014

@creis, thanks for the update. Will continue to watch this issue for new blockers to pop up so that I can take over parts of the work that needs to be done.

Comment 12 by creis@chromium.org, Nov 6 2014

Blocking: chromium:426953

Comment 13 by creis@chromium.org, Nov 17 2014

Blocking: chromium:433014

Comment 14 by creis@chromium.org, Nov 18 2014

Blocking: -chromium:433014

Comment 17 by bugdroid1@chromium.org, Feb 20 2015

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3da0387c8a32f82e18a289be66c4f8b46abd90bc

commit 3da0387c8a32f82e18a289be66c4f8b46abd90bc
Author: creis <creis@chromium.org>
Date: Fri Feb 20 21:12:32 2015

Avoid unnecessary casts in NavigationControllerImpl.

This will avoid further casts as we refactor session history for OOPIFs.

BUG= 236848 
TEST=No behavior change.

Review URL: https://codereview.chromium.org/949473002

Cr-Commit-Position: refs/heads/master@{#317402}

[modify] http://crrev.com/3da0387c8a32f82e18a289be66c4f8b46abd90bc/content/browser/frame_host/navigation_controller_impl.cc
[modify] http://crrev.com/3da0387c8a32f82e18a289be66c4f8b46abd90bc/content/browser/frame_host/navigation_controller_impl.h
[modify] http://crrev.com/3da0387c8a32f82e18a289be66c4f8b46abd90bc/content/browser/frame_host/navigation_controller_impl_unittest.cc
[modify] http://crrev.com/3da0387c8a32f82e18a289be66c4f8b46abd90bc/content/browser/frame_host/navigation_entry_screenshot_manager.cc
[modify] http://crrev.com/3da0387c8a32f82e18a289be66c4f8b46abd90bc/content/browser/frame_host/navigator_impl.cc
[modify] http://crrev.com/3da0387c8a32f82e18a289be66c4f8b46abd90bc/content/browser/ssl/ssl_manager.cc
[modify] http://crrev.com/3da0387c8a32f82e18a289be66c4f8b46abd90bc/content/browser/web_contents/aura/overscroll_navigation_overlay.cc
[modify] http://crrev.com/3da0387c8a32f82e18a289be66c4f8b46abd90bc/content/browser/web_contents/web_contents_impl.cc
[modify] http://crrev.com/3da0387c8a32f82e18a289be66c4f8b46abd90bc/content/browser/web_contents/web_contents_view_aura.cc
[modify] http://crrev.com/3da0387c8a32f82e18a289be66c4f8b46abd90bc/content/browser/web_contents/web_contents_view_aura_browsertest.cc

Comment 18 by bugdroid1@chromium.org, Mar 12 2015

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

commit ef4a0cb79857ed187311cd72ef475899c72e9f15
Author: creis <creis@chromium.org>
Date: Thu Mar 12 19:14:35 2015

Add Clone and disallow copy construction for NavigationEntryImpl.

This will matter as NavigationEntries start to share FrameNavigationEntries
for --site-per-process.  At that point, cloning a NavigationEntry will need
to take into account whether the copy will live in the same tab or not, as
well as making a deep copy of the FrameNavigationEntry tree.

BUG= 236848 
TEST=No behavior change yet.

Review URL: https://codereview.chromium.org/994803004

Cr-Commit-Position: refs/heads/master@{#320338}

[modify] http://crrev.com/ef4a0cb79857ed187311cd72ef475899c72e9f15/content/browser/frame_host/navigation_controller_impl.cc
[modify] http://crrev.com/ef4a0cb79857ed187311cd72ef475899c72e9f15/content/browser/frame_host/navigation_entry_impl.cc
[modify] http://crrev.com/ef4a0cb79857ed187311cd72ef475899c72e9f15/content/browser/frame_host/navigation_entry_impl.h
[modify] http://crrev.com/ef4a0cb79857ed187311cd72ef475899c72e9f15/content/browser/frame_host/navigation_entry_impl_unittest.cc
[modify] http://crrev.com/ef4a0cb79857ed187311cd72ef475899c72e9f15/content/browser/site_instance_impl_unittest.cc
[modify] http://crrev.com/ef4a0cb79857ed187311cd72ef475899c72e9f15/content/public/browser/navigation_entry.h

Comment 19 by bugdroid1@chromium.org, Mar 17 2015

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5005433dbcebaa2c649f60dea92f05f2ebabf1d0

commit 5005433dbcebaa2c649f60dea92f05f2ebabf1d0
Author: creis <creis@chromium.org>
Date: Mon Mar 16 15:52:33 2015

Add NavigationEntryImpl::TreeNode for tracking FrameNavigationEntries.

We still only track the main frame and do not share FNEs across
NavigationEntries, but this new TreeNode class will make it possible
to track them for subtrees and share them across entries of a tab.

BUG= 236848 
TEST=Existing Navigation{Controller,Entry} tests pass.

Review URL: https://codereview.chromium.org/1006693002

Cr-Commit-Position: refs/heads/master@{#320730}

[modify] http://crrev.com/5005433dbcebaa2c649f60dea92f05f2ebabf1d0/content/browser/frame_host/frame_navigation_entry.cc
[modify] http://crrev.com/5005433dbcebaa2c649f60dea92f05f2ebabf1d0/content/browser/frame_host/frame_navigation_entry.h
[modify] http://crrev.com/5005433dbcebaa2c649f60dea92f05f2ebabf1d0/content/browser/frame_host/navigation_entry_impl.cc
[modify] http://crrev.com/5005433dbcebaa2c649f60dea92f05f2ebabf1d0/content/browser/frame_host/navigation_entry_impl.h

Comment 20 by bugdroid1@chromium.org, Mar 24 2015

Project Member

Comment 21 Deleted

Comment 23 by nasko@chromium.org, Jun 5 2015

Once swapped-out RenderFrameHost is no longer used, there will be no valid top-level frame in the renderer process. HistoryController::GoToEntry relies on non-null main frame, which is not the case. This causes the RenderFrameHostManagerTest.DisownOpener test to fail, as it preforms a back navigation in a process without local main frame.

Comment 26 by bugdroid1@chromium.org, Jun 15 2015

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e31fea854fbb0e026a54fc528c8a5fa96e71060

commit 2e31fea854fbb0e026a54fc528c8a5fa96e71060
Author: creis <creis@chromium.org>
Date: Mon Jun 15 16:05:02 2015

Fix nested about:blank iframes in --site-per-process.

Ignore commits if an ancestor has no last committed frame entry.

BUG= 236848 
TEST=Nested about:blank iframes don't crash in --site-per-process.

Review URL: https://codereview.chromium.org/1182413002

Cr-Commit-Position: refs/heads/master@{#334385}

[modify] http://crrev.com/2e31fea854fbb0e026a54fc528c8a5fa96e71060/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] http://crrev.com/2e31fea854fbb0e026a54fc528c8a5fa96e71060/content/browser/frame_host/navigation_entry_impl.cc

Comment 27 by bugdroid1@chromium.org, Jun 19 2015

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b5cd4c7d51dec913908d91dbc19bedda293e708

commit 8b5cd4c7d51dec913908d91dbc19bedda293e708
Author: creis <creis@chromium.org>
Date: Fri Jun 19 00:11:08 2015

Add item and document sequence numbers to FrameNavigationEntry.

This will be used for identifying which frames need to navigate
on back/forward navigations in --site-per-process.

BUG= 236848 
TEST=No behavior change yet.

Review URL: https://codereview.chromium.org/1184423005

Cr-Commit-Position: refs/heads/master@{#335173}

[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/browser/frame_host/frame_navigation_entry.cc
[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/browser/frame_host/frame_navigation_entry.h
[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/browser/frame_host/navigation_controller_impl.cc
[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/browser/frame_host/navigation_entry_impl.cc
[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/browser/frame_host/navigation_entry_impl.h
[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/common/frame_messages.h
[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/public/common/frame_navigate_params.cc
[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/public/common/frame_navigate_params.h
[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/renderer/render_frame_impl.cc
[modify] http://crrev.com/8b5cd4c7d51dec913908d91dbc19bedda293e708/content/renderer/render_frame_impl.h

Comment 28 by bugdroid1@chromium.org, Jun 20 2015

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4e2ecb71332584b846862653ac1b8ea2490b29b7

commit 4e2ecb71332584b846862653ac1b8ea2490b29b7
Author: creis <creis@chromium.org>
Date: Sat Jun 20 00:46:30 2015

Support simple back/forward in out-of-process iframes.

This moves HistoryController::GoToEntry to the browser process for
--site-per-process mode, allowing NavigationController to identify
all the frames that need to be navigated directly.

So far, this only supports navigating a leaf node and not subframes
with subtrees of their own.

TBR=jam@chromium.org
BUG= 236848 
TEST=In --site-per-process, go back cross-site in a subframe.

Review URL: https://codereview.chromium.org/1181983009

Cr-Commit-Position: refs/heads/master@{#335404}

[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigation_controller_delegate.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigation_controller_impl.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigation_controller_impl.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigation_entry_impl.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigation_entry_impl.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigation_request.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigation_request.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigator.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigator.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigator_impl.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/navigator_impl.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/render_frame_host_manager.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/render_frame_host_manager.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/frame_host/render_frame_host_manager_unittest.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/web_contents/web_contents_impl.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/browser/web_contents/web_contents_impl.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/common/frame_messages.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/common/navigation_params.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/common/navigation_params.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/renderer/history_controller.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/renderer/history_controller.h
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/content/renderer/render_frame_impl.cc
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/testing/buildbot/chromium.fyi.json
[modify] http://crrev.com/4e2ecb71332584b846862653ac1b8ea2490b29b7/tools/copyright_scanner/third_party_files_whitelist.txt

Comment 29 by bugdroid1@chromium.org, Jul 23 2015

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d58b4f33a0bd7d92b044ab16784aae69d517594

commit 6d58b4f33a0bd7d92b044ab16784aae69d517594
Author: creis <creis@chromium.org>
Date: Thu Jul 23 00:22:43 2015

OOPIF: willSendRequest in A-B-A nested case.

Before, we weren't using the transferred request IDs from the correct
frame, so the transfer failed and we were waiting for the network
stack to time out and issue the request again.  As a result, the inner
A request was very slow.

This CL also expands test coverage for auto subframe navigations.

BUG= 236848 
TEST=A-B-A nested OOPIFs are no longer slow.

Review URL: https://codereview.chromium.org/1225593003

Cr-Commit-Position: refs/heads/master@{#340003}

[modify] http://crrev.com/6d58b4f33a0bd7d92b044ab16784aae69d517594/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] http://crrev.com/6d58b4f33a0bd7d92b044ab16784aae69d517594/content/renderer/render_frame_impl.cc

Comment 30 by carlosk@chromium.org, Jul 30 2015

Cc: carlosk@chromium.org

Comment 31 by bugdroid1@chromium.org, Nov 5 2015

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e

commit 8eb8ef2a49fe5faae46eb229ff8de313e4c4694e
Author: creis <creis@chromium.org>
Date: Wed Nov 04 22:51:38 2015

OOPIF: Stop using HistoryController and refactor UpdateState.

In OOPIF-enabled builds, we no longer need to track the current
HistoryEntry or use HistoryController.  Instead, the current
WebHistoryItem is stored on each RenderFrame.

This also moves UpdateState to RenderFrame{Host}, ensuring that
PageState objects can be stored on each frame's FrameNavigationEntry.

These changes only affect Chrome with --site-per-process or
--isolate-extensions.

BUG= 545219 ,  236848 

Review URL: https://codereview.chromium.org/1425303002

Cr-Commit-Position: refs/heads/master@{#357921}

[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/chrome/browser/chrome_content_browser_client_browsertest.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/browser/frame_host/render_frame_host_delegate.h
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/browser/frame_host/render_frame_host_impl.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/browser/frame_host/render_frame_host_impl.h
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/browser/web_contents/web_contents_impl.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/browser/web_contents/web_contents_impl.h
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/common/frame_messages.h
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/public/test/render_view_test.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/public/test/render_view_test.h
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/renderer/history_controller.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/renderer/history_controller_browsertest.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/renderer/render_frame_impl.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/renderer/render_frame_impl.h
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/renderer/render_view_browsertest.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/renderer/render_view_impl.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/test/layouttest_support.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/test/test_render_frame.h
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/content/test/test_render_view_host.cc
[modify] http://crrev.com/8eb8ef2a49fe5faae46eb229ff8de313e4c4694e/testing/buildbot/chromium.fyi.json

Comment 32 by creis@chromium.org, Nov 6 2015

Keeping track of blocking bugs.

Comment 33 by bugdroid1@chromium.org, Nov 10 2015

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d752c35ee308bc817d80a7de94a77e6cdefaa48

commit 6d752c35ee308bc817d80a7de94a77e6cdefaa48
Author: creis <creis@chromium.org>
Date: Tue Nov 10 01:59:43 2015

OOPIF: Add frame_unique_name to FrameNavigationEntry.

This holds the unique name of the frame in which the navigation took
place.  This is stable after back/forward and restore, whereas the
FrameTreeNode ID will change over time.

BUG= 236848 ,  502317 
TEST=No behavior change yet.

Review URL: https://codereview.chromium.org/1407853005

Cr-Commit-Position: refs/heads/master@{#358746}

[modify] http://crrev.com/6d752c35ee308bc817d80a7de94a77e6cdefaa48/content/browser/frame_host/frame_navigation_entry.cc
[modify] http://crrev.com/6d752c35ee308bc817d80a7de94a77e6cdefaa48/content/browser/frame_host/frame_navigation_entry.h
[modify] http://crrev.com/6d752c35ee308bc817d80a7de94a77e6cdefaa48/content/browser/frame_host/navigation_controller_impl.cc
[modify] http://crrev.com/6d752c35ee308bc817d80a7de94a77e6cdefaa48/content/browser/frame_host/navigation_controller_impl_browsertest.cc
[modify] http://crrev.com/6d752c35ee308bc817d80a7de94a77e6cdefaa48/content/browser/frame_host/navigation_entry_impl.cc
[modify] http://crrev.com/6d752c35ee308bc817d80a7de94a77e6cdefaa48/content/browser/frame_host/navigation_entry_impl.h
[modify] http://crrev.com/6d752c35ee308bc817d80a7de94a77e6cdefaa48/content/common/frame_messages.h
[modify] http://crrev.com/6d752c35ee308bc817d80a7de94a77e6cdefaa48/content/public/common/frame_navigate_params.h
[modify] http://crrev.com/6d752c35ee308bc817d80a7de94a77e6cdefaa48/content/renderer/render_frame_impl.cc

Comment 34 by creis@chromium.org, Dec 16 2015

This is working well in general now, but there are several corner cases to resolve.  I'm updating the list of issues that must be resolved before we can turn on this path by default.

Comment 35 by creis@chromium.org, Mar 30 2016

Blocking: 373041

Comment 36 by creis@chromium.org, Mar 30 2016

Blockedon: -373041

Comment 37 by creis@chromium.org, Mar 30 2016

Blockedon: 586324

Comment 38 by creis@chromium.org, Apr 13 2016

Labels: Proj-IsolateExtensions-BlockingLaunch
We're getting close to enabling this by default, as we wrap up work on the blocking bugs.  That's a prerequisite for launching OOPIFs in --isolate-extensions mode.

Comment 39 by creis@chromium.org, May 4 2016

Blockedon: 590782

Comment 40 by creis@chromium.org, May 6 2016

Blockedon: 609963

Comment 41 by creis@chromium.org, May 16 2016

Blocking: 575210

Comment 42 by creis@chromium.org, May 16 2016

Blockedon: 612196

Comment 43 by bugdroid1@chromium.org, Jun 24 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/810a396cc50315037a51e55342da6c04d1c9b260

commit 810a396cc50315037a51e55342da6c04d1c9b260
Author: creis <creis@chromium.org>
Date: Fri Jun 24 21:07:43 2016

Enable subframe FrameNavigationEntries by default.

This is a major change to the navigation logic in Chrome, making
the browser process responsible for selecting subframes to
navigate.  Each NavigationEntry now has a tree of
FrameNavigationEntries representing each frame in the page, and
these frame entries track per-frame PageState.

HistoryController in content/renderer is no longer used, since
equivalent code in NavigationController in content/browser now
determines which frames to navigate.

This CL is designed to be easy to revert if regressions are
found, though the new path has been in use on 50% of Canary and
Dev channels for a while.

BUG= 236848 
TEST=Existing tests pass.

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

[modify] https://crrev.com/810a396cc50315037a51e55342da6c04d1c9b260/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java
[modify] https://crrev.com/810a396cc50315037a51e55342da6c04d1c9b260/content/common/site_isolation_policy.cc

Comment 44 by bugdroid1@chromium.org, Jun 24 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5e66abf8057e5e904c9539ee8aa2fe92161d208f

commit 5e66abf8057e5e904c9539ee8aa2fe92161d208f
Author: creis <creis@chromium.org>
Date: Fri Jun 24 21:51:14 2016

Revert of Enable subframe FrameNavigationEntries by default. (patchset #4 id:60001 of https://codereview.chromium.org/1952533003/ )

Reason for revert:
Caused several layout tests to fail:
https://build.chromium.org/p/chromium.webkit/buildstatus?builder=WebKit%20Mac10.11&number=6083

  fast/history/same-document-iframes-changing-fragment.html [ Failure ]
  fast/history/same-document-iframes-changing-pushstate.html [ Failure ]
  fast/loader/form-state-restore-with-frames.html [ Failure ]
  http/tests/misc/resource-timing-iframe-restored-from-history.html [ Failure ]
  http/tests/navigation/back-to-dynamic-iframe.html [ Failure ]
  http/tests/navigation/back-to-redirect-with-frame.php [ Failure ]
  http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]

Original issue's description:
> Enable subframe FrameNavigationEntries by default.
>
> This is a major change to the navigation logic in Chrome, making
> the browser process responsible for selecting subframes to
> navigate.  Each NavigationEntry now has a tree of
> FrameNavigationEntries representing each frame in the page, and
> these frame entries track per-frame PageState.
>
> HistoryController in content/renderer is no longer used, since
> equivalent code in NavigationController in content/browser now
> determines which frames to navigate.
>
> This CL is designed to be easy to revert if regressions are
> found, though the new path has been in use on 50% of Canary and
> Dev channels for a while.
>
> BUG= 236848 
> TEST=Existing tests pass.
>
> Committed: https://crrev.com/810a396cc50315037a51e55342da6c04d1c9b260
> Cr-Commit-Position: refs/heads/master@{#401969}

TBR=boliu@chromium.org,nick@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 236848 

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

[modify] https://crrev.com/5e66abf8057e5e904c9539ee8aa2fe92161d208f/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java
[modify] https://crrev.com/5e66abf8057e5e904c9539ee8aa2fe92161d208f/content/common/site_isolation_policy.cc

Comment 45 by creis@chromium.org, Jun 27 2016

Blockedon: 623681

Comment 46 by creis@chromium.org, Jun 27 2016

Blockedon: 585171

Comment 47 by creis@chromium.org, Jun 27 2016

Blockedon: 585194

Comment 48 by bugdroid1@chromium.org, Aug 5 2016

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/111baab648276f64b58d7af5b3f47fd3823dc42e

commit 111baab648276f64b58d7af5b3f47fd3823dc42e
Author: creis <creis@chromium.org>
Date: Fri Aug 05 19:56:26 2016

Enable subframe FrameNavigationEntries by default.

This is a major change to the navigation logic in Chrome, making
the browser process responsible for selecting subframes to
navigate.  Each NavigationEntry now has a tree of
FrameNavigationEntries representing each frame in the page, and
these frame entries track per-frame PageState.

HistoryController in content/renderer is no longer used, since
equivalent code in NavigationController in content/browser now
determines which frames to navigate.

This CL is designed to be easy to revert if regressions are
found, though the new path has been in use on 50% of Canary and
Dev channels for a while.

BUG= 236848 
TEST=Existing tests pass.

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

[modify] https://crrev.com/111baab648276f64b58d7af5b3f47fd3823dc42e/android_webview/javatests/src/org/chromium/android_webview/test/LoadDataWithBaseUrlTest.java
[modify] https://crrev.com/111baab648276f64b58d7af5b3f47fd3823dc42e/content/common/site_isolation_policy.cc

Comment 49 by creis@chromium.org, Aug 9 2016

Status: Fixed (was: Started)
r410150 seems to be sticking, so I'm going to mark this fixed!

Comment 50 by bugdroid1@chromium.org, Jan 4 2017

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

commit c1ff477d8444d341469e1f11a2606efff71b9588
Author: creis <creis@chromium.org>
Date: Wed Jan 04 20:10:27 2017

Start removing UseSubframeNavigationEntries from tests.

This mode is always enabled now, so we can remove the code for handling
when it is disabled.  This CL starts with the easy cases in tests.

BUG= 236848 
TEST=Tests still pass.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/c1ff477d8444d341469e1f11a2606efff71b9588/content/browser/frame_host/navigation_controller_impl_browsertest.cc

Comment 51 by bugdroid1@chromium.org, Jan 6 2017

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

commit ebfd33fdbbe2b78234fd30c6fdbddfc3d162e06d
Author: creis <creis@chromium.org>
Date: Fri Jan 06 02:53:59 2017

Remove additional uses of UseSubframeNavigationEntries in tests.

There's no longer a PageState mismatch from  bug 617239 , so we can
re-enable the test expectations for these tests.

BUG= 236848 ,  617239 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/ebfd33fdbbe2b78234fd30c6fdbddfc3d162e06d/content/browser/frame_host/navigation_controller_impl_browsertest.cc

Comment 52 by bugdroid1@chromium.org, Jan 6 2017

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

commit 1c3ab7394d18ee73b78e7f5458262043ea271076
Author: creis <creis@chromium.org>
Date: Fri Jan 06 19:44:34 2017

Remove uses of UseSubframeNavigationEntries in unit tests.

This mode is always enabled now, so we can remove the code for handling
when it is disabled.

BUG= 236848 
TEST=Tests still pass
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/1c3ab7394d18ee73b78e7f5458262043ea271076/content/browser/frame_host/navigation_controller_impl_unittest.cc
[modify] https://crrev.com/1c3ab7394d18ee73b78e7f5458262043ea271076/content/renderer/render_view_browsertest.cc

Comment 53 by bugdroid1@chromium.org, Jan 26 2017

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

commit ce0ef3575be4a50acfc2f2682878a69f8ce93bf0
Author: creis <creis@chromium.org>
Date: Thu Jan 26 17:53:08 2017

Remove old session history logic.

Now that UseSubframeNavigationEntries is on by default, we don't need
the old session history logic anymore, including HistoryController.

BUG= 236848 ,  472717 
TEST=No behavior change.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

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

[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/browser/frame_host/frame_navigation_entry.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/browser/frame_host/navigation_controller_impl.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/browser/frame_host/navigation_entry_impl.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/browser/frame_host/navigator_impl.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/browser/renderer_host/render_view_host_delegate.h
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/browser/renderer_host/render_view_host_impl.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/browser/renderer_host/render_view_host_impl.h
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/browser/web_contents/web_contents_impl.h
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/common/site_isolation_policy.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/common/site_isolation_policy.h
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/common/swapped_out_messages.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/common/view_messages.h
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/public/test/render_view_test.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/renderer/BUILD.gn
[delete] https://crrev.com/7ecd005e3a871cc9a4979c0a3ef822d9e7c0a787/content/renderer/history_controller.cc
[delete] https://crrev.com/7ecd005e3a871cc9a4979c0a3ef822d9e7c0a787/content/renderer/history_controller.h
[delete] https://crrev.com/7ecd005e3a871cc9a4979c0a3ef822d9e7c0a787/content/renderer/history_controller_browsertest.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/renderer/render_view_browsertest.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/renderer/render_view_impl.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/renderer/render_view_impl.h
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/test/BUILD.gn
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/test/layouttest_support.cc
[modify] https://crrev.com/ce0ef3575be4a50acfc2f2682878a69f8ce93bf0/content/test/test_render_view_host.cc

Comment 54 by laforge@google.com, Nov 7 2017

Components: Internals>Network>Service

Comment 55 by laforge@google.com, Nov 7 2017

Components: -Internals>Network>Service Internals>Services>Network
Apologies, applied the wrong component in bulk.

Sign in to add a comment