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

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: Fixed output surface problems, combined RenderFrame and RenderWidget creation 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 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698