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

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

Issue 929463004: Sets render_frame_proxy_ to null in the RenderFrameImpl when destroying the RenderFrameProxy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 frame_routing_id_(frame_routing_id), 110 frame_routing_id_(frame_routing_id),
111 web_frame_(NULL), 111 web_frame_(NULL),
112 render_view_(NULL) { 112 render_view_(NULL) {
113 std::pair<RoutingIDProxyMap::iterator, bool> result = 113 std::pair<RoutingIDProxyMap::iterator, bool> result =
114 g_routing_id_proxy_map.Get().insert(std::make_pair(routing_id_, this)); 114 g_routing_id_proxy_map.Get().insert(std::make_pair(routing_id_, this));
115 CHECK(result.second) << "Inserting a duplicate item."; 115 CHECK(result.second) << "Inserting a duplicate item.";
116 RenderThread::Get()->AddRoute(routing_id_, this); 116 RenderThread::Get()->AddRoute(routing_id_, this);
117 } 117 }
118 118
119 RenderFrameProxy::~RenderFrameProxy() { 119 RenderFrameProxy::~RenderFrameProxy() {
120 // TODO(nasko): Set the render_frame_proxy to null to avoid a double deletion
121 // when detaching the main frame. This can be removed once RenderFrameImpl and
122 // RenderFrameProxy have been completely decoupled. See
123 // https://crbug.com/357747.
124 RenderFrameImpl* render_frame =
125 RenderFrameImpl::FromRoutingID(frame_routing_id_);
126 if (render_frame)
127 render_frame->set_render_frame_proxy(nullptr);
128
120 render_view()->UnregisterRenderFrameProxy(this); 129 render_view()->UnregisterRenderFrameProxy(this);
121 130
122 FrameMap::iterator it = g_frame_map.Get().find(web_frame_); 131 FrameMap::iterator it = g_frame_map.Get().find(web_frame_);
123 CHECK(it != g_frame_map.Get().end()); 132 CHECK(it != g_frame_map.Get().end());
124 CHECK_EQ(it->second, this); 133 CHECK_EQ(it->second, this);
125 g_frame_map.Get().erase(it); 134 g_frame_map.Get().erase(it);
126 135
127 RenderThread::Get()->RemoveRoute(routing_id_); 136 RenderThread::Get()->RemoveRoute(routing_id_);
128 g_routing_id_proxy_map.Get().erase(routing_id_); 137 g_routing_id_proxy_map.Get().erase(routing_id_);
129 } 138 }
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 blink::WebUserGestureIndicator::isProcessingUserGesture(); 329 blink::WebUserGestureIndicator::isProcessingUserGesture();
321 blink::WebUserGestureIndicator::consumeUserGesture(); 330 blink::WebUserGestureIndicator::consumeUserGesture();
322 Send(new FrameHostMsg_OpenURL(routing_id_, params)); 331 Send(new FrameHostMsg_OpenURL(routing_id_, params));
323 } 332 }
324 333
325 void RenderFrameProxy::forwardInputEvent(const blink::WebInputEvent* event) { 334 void RenderFrameProxy::forwardInputEvent(const blink::WebInputEvent* event) {
326 Send(new FrameHostMsg_ForwardInputEvent(routing_id_, event)); 335 Send(new FrameHostMsg_ForwardInputEvent(routing_id_, event));
327 } 336 }
328 337
329 } // namespace 338 } // namespace
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698