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