| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |