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

Unified Diff: content/renderer/render_view_impl.cc

Issue 1303773002: Give the main frame a RenderWidget. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index 508a3d6d3f31978c878b8e842fba63cb30e2eeb7..a345dbe21a99e746b67323c64aeff47bf1c0fa81 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -678,16 +678,6 @@ void RenderViewImpl::Initialize(const ViewMsg_New_Params& params,
// Ensure we start with a valid next_page_id_ from the browser.
DCHECK_GE(next_page_id_, 0);
- if (params.main_frame_routing_id != MSG_ROUTING_NONE) {
- main_render_frame_ = RenderFrameImpl::Create(
- this, params.main_frame_routing_id);
- // The main frame WebLocalFrame object is closed by
- // RenderFrameImpl::frameDetached().
- WebLocalFrame* web_frame = WebLocalFrame::create(
- blink::WebTreeScopeType::Document, main_render_frame_);
- main_render_frame_->SetWebFrame(web_frame);
- }
-
webwidget_ = WebView::create(this);
webwidget_mouse_lock_target_.reset(new WebWidgetLockTarget(webwidget_));
@@ -700,6 +690,12 @@ void RenderViewImpl::Initialize(const ViewMsg_New_Params& params,
if (command_line.HasSwitch(switches::kStatsCollectionController))
stats_collection_observer_.reset(new StatsCollectionObserver(this));
+ if (params.main_frame_routing_id != MSG_ROUTING_NONE) {
+ main_render_frame_ = RenderFrameImpl::CreateMainFrame(
+ this, params.main_frame_routing_id, params.main_frame_widget_routing_id,
+ params.surface_id, params.hidden, screen_info(), compositor_deps_);
+ }
+
RenderFrameProxy* proxy = NULL;
if (params.proxy_routing_id != MSG_ROUTING_NONE) {
CHECK(params.swapped_out);
@@ -724,8 +720,6 @@ void RenderViewImpl::Initialize(const ViewMsg_New_Params& params,
// Initialize the WebRemoteFrame with information replicated from the
// browser process.
proxy->SetReplicatedState(params.replicated_frame_state);
- } else {
- webview()->setMainFrame(main_render_frame_->GetWebFrame());
dcheng 2015/08/24 18:50:20 I moved this into RenderFrameImpl::CreateMainFrame
}
if (main_render_frame_)
main_render_frame_->Initialize();
@@ -1610,15 +1604,15 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator,
for (size_t i = 0; i < features.additionalFeatures.size(); ++i)
params.additional_features.push_back(features.additionalFeatures[i]);
- int32 routing_id = MSG_ROUTING_NONE;
- int32 main_frame_routing_id = MSG_ROUTING_NONE;
- int32 surface_id = 0;
- int64 cloned_session_storage_namespace_id = 0;
+ ViewHostMsg_CreateWindow_Reply reply;
+ reply.route_id = MSG_ROUTING_NONE;
+ reply.main_frame_route_id = MSG_ROUTING_NONE;
+ reply.main_frame_widget_route_id = MSG_ROUTING_NONE;
+ reply.surface_id = 0;
+ reply.cloned_session_storage_namespace_id = 0;
- RenderThread::Get()->Send(new ViewHostMsg_CreateWindow(
- params, &routing_id, &main_frame_routing_id, &surface_id,
- &cloned_session_storage_namespace_id));
- if (routing_id == MSG_ROUTING_NONE)
+ RenderThread::Get()->Send(new ViewHostMsg_CreateWindow(params, &reply));
+ if (reply.route_id == MSG_ROUTING_NONE)
return NULL;
WebUserGestureIndicator::consumeUserGesture();
@@ -1646,11 +1640,12 @@ WebView* RenderViewImpl::createView(WebLocalFrame* creator,
view_params.window_was_created_with_opener = true;
view_params.renderer_preferences = renderer_preferences_;
view_params.web_preferences = webkit_preferences_;
- view_params.view_id = routing_id;
- view_params.main_frame_routing_id = main_frame_routing_id;
- view_params.surface_id = surface_id;
+ view_params.view_id = reply.route_id;
+ view_params.main_frame_routing_id = reply.main_frame_route_id;
+ view_params.main_frame_widget_routing_id = reply.main_frame_widget_route_id;
+ view_params.surface_id = reply.surface_id;
view_params.session_storage_namespace_id =
- cloned_session_storage_namespace_id;
+ reply.cloned_session_storage_namespace_id;
view_params.swapped_out = false;
// WebCore will take care of setting the correct name.
view_params.replicated_frame_state = FrameReplicationState();

Powered by Google App Engine
This is Rietveld 408576698