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 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
146 } | 146 } |
147 | 147 |
148 bool RenderFrameProxy::OnMessageReceived(const IPC::Message& msg) { | 148 bool RenderFrameProxy::OnMessageReceived(const IPC::Message& msg) { |
149 bool handled = true; | 149 bool handled = true; |
150 IPC_BEGIN_MESSAGE_MAP(RenderFrameProxy, msg) | 150 IPC_BEGIN_MESSAGE_MAP(RenderFrameProxy, msg) |
151 IPC_MESSAGE_HANDLER(FrameMsg_DeleteProxy, OnDeleteProxy) | 151 IPC_MESSAGE_HANDLER(FrameMsg_DeleteProxy, OnDeleteProxy) |
152 IPC_MESSAGE_HANDLER(FrameMsg_ChildFrameProcessGone, OnChildFrameProcessGone) | 152 IPC_MESSAGE_HANDLER(FrameMsg_ChildFrameProcessGone, OnChildFrameProcessGone) |
153 IPC_MESSAGE_HANDLER_GENERIC(FrameMsg_CompositorFrameSwapped, | 153 IPC_MESSAGE_HANDLER_GENERIC(FrameMsg_CompositorFrameSwapped, |
154 OnCompositorFrameSwapped(msg)) | 154 OnCompositorFrameSwapped(msg)) |
155 IPC_MESSAGE_HANDLER(FrameMsg_DisownOpener, OnDisownOpener) | 155 IPC_MESSAGE_HANDLER(FrameMsg_DisownOpener, OnDisownOpener) |
156 IPC_MESSAGE_HANDLER(FrameMsg_SwapOut, OnSwapOut) | |
156 IPC_MESSAGE_UNHANDLED(handled = false) | 157 IPC_MESSAGE_UNHANDLED(handled = false) |
157 IPC_END_MESSAGE_MAP() | 158 IPC_END_MESSAGE_MAP() |
158 | 159 |
159 // If |handled| is true, |this| may have been deleted. | 160 // If |handled| is true, |this| may have been deleted. |
160 if (handled) | 161 if (handled) |
161 return true; | 162 return true; |
162 | 163 |
163 RenderFrameImpl* render_frame = | 164 RenderFrameImpl* render_frame = |
164 RenderFrameImpl::FromRoutingID(frame_routing_id_); | 165 RenderFrameImpl::FromRoutingID(frame_routing_id_); |
165 return render_frame && render_frame->OnMessageReceived(msg); | 166 return render_frame && render_frame->OnMessageReceived(msg); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
223 if (render_frame) { | 224 if (render_frame) { |
224 if (render_frame->GetWebFrame()->opener()) | 225 if (render_frame->GetWebFrame()->opener()) |
225 render_frame->GetWebFrame()->setOpener(NULL); | 226 render_frame->GetWebFrame()->setOpener(NULL); |
226 return; | 227 return; |
227 } | 228 } |
228 | 229 |
229 if (web_frame_->opener()) | 230 if (web_frame_->opener()) |
230 web_frame_->setOpener(NULL); | 231 web_frame_->setOpener(NULL); |
231 } | 232 } |
232 | 233 |
234 void RenderFrameProxy::OnSwapOut(int frame_routing_id) { | |
Charlie Reis
2014/09/30 23:02:43
I don't think we want this, do we? Nasko was poin
nasko
2014/10/08 16:42:58
Yes, it will be best if we send the proxy routing
| |
235 CHECK(!RenderFrameImpl::FromRoutingID(frame_routing_id)); | |
236 | |
237 RenderFrameImpl* render_frame = | |
238 RenderFrameImpl::Create(render_view_, frame_routing_id); | |
239 blink::WebLocalFrame* web_frame = blink::WebLocalFrame::create(render_frame); | |
240 render_frame->SetWebFrame(web_frame); | |
241 render_frame->Initialize(); | |
242 web_frame_->swap(web_frame); | |
243 } | |
244 | |
233 void RenderFrameProxy::postMessageEvent( | 245 void RenderFrameProxy::postMessageEvent( |
234 blink::WebLocalFrame* source_frame, | 246 blink::WebLocalFrame* source_frame, |
235 blink::WebRemoteFrame* target_frame, | 247 blink::WebRemoteFrame* target_frame, |
236 blink::WebSecurityOrigin target_origin, | 248 blink::WebSecurityOrigin target_origin, |
237 blink::WebDOMMessageEvent event) { | 249 blink::WebDOMMessageEvent event) { |
238 DCHECK(!web_frame_ || web_frame_ == target_frame); | 250 DCHECK(!web_frame_ || web_frame_ == target_frame); |
239 | 251 |
240 ViewMsg_PostMessage_Params params; | 252 ViewMsg_PostMessage_Params params; |
241 params.is_data_raw_string = false; | 253 params.is_data_raw_string = false; |
242 params.data = event.data().toString(); | 254 params.data = event.data().toString(); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
288 request.referrerPolicy()); | 300 request.referrerPolicy()); |
289 params.disposition = CURRENT_TAB; | 301 params.disposition = CURRENT_TAB; |
290 params.should_replace_current_entry = should_replace_current_entry; | 302 params.should_replace_current_entry = should_replace_current_entry; |
291 params.user_gesture = | 303 params.user_gesture = |
292 blink::WebUserGestureIndicator::isProcessingUserGesture(); | 304 blink::WebUserGestureIndicator::isProcessingUserGesture(); |
293 blink::WebUserGestureIndicator::consumeUserGesture(); | 305 blink::WebUserGestureIndicator::consumeUserGesture(); |
294 Send(new FrameHostMsg_OpenURL(routing_id_, params)); | 306 Send(new FrameHostMsg_OpenURL(routing_id_, params)); |
295 } | 307 } |
296 | 308 |
297 } // namespace | 309 } // namespace |
OLD | NEW |