Several Site Details / Memory metrics fixes
- Fix possible O(n^4) worst case behavior (processes x widgets x
frames x siteinstances) for stats gathering.
- Show subframe-only processes in about:memory, which also causes them to
be reported in SiteIsolation.CurrentRendererProcessCount.
- Because SiteIsolation.CurrentRendererProcessCount is fixed, we need
a new family of metrics, SiteIsolation.IsolateNothing*, which simulates
the process-per-siteinstance process model. In tests, IsolateNothing
is expected to have the value that CurrentRenderProcessCount used to.
- Implement a more correct treatment of site isolation stats, which looks at
parent/child transitions and handles ProcessPerSite properly. This is
required for IsolateNothing to work correctly. Since options for
walking the frame tree outside of content are pretty limited, this uses
WebContents::ForEachFrame and (!) memoization.
- Eliminate WebContents::GetSitesInTab; move its about:blank logic into
the new frametree walking code in SiteDetails, which was the only caller.
BUG=454526,542909
TEST=browser_tests
Review URL: https://codereview.chromium.org/1406133002
Cr-Commit-Position: refs/heads/master@{#357178}
8 files changed