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

Side by Side Diff: content/browser/renderer_host/render_view_host_impl.cc

Issue 1303773002: Give the main frame a RenderWidget. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixes when navigating from swapped out main frame. Created 5 years, 1 month 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/browser/renderer_host/render_view_host_impl.h" 5 #include "content/browser/renderer_host/render_view_host_impl.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 306
307 ViewMsg_New_Params params; 307 ViewMsg_New_Params params;
308 params.renderer_preferences = 308 params.renderer_preferences =
309 delegate_->GetRendererPrefs(GetProcess()->GetBrowserContext()); 309 delegate_->GetRendererPrefs(GetProcess()->GetBrowserContext());
310 #if defined(OS_WIN) 310 #if defined(OS_WIN)
311 GetWindowsSpecificPrefs(&params.renderer_preferences); 311 GetWindowsSpecificPrefs(&params.renderer_preferences);
312 #endif 312 #endif
313 params.web_preferences = GetWebkitPreferences(); 313 params.web_preferences = GetWebkitPreferences();
314 params.view_id = GetRoutingID(); 314 params.view_id = GetRoutingID();
315 params.main_frame_routing_id = main_frame_routing_id_; 315 params.main_frame_routing_id = main_frame_routing_id_;
316 if (main_frame_routing_id_ != MSG_ROUTING_NONE) {
317 RenderFrameHostImpl* main_rfh = RenderFrameHostImpl::FromID(
318 GetProcess()->GetID(), main_frame_routing_id_);
319 DCHECK(main_rfh);
320 RenderWidgetHostImpl* main_rwh = main_rfh->GetRenderWidgetHost();
321 params.main_frame_widget_routing_id = main_rwh->GetRoutingID();
322 }
316 params.session_storage_namespace_id = 323 params.session_storage_namespace_id =
317 delegate_->GetSessionStorageNamespace(instance_.get())->id(); 324 delegate_->GetSessionStorageNamespace(instance_.get())->id();
318 // Ensure the RenderView sets its opener correctly. 325 // Ensure the RenderView sets its opener correctly.
319 params.opener_frame_route_id = opener_frame_route_id; 326 params.opener_frame_route_id = opener_frame_route_id;
320 params.swapped_out = !is_active_; 327 params.swapped_out = !is_active_;
321 params.replicated_frame_state = replicated_frame_state; 328 params.replicated_frame_state = replicated_frame_state;
322 params.proxy_routing_id = proxy_route_id; 329 params.proxy_routing_id = proxy_route_id;
323 params.hidden = GetWidget()->is_hidden(); 330 params.hidden = GetWidget()->is_hidden();
324 params.never_visible = delegate_->IsNeverVisible(); 331 params.never_visible = delegate_->IsNeverVisible();
325 params.window_was_created_with_opener = window_was_created_with_opener; 332 params.window_was_created_with_opener = window_was_created_with_opener;
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after
1003 } 1010 }
1004 1011
1005 RenderWidgetHostImpl::WasShown(latency_info); 1012 RenderWidgetHostImpl::WasShown(latency_info);
1006 } 1013 }
1007 1014
1008 bool RenderViewHostImpl::IsRenderView() const { 1015 bool RenderViewHostImpl::IsRenderView() const {
1009 return true; 1016 return true;
1010 } 1017 }
1011 1018
1012 void RenderViewHostImpl::CreateNewWindow( 1019 void RenderViewHostImpl::CreateNewWindow(
1013 int route_id, 1020 int32_t route_id,
1014 int main_frame_route_id, 1021 int32_t main_frame_route_id,
1022 int32_t main_frame_widget_route_id,
1015 const ViewHostMsg_CreateWindow_Params& params, 1023 const ViewHostMsg_CreateWindow_Params& params,
1016 SessionStorageNamespace* session_storage_namespace) { 1024 SessionStorageNamespace* session_storage_namespace) {
1017 ViewHostMsg_CreateWindow_Params validated_params(params); 1025 ViewHostMsg_CreateWindow_Params validated_params(params);
1018 GetProcess()->FilterURL(false, &validated_params.target_url); 1026 GetProcess()->FilterURL(false, &validated_params.target_url);
1019 GetProcess()->FilterURL(false, &validated_params.opener_url); 1027 GetProcess()->FilterURL(false, &validated_params.opener_url);
1020 GetProcess()->FilterURL(true, &validated_params.opener_security_origin); 1028 GetProcess()->FilterURL(true, &validated_params.opener_security_origin);
1021 1029
1022 delegate_->CreateNewWindow(GetSiteInstance(), route_id, main_frame_route_id, 1030 delegate_->CreateNewWindow(GetSiteInstance(), route_id, main_frame_route_id,
1023 validated_params, session_storage_namespace); 1031 main_frame_widget_route_id, validated_params,
1032 session_storage_namespace);
1024 } 1033 }
1025 1034
1026 void RenderViewHostImpl::CreateNewWidget(int32 route_id, 1035 void RenderViewHostImpl::CreateNewWidget(int32 route_id,
1027 blink::WebPopupType popup_type) { 1036 blink::WebPopupType popup_type) {
1028 delegate_->CreateNewWidget(GetProcess()->GetID(), route_id, popup_type); 1037 delegate_->CreateNewWidget(GetProcess()->GetID(), route_id, popup_type);
1029 } 1038 }
1030 1039
1031 void RenderViewHostImpl::CreateNewFullscreenWidget(int32 route_id) { 1040 void RenderViewHostImpl::CreateNewFullscreenWidget(int32 route_id) {
1032 delegate_->CreateNewFullscreenWidget(GetProcess()->GetID(), route_id); 1041 delegate_->CreateNewFullscreenWidget(GetProcess()->GetID(), route_id);
1033 } 1042 }
(...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after
1460 } else { 1469 } else {
1461 render_view_ready_on_process_launch_ = true; 1470 render_view_ready_on_process_launch_ = true;
1462 } 1471 }
1463 } 1472 }
1464 1473
1465 void RenderViewHostImpl::RenderViewReady() { 1474 void RenderViewHostImpl::RenderViewReady() {
1466 delegate_->RenderViewReady(this); 1475 delegate_->RenderViewReady(this);
1467 } 1476 }
1468 1477
1469 } // namespace content 1478 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698