OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_impl.h" | 5 #include "content/renderer/render_frame_impl.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
379 // static | 379 // static |
380 RenderFrameImpl* RenderFrameImpl::FromRoutingID(int32 routing_id) { | 380 RenderFrameImpl* RenderFrameImpl::FromRoutingID(int32 routing_id) { |
381 RoutingIDFrameMap::iterator iter = | 381 RoutingIDFrameMap::iterator iter = |
382 g_routing_id_frame_map.Get().find(routing_id); | 382 g_routing_id_frame_map.Get().find(routing_id); |
383 if (iter != g_routing_id_frame_map.Get().end()) | 383 if (iter != g_routing_id_frame_map.Get().end()) |
384 return iter->second; | 384 return iter->second; |
385 return NULL; | 385 return NULL; |
386 } | 386 } |
387 | 387 |
388 // static | 388 // static |
389 void RenderFrameImpl::CreateFrame(int routing_id, int parent_routing_id) { | 389 void RenderFrameImpl::CreateFrame( |
| 390 int routing_id, |
| 391 int parent_routing_id, |
| 392 const FrameMsg_NewFrame_WidgetParams& params) { |
390 // TODO(nasko): For now, this message is only sent for subframes, as the | 393 // TODO(nasko): For now, this message is only sent for subframes, as the |
391 // top level frame is created when the RenderView is created through the | 394 // top level frame is created when the RenderView is created through the |
392 // ViewMsg_New IPC. | 395 // ViewMsg_New IPC. |
393 CHECK_NE(MSG_ROUTING_NONE, parent_routing_id); | 396 CHECK_NE(MSG_ROUTING_NONE, parent_routing_id); |
394 | 397 |
395 RenderFrameProxy* proxy = RenderFrameProxy::FromRoutingID(parent_routing_id); | 398 RenderFrameProxy* proxy = RenderFrameProxy::FromRoutingID(parent_routing_id); |
396 | 399 |
397 // If the browser is sending a valid parent routing id, it should already be | 400 // If the browser is sending a valid parent routing id, it should already be |
398 // created and registered. | 401 // created and registered. |
399 CHECK(proxy); | 402 CHECK(proxy); |
400 blink::WebRemoteFrame* parent_web_frame = proxy->web_frame(); | 403 blink::WebRemoteFrame* parent_web_frame = proxy->web_frame(); |
401 | 404 |
402 // Create the RenderFrame and WebLocalFrame, linking the two. | 405 // Create the RenderFrame and WebLocalFrame, linking the two. |
403 RenderFrameImpl* render_frame = | 406 RenderFrameImpl* render_frame = |
404 RenderFrameImpl::Create(proxy->render_view(), routing_id); | 407 RenderFrameImpl::Create(proxy->render_view(), routing_id); |
405 blink::WebLocalFrame* web_frame = | 408 blink::WebLocalFrame* web_frame = |
406 parent_web_frame->createLocalChild("", render_frame); | 409 parent_web_frame->createLocalChild("", render_frame); |
407 render_frame->SetWebFrame(web_frame); | 410 render_frame->SetWebFrame(web_frame); |
408 render_frame->Initialize(); | 411 render_frame->Initialize(); |
| 412 |
| 413 if (params.routing_id != MSG_ROUTING_NONE) { |
| 414 render_frame->render_widget_ = RenderWidget::CreateForFrame( |
| 415 params.routing_id, |
| 416 params.surface_id, |
| 417 params.hidden, |
| 418 render_frame->render_view_->screen_info()); |
| 419 } |
409 } | 420 } |
410 | 421 |
411 // static | 422 // static |
412 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) { | 423 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) { |
413 return RenderFrameImpl::FromWebFrame(web_frame); | 424 return RenderFrameImpl::FromWebFrame(web_frame); |
414 } | 425 } |
415 | 426 |
416 // static | 427 // static |
417 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) { | 428 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) { |
418 FrameMap::iterator iter = g_frame_map.Get().find(web_frame); | 429 FrameMap::iterator iter = g_frame_map.Get().find(web_frame); |
(...skipping 3487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3906 | 3917 |
3907 #if defined(ENABLE_BROWSER_CDMS) | 3918 #if defined(ENABLE_BROWSER_CDMS) |
3908 RendererCdmManager* RenderFrameImpl::GetCdmManager() { | 3919 RendererCdmManager* RenderFrameImpl::GetCdmManager() { |
3909 if (!cdm_manager_) | 3920 if (!cdm_manager_) |
3910 cdm_manager_ = new RendererCdmManager(this); | 3921 cdm_manager_ = new RendererCdmManager(this); |
3911 return cdm_manager_; | 3922 return cdm_manager_; |
3912 } | 3923 } |
3913 #endif // defined(ENABLE_BROWSER_CDMS) | 3924 #endif // defined(ENABLE_BROWSER_CDMS) |
3914 | 3925 |
3915 } // namespace content | 3926 } // namespace content |
OLD | NEW |