| 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 3755 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3766 } | 3766 } |
| 3767 | 3767 |
| 3768 NavigationEntry* | 3768 NavigationEntry* |
| 3769 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { | 3769 WebContentsImpl::GetLastCommittedNavigationEntryForRenderManager() { |
| 3770 return controller_.GetLastCommittedEntry(); | 3770 return controller_.GetLastCommittedEntry(); |
| 3771 } | 3771 } |
| 3772 | 3772 |
| 3773 bool WebContentsImpl::CreateRenderViewForRenderManager( | 3773 bool WebContentsImpl::CreateRenderViewForRenderManager( |
| 3774 RenderViewHost* render_view_host, | 3774 RenderViewHost* render_view_host, |
| 3775 int opener_route_id, | 3775 int opener_route_id, |
| 3776 int proxy_routing_id, |
| 3776 CrossProcessFrameConnector* frame_connector) { | 3777 CrossProcessFrameConnector* frame_connector) { |
| 3777 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager"); | 3778 TRACE_EVENT0("browser", "WebContentsImpl::CreateRenderViewForRenderManager"); |
| 3778 // Can be NULL during tests. | 3779 // Can be NULL during tests. |
| 3779 RenderWidgetHostViewBase* rwh_view; | 3780 RenderWidgetHostViewBase* rwh_view; |
| 3780 // TODO(kenrb): RenderWidgetHostViewChildFrame special casing is temporary | 3781 // TODO(kenrb): RenderWidgetHostViewChildFrame special casing is temporary |
| 3781 // until RenderWidgetHost is attached to RenderFrameHost. We need to special | 3782 // until RenderWidgetHost is attached to RenderFrameHost. We need to special |
| 3782 // case this because RWH is still a base class of RenderViewHost, and child | 3783 // case this because RWH is still a base class of RenderViewHost, and child |
| 3783 // frame RWHVs are unique in that they do not have their own WebContents. | 3784 // frame RWHVs are unique in that they do not have their own WebContents. |
| 3784 if (frame_connector) { | 3785 if (frame_connector) { |
| 3785 RenderWidgetHostViewChildFrame* rwh_view_child = | 3786 RenderWidgetHostViewChildFrame* rwh_view_child = |
| 3786 new RenderWidgetHostViewChildFrame(render_view_host); | 3787 new RenderWidgetHostViewChildFrame(render_view_host); |
| 3787 frame_connector->set_view(rwh_view_child); | 3788 frame_connector->set_view(rwh_view_child); |
| 3788 rwh_view = rwh_view_child; | 3789 rwh_view = rwh_view_child; |
| 3789 } else { | 3790 } else { |
| 3790 rwh_view = view_->CreateViewForWidget(render_view_host); | 3791 rwh_view = view_->CreateViewForWidget(render_view_host); |
| 3791 } | 3792 } |
| 3792 | 3793 |
| 3793 // Now that the RenderView has been created, we need to tell it its size. | 3794 // Now that the RenderView has been created, we need to tell it its size. |
| 3794 if (rwh_view) | 3795 if (rwh_view) |
| 3795 rwh_view->SetSize(GetSizeForNewRenderView()); | 3796 rwh_view->SetSize(GetSizeForNewRenderView()); |
| 3796 | 3797 |
| 3797 // Make sure we use the correct starting page_id in the new RenderView. | 3798 // Make sure we use the correct starting page_id in the new RenderView. |
| 3798 UpdateMaxPageIDIfNecessary(render_view_host); | 3799 UpdateMaxPageIDIfNecessary(render_view_host); |
| 3799 int32 max_page_id = | 3800 int32 max_page_id = |
| 3800 GetMaxPageIDForSiteInstance(render_view_host->GetSiteInstance()); | 3801 GetMaxPageIDForSiteInstance(render_view_host->GetSiteInstance()); |
| 3801 | 3802 |
| 3802 if (!static_cast<RenderViewHostImpl*>( | 3803 if (!static_cast<RenderViewHostImpl*>( |
| 3803 render_view_host)->CreateRenderView(base::string16(), | 3804 render_view_host)->CreateRenderView(base::string16(), |
| 3804 opener_route_id, | 3805 opener_route_id, |
| 3806 proxy_routing_id, |
| 3805 max_page_id, | 3807 max_page_id, |
| 3806 created_with_opener_)) { | 3808 created_with_opener_)) { |
| 3807 return false; | 3809 return false; |
| 3808 } | 3810 } |
| 3809 | 3811 |
| 3810 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) | 3812 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(OS_ANDROID) |
| 3811 // Force a ViewMsg_Resize to be sent, needed to make plugins show up on | 3813 // Force a ViewMsg_Resize to be sent, needed to make plugins show up on |
| 3812 // linux. See crbug.com/83941. | 3814 // linux. See crbug.com/83941. |
| 3813 if (rwh_view) { | 3815 if (rwh_view) { |
| 3814 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost()) | 3816 if (RenderWidgetHost* render_widget_host = rwh_view->GetRenderWidgetHost()) |
| (...skipping 15 matching lines...) Expand all Loading... |
| 3830 if (!web_contents_android) { | 3832 if (!web_contents_android) { |
| 3831 web_contents_android = new WebContentsAndroid(this); | 3833 web_contents_android = new WebContentsAndroid(this); |
| 3832 SetUserData(kWebContentsAndroidKey, web_contents_android); | 3834 SetUserData(kWebContentsAndroidKey, web_contents_android); |
| 3833 } | 3835 } |
| 3834 return web_contents_android->GetJavaObject(); | 3836 return web_contents_android->GetJavaObject(); |
| 3835 } | 3837 } |
| 3836 | 3838 |
| 3837 bool WebContentsImpl::CreateRenderViewForInitialEmptyDocument() { | 3839 bool WebContentsImpl::CreateRenderViewForInitialEmptyDocument() { |
| 3838 return CreateRenderViewForRenderManager(GetRenderViewHost(), | 3840 return CreateRenderViewForRenderManager(GetRenderViewHost(), |
| 3839 MSG_ROUTING_NONE, | 3841 MSG_ROUTING_NONE, |
| 3842 MSG_ROUTING_NONE, |
| 3840 NULL); | 3843 NULL); |
| 3841 } | 3844 } |
| 3842 | 3845 |
| 3843 #elif defined(OS_MACOSX) | 3846 #elif defined(OS_MACOSX) |
| 3844 | 3847 |
| 3845 void WebContentsImpl::SetAllowOverlappingViews(bool overlapping) { | 3848 void WebContentsImpl::SetAllowOverlappingViews(bool overlapping) { |
| 3846 view_->SetAllowOverlappingViews(overlapping); | 3849 view_->SetAllowOverlappingViews(overlapping); |
| 3847 } | 3850 } |
| 3848 | 3851 |
| 3849 bool WebContentsImpl::GetAllowOverlappingViews() { | 3852 bool WebContentsImpl::GetAllowOverlappingViews() { |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3965 | 3968 |
| 3966 void WebContentsImpl::OnPreferredSizeChanged(const gfx::Size& old_size) { | 3969 void WebContentsImpl::OnPreferredSizeChanged(const gfx::Size& old_size) { |
| 3967 if (!delegate_) | 3970 if (!delegate_) |
| 3968 return; | 3971 return; |
| 3969 const gfx::Size new_size = GetPreferredSize(); | 3972 const gfx::Size new_size = GetPreferredSize(); |
| 3970 if (new_size != old_size) | 3973 if (new_size != old_size) |
| 3971 delegate_->UpdatePreferredSize(this, new_size); | 3974 delegate_->UpdatePreferredSize(this, new_size); |
| 3972 } | 3975 } |
| 3973 | 3976 |
| 3974 } // namespace content | 3977 } // namespace content |
| OLD | NEW |