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

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

Issue 616133002: Make RenderFrame(Host) own a RenderWidget(Host). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 2 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
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698