Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(414)

Issue 1055203002: Fix the RenderFrameProxyHost mop-up logic in RenderFrameHostManager (Closed)

Created:
5 years, 8 months ago by ncarter (slow)
Modified:
5 years, 8 months ago
Reviewers:
Charlie Reis, alexmos
CC:
chromium-reviews, jam, nasko+codewatch_chromium.org, creis+watch_chromium.org, darin-cc_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix the RenderFrameProxyHost mop-up logic in RenderFrameHostManager. RenderFrameProxyHosts need to exist in a SiteInstance so long as at least one active frame exists: when we're about to trigger the (1 -> 0) transition in |active_frame_count|, we need to destroy any lingering proxies. Bug 444955 occurs because we don't check for the (1 -> 0) transition when the last active frame happens to be a pending frame when it's deleted. Also fixed here is bug 473714, found by inspection, where deletion of a not-live frame would incorrectly rambo the RenderFrameProxyHosts that could potentially be needed by another live RenderFrameHost. A new test demonstrates this and verifies the fix. TEST=content_unittests BUG=444955, 473714 Committed: https://crrev.com/dfb21875dd6279d0a973eb24028205620d160cfe Cr-Commit-Position: refs/heads/master@{#323921}

Patch Set 1 #

Patch Set 2 : Fix second bug, clean up tests, everything passes locally #

Patch Set 3 : Fix up crash logic, don't use forbidden C++11 features, add comments. #

Patch Set 4 : Self-review cleanup. #

Total comments: 15

Patch Set 5 : Test rework, charlie's fixes #

Total comments: 1

Patch Set 6 : Charlie fixes. #

Total comments: 2

Patch Set 7 : EXPECT_ instead of ASSERT_ #

Unified diffs Side-by-side diffs Delta from patch set Stats (+211 lines, -87 lines) Patch
M content/browser/frame_host/render_frame_host_manager.h View 1 2 3 4 5 1 chunk +6 lines, -4 lines 0 comments Download
M content/browser/frame_host/render_frame_host_manager.cc View 1 2 3 4 5 5 chunks +27 lines, -15 lines 0 comments Download
M content/browser/frame_host/render_frame_host_manager_unittest.cc View 1 2 3 4 5 6 5 chunks +178 lines, -68 lines 0 comments Download

Messages

Total messages: 16 (6 generated)
ncarter (slow)
Charlie, Alex: Please have a look
5 years, 8 months ago (2015-04-03 18:20:43 UTC) #2
Charlie Reis
LGTM with nits. My one question is whether it would make more sense to do ...
5 years, 8 months ago (2015-04-03 19:55:09 UTC) #3
alexmos
LGTM. Thanks for cleaning this up! https://codereview.chromium.org/1055203002/diff/60001/content/browser/frame_host/render_frame_host_manager.cc File content/browser/frame_host/render_frame_host_manager.cc (right): https://codereview.chromium.org/1055203002/diff/60001/content/browser/frame_host/render_frame_host_manager.cc#newcode1771 content/browser/frame_host/render_frame_host_manager.cc:1771: // First remove ...
5 years, 8 months ago (2015-04-03 20:55:55 UTC) #4
ncarter (slow)
https://codereview.chromium.org/1055203002/diff/60001/content/browser/frame_host/render_frame_host_manager.cc File content/browser/frame_host/render_frame_host_manager.cc (right): https://codereview.chromium.org/1055203002/diff/60001/content/browser/frame_host/render_frame_host_manager.cc#newcode1768 content/browser/frame_host/render_frame_host_manager.cc:1768: // on behalf of frames anywhere in the browsing ...
5 years, 8 months ago (2015-04-03 22:03:34 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1055203002/100001
5 years, 8 months ago (2015-04-06 16:35:08 UTC) #8
Charlie Reis
Still LGTM with some thoughts below. https://codereview.chromium.org/1055203002/diff/60001/content/browser/frame_host/render_frame_host_manager.cc File content/browser/frame_host/render_frame_host_manager.cc (right): https://codereview.chromium.org/1055203002/diff/60001/content/browser/frame_host/render_frame_host_manager.cc#newcode1771 content/browser/frame_host/render_frame_host_manager.cc:1771: // First remove ...
5 years, 8 months ago (2015-04-06 16:35:34 UTC) #9
ncarter (slow)
https://codereview.chromium.org/1055203002/diff/100001/content/browser/frame_host/render_frame_host_manager_unittest.cc File content/browser/frame_host/render_frame_host_manager_unittest.cc (right): https://codereview.chromium.org/1055203002/diff/100001/content/browser/frame_host/render_frame_host_manager_unittest.cc#newcode1898 content/browser/frame_host/render_frame_host_manager_unittest.cc:1898: ASSERT_EQ(host1, GetPendingFrameHost(iframe1)); On 2015/04/06 16:35:34, Charlie Reis wrote: > ...
5 years, 8 months ago (2015-04-06 16:48:55 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1055203002/120001
5 years, 8 months ago (2015-04-06 16:49:18 UTC) #14
commit-bot: I haz the power
Committed patchset #7 (id:120001)
5 years, 8 months ago (2015-04-06 18:36:04 UTC) #15
commit-bot: I haz the power
5 years, 8 months ago (2015-04-06 18:38:14 UTC) #16
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/dfb21875dd6279d0a973eb24028205620d160cfe
Cr-Commit-Position: refs/heads/master@{#323921}

Powered by Google App Engine
This is Rietveld 408576698