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

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 444503002: Start using RenderFrameProxyHost objects. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Create view IFF frame is main frame Created 6 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 unified diff | Download patch
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/frame_messages.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 3820 matching lines...) Expand 10 before | Expand all | Expand 10 after
3831 // TODO(nasko): Investigate how to remove the GetActiveEntry usage here, 3831 // TODO(nasko): Investigate how to remove the GetActiveEntry usage here,
3832 // as it is deprecated and can be out of sync with GetRenderViewHost(). 3832 // as it is deprecated and can be out of sync with GetRenderViewHost().
3833 GURL url = controller_.GetActiveEntry() 3833 GURL url = controller_.GetActiveEntry()
3834 ? controller_.GetActiveEntry()->GetURL() : GURL::EmptyGURL(); 3834 ? controller_.GetActiveEntry()->GetURL() : GURL::EmptyGURL();
3835 3835
3836 return GetRenderManager()->current_host()->GetWebkitPrefs(url); 3836 return GetRenderManager()->current_host()->GetWebkitPrefs(url);
3837 } 3837 }
3838 3838
3839 int WebContentsImpl::CreateSwappedOutRenderView( 3839 int WebContentsImpl::CreateSwappedOutRenderView(
3840 SiteInstance* instance) { 3840 SiteInstance* instance) {
3841 return GetRenderManager()->CreateRenderFrame(instance, MSG_ROUTING_NONE, 3841 return GetRenderManager()->CreateRenderFrame(
3842 true, true); 3842 instance, MSG_ROUTING_NONE, true, true, true);
3843 } 3843 }
3844 3844
3845 void WebContentsImpl::OnUserGesture() { 3845 void WebContentsImpl::OnUserGesture() {
3846 // Notify observers. 3846 // Notify observers.
3847 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture()); 3847 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture());
3848 3848
3849 ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get(); 3849 ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get();
3850 if (rdh) // NULL in unittests. 3850 if (rdh) // NULL in unittests.
3851 rdh->OnUserGesture(this); 3851 rdh->OnUserGesture(this);
3852 } 3852 }
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
4002 instance) 4002 instance)
4003 return GetRenderManager()->pending_render_view_host()->GetRoutingID(); 4003 return GetRenderManager()->pending_render_view_host()->GetRoutingID();
4004 4004
4005 RenderViewHostImpl* rvh = GetRenderManager()->GetSwappedOutRenderViewHost( 4005 RenderViewHostImpl* rvh = GetRenderManager()->GetSwappedOutRenderViewHost(
4006 instance); 4006 instance);
4007 if (rvh) 4007 if (rvh)
4008 return rvh->GetRoutingID(); 4008 return rvh->GetRoutingID();
4009 4009
4010 // Create a swapped out RenderView in the given SiteInstance if none exists, 4010 // Create a swapped out RenderView in the given SiteInstance if none exists,
4011 // setting its opener to the given route_id. Return the new view's route_id. 4011 // setting its opener to the given route_id. Return the new view's route_id.
4012 return GetRenderManager()->CreateRenderFrame(instance, opener_route_id, 4012 return GetRenderManager()->CreateRenderFrame(
4013 true, true); 4013 instance, opener_route_id, true, true, true);
4014 } 4014 }
4015 4015
4016 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() { 4016 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() {
4017 return GetController(); 4017 return GetController();
4018 } 4018 }
4019 4019
4020 WebUIImpl* WebContentsImpl::CreateWebUIForRenderManager(const GURL& url) { 4020 WebUIImpl* WebContentsImpl::CreateWebUIForRenderManager(const GURL& url) {
4021 return static_cast<WebUIImpl*>(CreateWebUI(url)); 4021 return static_cast<WebUIImpl*>(CreateWebUI(url));
4022 } 4022 }
4023 4023
4024 NavigationEntry* 4024 NavigationEntry*
4025 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { 4025 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() {
4026 return controller_.GetLastCommittedEntry(); 4026 return controller_.GetLastCommittedEntry();
4027 } 4027 }
4028 4028
4029 bool WebContentsImpl::CreateRenderViewForRenderManager( 4029 bool WebContentsImpl::CreateRenderViewForRenderManager(
4030 RenderViewHost* render_view_host, 4030 RenderViewHost* render_view_host,
4031 int opener_route_id, 4031 int opener_route_id,
4032 int proxy_routing_id, 4032 int proxy_routing_id,
4033 bool for_main_frame) { 4033 bool for_main_frame_navigation) {
4034 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager"); 4034 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager");
4035 // Can be NULL during tests. 4035 // Can be NULL during tests.
4036 RenderWidgetHostViewBase* rwh_view; 4036 RenderWidgetHostViewBase* rwh_view;
4037 // TODO(kenrb): RenderWidgetHostViewChildFrame special casing is temporary 4037 // TODO(kenrb): RenderWidgetHostViewChildFrame special casing is temporary
4038 // until RenderWidgetHost is attached to RenderFrameHost. We need to special 4038 // until RenderWidgetHost is attached to RenderFrameHost. We need to special
4039 // case this because RWH is still a base class of RenderViewHost, and child 4039 // case this because RWH is still a base class of RenderViewHost, and child
4040 // frame RWHVs are unique in that they do not have their own WebContents. 4040 // frame RWHVs are unique in that they do not have their own WebContents.
4041 if (!for_main_frame) { 4041 if (!for_main_frame_navigation) {
4042 RenderWidgetHostViewChildFrame* rwh_view_child = 4042 RenderWidgetHostViewChildFrame* rwh_view_child =
4043 new RenderWidgetHostViewChildFrame(render_view_host); 4043 new RenderWidgetHostViewChildFrame(render_view_host);
4044 rwh_view = rwh_view_child; 4044 rwh_view = rwh_view_child;
4045 } else { 4045 } else {
4046 rwh_view = view_->CreateViewForWidget(render_view_host); 4046 rwh_view = view_->CreateViewForWidget(render_view_host);
4047 } 4047 }
4048 4048
4049 // Now that the RenderView has been created, we need to tell it its size. 4049 // Now that the RenderView has been created, we need to tell it its size.
4050 if (rwh_view) 4050 if (rwh_view)
4051 rwh_view->SetSize(GetSizeForNewRenderView()); 4051 rwh_view->SetSize(GetSizeForNewRenderView());
(...skipping 17 matching lines...) Expand all
4069 // linux. See crbug.com/83941. 4069 // linux. See crbug.com/83941.
4070 if (rwh_view) { 4070 if (rwh_view) {
4071 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost()) 4071 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost())
4072 render_widget_host->WasResized(); 4072 render_widget_host->WasResized();
4073 } 4073 }
4074 #endif 4074 #endif
4075 4075
4076 return true; 4076 return true;
4077 } 4077 }
4078 4078
4079 bool WebContentsImpl::CreateRenderFrameForRenderManager(
4080 RenderFrameHost* render_frame_host,
4081 int parent_routing_id) {
4082 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderFrameForRenderManager");
4083
4084 RenderFrameHostImpl* rfh =
4085 static_cast<RenderFrameHostImpl*>(render_frame_host);
4086 if (!rfh->CreateRenderFrame(parent_routing_id))
4087 return false;
4088
4089 // TODO(nasko): When RenderWidgetHost is owned by RenderFrameHost, the passed
4090 // RenderFrameHost will have to be associated with the appropriate
4091 // RenderWidgetHostView or a new one should be created here.
4092
4093 return true;
4094 }
4095
4079 #if defined(OS_ANDROID) 4096 #if defined(OS_ANDROID)
4080 4097
4081 base::android::ScopedJavaLocalRef<jobject> 4098 base::android::ScopedJavaLocalRef<jobject>
4082 WebContentsImpl::GetJavaWebContents() { 4099 WebContentsImpl::GetJavaWebContents() {
4083 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 4100 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
4084 4101
4085 WebContentsAndroid* web_contents_android = 4102 WebContentsAndroid* web_contents_android =
4086 static_cast<WebContentsAndroid*>(GetUserData(kWebContentsAndroidKey)); 4103 static_cast<WebContentsAndroid*>(GetUserData(kWebContentsAndroidKey));
4087 if (!web_contents_android) { 4104 if (!web_contents_android) {
4088 web_contents_android = new WebContentsAndroid(this); 4105 web_contents_android = new WebContentsAndroid(this);
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
4224 if (new_size != old_size) 4241 if (new_size != old_size)
4225 delegate_->UpdatePreferredSize(this, new_size); 4242 delegate_->UpdatePreferredSize(this, new_size);
4226 } 4243 }
4227 4244
4228 void WebContentsImpl::ResumeResponseDeferredAtStart() { 4245 void WebContentsImpl::ResumeResponseDeferredAtStart() {
4229 FrameTreeNode* node = frame_tree_.root(); 4246 FrameTreeNode* node = frame_tree_.root();
4230 node->render_manager()->ResumeResponseDeferredAtStart(); 4247 node->render_manager()->ResumeResponseDeferredAtStart();
4231 } 4248 }
4232 4249
4233 } // namespace content 4250 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/frame_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698