summaryrefslogtreecommitdiffstats
path: root/content/common
diff options
context:
space:
mode:
authorajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-14 00:56:43 +0000
committerajwong@chromium.org <ajwong@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-14 00:56:43 +0000
commitcbf8849f3e446c86e29cc176d3214529d12a7a61 (patch)
treeae73e00eecde58c6ed6e368a711adc23e5703001 /content/common
parentfae383c03632a1aabe7cac60b0fd6ec1b14d521a (diff)
downloadchromium_src-cbf8849f3e446c86e29cc176d3214529d12a7a61.zip
chromium_src-cbf8849f3e446c86e29cc176d3214529d12a7a61.tar.gz
chromium_src-cbf8849f3e446c86e29cc176d3214529d12a7a61.tar.bz2
Fix frame detach message and lifetime issues for the mainframe RenderFrameImpl.
Previously, when RenderFrameImpl::frameDetach() was called on the mainframe, it would delete the RenderFrameImpl. The mainframe RFI is stored by RenderViewImpl in a scoped_ptr causing a double delete. This was not caught in testing because fast-path shutdown side-steps properly destroying the mainframe. BUG=245126 Review URL: https://codereview.chromium.org/67313010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234992 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/common')
-rw-r--r--content/common/swapped_out_messages.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/content/common/swapped_out_messages.cc b/content/common/swapped_out_messages.cc
index 05b5781..47acc35 100644
--- a/content/common/swapped_out_messages.cc
+++ b/content/common/swapped_out_messages.cc
@@ -5,6 +5,7 @@
#include "content/common/swapped_out_messages.h"
#include "content/common/accessibility_messages.h"
+#include "content/common/frame_messages.h"
#include "content/common/input_messages.h"
#include "content/common/view_messages.h"
#include "content/public/common/content_client.h"
@@ -35,6 +36,8 @@ bool SwappedOutMessages::CanSendWhileSwappedOut(const IPC::Message* msg) {
// Allow cross-process JavaScript calls.
case ViewHostMsg_RouteCloseEvent::ID:
case ViewHostMsg_RouteMessageEvent::ID:
+ // Frame detach must occur after the RenderView has swapped out.
+ case FrameHostMsg_Detach::ID:
return true;
default:
break;