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

Unified Diff: content/browser/renderer_host/render_view_host_impl.cc

Issue 16032007: Create RenderFrame/RenderFrameHost for the main frame of a page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removing routing ID expectations. Created 7 years, 7 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/browser/renderer_host/render_view_host_impl.cc
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
index 4ab78219b05b96357fe8c08fc88f7de644de0d31..6133e739157e9e067934d3a0c068efd03bb35967 100644
--- a/content/browser/renderer_host/render_view_host_impl.cc
+++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -159,6 +159,7 @@ RenderViewHostImpl::RenderViewHostImpl(
RenderViewHostDelegate* delegate,
RenderWidgetHostDelegate* widget_delegate,
int routing_id,
+ int main_frame_routing_id,
bool swapped_out,
SessionStorageNamespace* session_storage)
: RenderWidgetHostImpl(widget_delegate, instance->GetProcess(), routing_id),
@@ -191,6 +192,12 @@ RenderViewHostImpl::RenderViewHostImpl(
DCHECK(instance_);
CHECK(delegate_); // http://crbug.com/82827
+ if (main_frame_routing_id == MSG_ROUTING_NONE)
+ main_frame_routing_id = GetProcess()->GetNextRoutingID();
+
+ main_render_frame_host_.reset(
+ new RenderFrameHostImpl(this, main_frame_routing_id, is_swapped_out_));
+
GetProcess()->EnableSendQueue();
for (size_t i = 0; i < g_created_callbacks.Get().size(); i++)
@@ -253,6 +260,7 @@ bool RenderViewHostImpl::CreateRenderView(
delegate_->GetRendererPrefs(GetProcess()->GetBrowserContext());
params.web_preferences = delegate_->GetWebkitPrefs();
params.view_id = GetRoutingID();
+ params.main_frame_routing_id = main_render_frame_host_->routing_id();
params.surface_id = surface_id();
params.session_storage_namespace_id = session_storage_namespace_->id();
params.frame_name = frame_name;
@@ -1035,6 +1043,7 @@ bool RenderViewHostImpl::IsRenderView() const {
void RenderViewHostImpl::CreateNewWindow(
int route_id,
+ int main_frame_route_id,
const ViewHostMsg_CreateWindow_Params& params,
SessionStorageNamespace* session_storage_namespace) {
ViewHostMsg_CreateWindow_Params validated_params(params);
@@ -1045,8 +1054,8 @@ void RenderViewHostImpl::CreateNewWindow(
FilterURL(policy, GetProcess(), true,
&validated_params.opener_security_origin);
- delegate_->CreateNewWindow(route_id, validated_params,
- session_storage_namespace);
+ delegate_->CreateNewWindow(route_id, main_frame_route_id,
+ validated_params, session_storage_namespace);
}
void RenderViewHostImpl::CreateNewWidget(int route_id,
« no previous file with comments | « content/browser/renderer_host/render_view_host_impl.h ('k') | content/browser/renderer_host/render_widget_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698