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

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

Issue 281663002: Create RenderFrameProxyHost at time of swap-out instead of commit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix accessibility test. Created 6 years, 7 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 | Annotate | Revision Log
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 3755 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698