| 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 3832 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3843 // TODO(nasko): Investigate how to remove the GetActiveEntry usage here, | 3843 // TODO(nasko): Investigate how to remove the GetActiveEntry usage here, |
| 3844 // as it is deprecated and can be out of sync with GetRenderViewHost(). | 3844 // as it is deprecated and can be out of sync with GetRenderViewHost(). |
| 3845 GURL url = controller_.GetActiveEntry() | 3845 GURL url = controller_.GetActiveEntry() |
| 3846 ? controller_.GetActiveEntry()->GetURL() : GURL::EmptyGURL(); | 3846 ? controller_.GetActiveEntry()->GetURL() : GURL::EmptyGURL(); |
| 3847 | 3847 |
| 3848 return GetRenderManager()->current_host()->ComputeWebkitPrefs(url); | 3848 return GetRenderManager()->current_host()->ComputeWebkitPrefs(url); |
| 3849 } | 3849 } |
| 3850 | 3850 |
| 3851 int WebContentsImpl::CreateSwappedOutRenderView( | 3851 int WebContentsImpl::CreateSwappedOutRenderView( |
| 3852 SiteInstance* instance) { | 3852 SiteInstance* instance) { |
| 3853 return GetRenderManager()->CreateRenderFrame(instance, MSG_ROUTING_NONE, | 3853 return GetRenderManager()->CreateRenderFrame( |
| 3854 true, true); | 3854 instance, MSG_ROUTING_NONE, true, true, true); |
| 3855 } | 3855 } |
| 3856 | 3856 |
| 3857 void WebContentsImpl::OnUserGesture() { | 3857 void WebContentsImpl::OnUserGesture() { |
| 3858 // Notify observers. | 3858 // Notify observers. |
| 3859 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture()); | 3859 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture()); |
| 3860 | 3860 |
| 3861 ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get(); | 3861 ResourceDispatcherHostImpl* rdh = ResourceDispatcherHostImpl::Get(); |
| 3862 if (rdh) // NULL in unittests. | 3862 if (rdh) // NULL in unittests. |
| 3863 rdh->OnUserGesture(this); | 3863 rdh->OnUserGesture(this); |
| 3864 } | 3864 } |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4014 instance) | 4014 instance) |
| 4015 return GetRenderManager()->pending_render_view_host()->GetRoutingID(); | 4015 return GetRenderManager()->pending_render_view_host()->GetRoutingID(); |
| 4016 | 4016 |
| 4017 RenderViewHostImpl* rvh = GetRenderManager()->GetSwappedOutRenderViewHost( | 4017 RenderViewHostImpl* rvh = GetRenderManager()->GetSwappedOutRenderViewHost( |
| 4018 instance); | 4018 instance); |
| 4019 if (rvh) | 4019 if (rvh) |
| 4020 return rvh->GetRoutingID(); | 4020 return rvh->GetRoutingID(); |
| 4021 | 4021 |
| 4022 // Create a swapped out RenderView in the given SiteInstance if none exists, | 4022 // Create a swapped out RenderView in the given SiteInstance if none exists, |
| 4023 // setting its opener to the given route_id. Return the new view's route_id. | 4023 // setting its opener to the given route_id. Return the new view's route_id. |
| 4024 return GetRenderManager()->CreateRenderFrame(instance, opener_route_id, | 4024 return GetRenderManager()->CreateRenderFrame( |
| 4025 true, true); | 4025 instance, opener_route_id, true, true, true); |
| 4026 } | 4026 } |
| 4027 | 4027 |
| 4028 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() { | 4028 NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() { |
| 4029 return GetController(); | 4029 return GetController(); |
| 4030 } | 4030 } |
| 4031 | 4031 |
| 4032 WebUIImpl* WebContentsImpl::CreateWebUIForRenderManager(const GURL& url) { | 4032 WebUIImpl* WebContentsImpl::CreateWebUIForRenderManager(const GURL& url) { |
| 4033 return static_cast<WebUIImpl*>(CreateWebUI(url)); | 4033 return static_cast<WebUIImpl*>(CreateWebUI(url)); |
| 4034 } | 4034 } |
| 4035 | 4035 |
| 4036 NavigationEntry* | 4036 NavigationEntry* |
| 4037 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { | 4037 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { |
| 4038 return controller_.GetLastCommittedEntry(); | 4038 return controller_.GetLastCommittedEntry(); |
| 4039 } | 4039 } |
| 4040 | 4040 |
| 4041 bool WebContentsImpl::CreateRenderViewForRenderManager( | 4041 bool WebContentsImpl::CreateRenderViewForRenderManager( |
| 4042 RenderViewHost* render_view_host, | 4042 RenderViewHost* render_view_host, |
| 4043 int opener_route_id, | 4043 int opener_route_id, |
| 4044 int proxy_routing_id, | 4044 int proxy_routing_id, |
| 4045 bool for_main_frame) { | 4045 bool for_main_frame_navigation) { |
| 4046 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager"); | 4046 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager"); |
| 4047 // Can be NULL during tests. | 4047 // Can be NULL during tests. |
| 4048 RenderWidgetHostViewBase* rwh_view; | 4048 RenderWidgetHostViewBase* rwh_view; |
| 4049 // TODO(kenrb): RenderWidgetHostViewChildFrame special casing is temporary | 4049 // TODO(kenrb): RenderWidgetHostViewChildFrame special casing is temporary |
| 4050 // until RenderWidgetHost is attached to RenderFrameHost. We need to special | 4050 // until RenderWidgetHost is attached to RenderFrameHost. We need to special |
| 4051 // case this because RWH is still a base class of RenderViewHost, and child | 4051 // case this because RWH is still a base class of RenderViewHost, and child |
| 4052 // frame RWHVs are unique in that they do not have their own WebContents. | 4052 // frame RWHVs are unique in that they do not have their own WebContents. |
| 4053 if (!for_main_frame) { | 4053 if (!for_main_frame_navigation) { |
| 4054 RenderWidgetHostViewChildFrame* rwh_view_child = | 4054 RenderWidgetHostViewChildFrame* rwh_view_child = |
| 4055 new RenderWidgetHostViewChildFrame(render_view_host); | 4055 new RenderWidgetHostViewChildFrame(render_view_host); |
| 4056 rwh_view = rwh_view_child; | 4056 rwh_view = rwh_view_child; |
| 4057 } else { | 4057 } else { |
| 4058 rwh_view = view_->CreateViewForWidget(render_view_host); | 4058 rwh_view = view_->CreateViewForWidget(render_view_host); |
| 4059 } | 4059 } |
| 4060 | 4060 |
| 4061 // Now that the RenderView has been created, we need to tell it its size. | 4061 // Now that the RenderView has been created, we need to tell it its size. |
| 4062 if (rwh_view) | 4062 if (rwh_view) |
| 4063 rwh_view->SetSize(GetSizeForNewRenderView()); | 4063 rwh_view->SetSize(GetSizeForNewRenderView()); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 4081 // linux. See crbug.com/83941. | 4081 // linux. See crbug.com/83941. |
| 4082 if (rwh_view) { | 4082 if (rwh_view) { |
| 4083 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost()) | 4083 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost()) |
| 4084 render_widget_host->WasResized(); | 4084 render_widget_host->WasResized(); |
| 4085 } | 4085 } |
| 4086 #endif | 4086 #endif |
| 4087 | 4087 |
| 4088 return true; | 4088 return true; |
| 4089 } | 4089 } |
| 4090 | 4090 |
| 4091 bool WebContentsImpl::CreateRenderFrameForRenderManager( |
| 4092 RenderFrameHost* render_frame_host, |
| 4093 int parent_routing_id) { |
| 4094 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderFrameForRenderManager"); |
| 4095 |
| 4096 RenderFrameHostImpl* rfh = |
| 4097 static_cast<RenderFrameHostImpl*>(render_frame_host); |
| 4098 if (!rfh->CreateRenderFrame(parent_routing_id)) |
| 4099 return false; |
| 4100 |
| 4101 // TODO(nasko): When RenderWidgetHost is owned by RenderFrameHost, the passed |
| 4102 // RenderFrameHost will have to be associated with the appropriate |
| 4103 // RenderWidgetHostView or a new one should be created here. |
| 4104 |
| 4105 return true; |
| 4106 } |
| 4107 |
| 4091 #if defined(OS_ANDROID) | 4108 #if defined(OS_ANDROID) |
| 4092 | 4109 |
| 4093 base::android::ScopedJavaLocalRef<jobject> | 4110 base::android::ScopedJavaLocalRef<jobject> |
| 4094 WebContentsImpl::GetJavaWebContents() { | 4111 WebContentsImpl::GetJavaWebContents() { |
| 4095 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 4112 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 4096 | 4113 |
| 4097 WebContentsAndroid* web_contents_android = | 4114 WebContentsAndroid* web_contents_android = |
| 4098 static_cast<WebContentsAndroid*>(GetUserData(kWebContentsAndroidKey)); | 4115 static_cast<WebContentsAndroid*>(GetUserData(kWebContentsAndroidKey)); |
| 4099 if (!web_contents_android) { | 4116 if (!web_contents_android) { |
| 4100 web_contents_android = new WebContentsAndroid(this); | 4117 web_contents_android = new WebContentsAndroid(this); |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4236 if (new_size != old_size) | 4253 if (new_size != old_size) |
| 4237 delegate_->UpdatePreferredSize(this, new_size); | 4254 delegate_->UpdatePreferredSize(this, new_size); |
| 4238 } | 4255 } |
| 4239 | 4256 |
| 4240 void WebContentsImpl::ResumeResponseDeferredAtStart() { | 4257 void WebContentsImpl::ResumeResponseDeferredAtStart() { |
| 4241 FrameTreeNode* node = frame_tree_.root(); | 4258 FrameTreeNode* node = frame_tree_.root(); |
| 4242 node->render_manager()->ResumeResponseDeferredAtStart(); | 4259 node->render_manager()->ResumeResponseDeferredAtStart(); |
| 4243 } | 4260 } |
| 4244 | 4261 |
| 4245 } // namespace content | 4262 } // namespace content |
| OLD | NEW |