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

Side by Side Diff: content/renderer/render_frame_proxy.cc

Issue 1039403002: OOPIF: Remove the FrameTreeNode when a RemoteFrame is detached. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_proxy.h" 5 #include "content/renderer/render_frame_proxy.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "content/child/webmessageportchannel_impl.h" 10 #include "content/child/webmessageportchannel_impl.h"
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 } 300 }
301 301
302 void RenderFrameProxy::OnDidUpdateName(const std::string& name) { 302 void RenderFrameProxy::OnDidUpdateName(const std::string& name) {
303 web_frame_->setReplicatedName(blink::WebString::fromUTF8(name)); 303 web_frame_->setReplicatedName(blink::WebString::fromUTF8(name));
304 } 304 }
305 305
306 void RenderFrameProxy::frameDetached() { 306 void RenderFrameProxy::frameDetached() {
307 if (web_frame_->parent()) 307 if (web_frame_->parent())
308 web_frame_->parent()->removeChild(web_frame_); 308 web_frame_->parent()->removeChild(web_frame_);
309 309
310 // Let the browser process know this frame is removed, so that it is destroyed
311 // in its current process.
312 Send(new FrameHostMsg_Detach(routing_id_));
313
310 web_frame_->close(); 314 web_frame_->close();
311 delete this; 315 delete this;
312 } 316 }
313 317
314 void RenderFrameProxy::postMessageEvent( 318 void RenderFrameProxy::postMessageEvent(
315 blink::WebLocalFrame* source_frame, 319 blink::WebLocalFrame* source_frame,
316 blink::WebRemoteFrame* target_frame, 320 blink::WebRemoteFrame* target_frame,
317 blink::WebSecurityOrigin target_origin, 321 blink::WebSecurityOrigin target_origin,
318 blink::WebDOMMessageEvent event) { 322 blink::WebDOMMessageEvent event) {
319 DCHECK(!web_frame_ || web_frame_ == target_frame); 323 DCHECK(!web_frame_ || web_frame_ == target_frame);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 blink::WebUserGestureIndicator::isProcessingUserGesture(); 366 blink::WebUserGestureIndicator::isProcessingUserGesture();
363 blink::WebUserGestureIndicator::consumeUserGesture(); 367 blink::WebUserGestureIndicator::consumeUserGesture();
364 Send(new FrameHostMsg_OpenURL(routing_id_, params)); 368 Send(new FrameHostMsg_OpenURL(routing_id_, params));
365 } 369 }
366 370
367 void RenderFrameProxy::forwardInputEvent(const blink::WebInputEvent* event) { 371 void RenderFrameProxy::forwardInputEvent(const blink::WebInputEvent* event) {
368 Send(new FrameHostMsg_ForwardInputEvent(routing_id_, event)); 372 Send(new FrameHostMsg_ForwardInputEvent(routing_id_, event));
369 } 373 }
370 374
371 } // namespace 375 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698