OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |