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