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

Issue 594217 link

Starred by 6 users

Issue metadata

Status: Assigned
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocked on:
issue 621835
issue 674215

Blocking:
issue 595987



Sign in to add a comment

Add a 'top document isolation' mode that coalesces subframes into a singleton process, using oopifs

Project Member Reported by nick@chromium.org, Mar 11 2016

Issue description

CL https://codereview.chromium.org/1777233002/ and its predecessors have provided a prototype for a so-called 'doghouse' mode, wherein we set aside one renderer process, and place subframes in that process whenever possible.

We ought to clean this prototype up and make it landable, so that we can continue experimentation with this mode to a broader audience.
 

Comment 1 by nick@chromium.org, Mar 11 2016

Labels: -Type-Bug Type-Feature

Comment 2 by nick@chromium.org, Mar 15 2016

Summary: Add a 'top document isolation' mode that coalesces subframes into a singleton process, using oopifs (was: Add a 'doghouse mode' that coalesces subframes into a singleton process, using oopifs)

Comment 3 by nick@chromium.org, Mar 15 2016

My version of this is starting to come together here: https://codereview.chromium.org/1797363002/
Project Member

Comment 4 by bugdroid1@chromium.org, Mar 31 2016

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

commit d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f
Author: nick <nick@chromium.org>
Date: Thu Mar 31 19:52:44 2016

Introduce --top-document-isolation mode, a new process model wherein the top
document is process separated from its subframes when possible, but the subframes
are all housed in a single renderer process.

Currently this mode only shares the subframe process within a browsing instance:
usually, that will mean sharing the subframe process within a tab. In follow up patches
we can extend the sharing so that we might share subframe RenderProcessHosts
among unrelated BrowsingInstances, when legal.

BUG=594217
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation

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

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

[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/chrome/app/generated_resources.grd
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/chrome/browser/about_flags.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/browsing_instance.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/browsing_instance.h
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/frame_host/navigator_impl_unittest.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/frame_host/render_frame_host_manager.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/frame_host/render_frame_host_manager.h
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/site_instance_impl.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/site_instance_impl.h
[add] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/browser/top_document_isolation_browsertest.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/common/site_isolation_policy.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/common/site_isolation_policy.h
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/content_tests.gypi
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/public/common/content_switches.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/public/common/content_switches.h
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/content/test/content_browser_test_utils_internal.cc
[modify] https://crrev.com/d5bbd0b067cf0c1c8e40c7b5c2d1a1a39c0db10f/tools/metrics/histograms/histograms.xml

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 7 2016

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

commit a9f3ad7a01940804a4741f02721b459add84a9e8
Author: nick <nick@chromium.org>
Date: Thu Apr 07 03:07:49 2016

SiteInstance unittest improvements
 - Add a new unittest for GetDefaultSubframeSiteInstance.
 - Rewrite tests to not depend on inheritance; BrowsingInstance calls
   the ctor of SiteInstanceImpl directly, and this made it hard to
   do deletion counters for the defaul subframe siteinstance using
   the inheritance tricks.
 - Rework delete counters, using existing mechanisms in the API.
 - mark SiteInstanceImpl/BrowsingInstance final, since we can.

BUG=594217

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

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

[modify] https://crrev.com/a9f3ad7a01940804a4741f02721b459add84a9e8/content/browser/browsing_instance.h
[modify] https://crrev.com/a9f3ad7a01940804a4741f02721b459add84a9e8/content/browser/site_instance_impl.h
[modify] https://crrev.com/a9f3ad7a01940804a4741f02721b459add84a9e8/content/browser/site_instance_impl_unittest.cc

Blockedon: 621835

Comment 7 by a...@chromium.org, Dec 14 2016

Blockedon: 674215

Comment 8 by ojan@chromium.org, May 8 2018

Cc: -ojan@chromium.org
Owner: ----

Sign in to add a comment