Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index 157a17d6a8edae0bbb689d3ff51549b36245b193..60536b72721e02a3b1180538c4ef128f52b4ae59 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -1197,7 +1197,7 @@ void WebContentsImpl::Observe(int type, |
void WebContentsImpl::Init(const WebContents::CreateParams& params) { |
render_manager_.Init( |
params.browser_context, params.site_instance, params.routing_id, |
- params.main_frame_routing_id); |
+ params.main_frame_routing_id, params.initially_hidden); |
view_.reset(GetContentClient()->browser()-> |
OverrideCreateWebContentsView(this, &render_view_host_delegate_view_)); |
@@ -1486,6 +1486,8 @@ void WebContentsImpl::CreateNewWindow( |
BrowserPluginGuest::CreateWithOpener(instance_id, new_contents_impl, |
GetBrowserPluginGuest(), !!new_contents_impl->opener()); |
} |
+ if (params.disposition == NEW_BACKGROUND_TAB) |
+ create_params.initially_hidden = true; |
new_contents->Init(create_params); |
// Save the window for later if we're not suppressing the opener (since it |
@@ -1546,8 +1548,9 @@ void WebContentsImpl::CreateNewWidget(int route_id, |
bool is_fullscreen, |
WebKit::WebPopupType popup_type) { |
RenderProcessHost* process = GetRenderProcessHost(); |
+ bool hidden = !should_normally_be_visible_; |
RenderWidgetHostImpl* widget_host = |
- new RenderWidgetHostImpl(this, process, route_id); |
+ new RenderWidgetHostImpl(this, process, route_id, hidden); |
created_widgets_.insert(widget_host); |
RenderWidgetHostViewPort* widget_view = RenderWidgetHostViewPort::FromRWHV( |
@@ -1765,8 +1768,9 @@ bool WebContentsImpl::NavigateToEntry( |
if (entry.GetURL().spec().size() > kMaxURLChars) |
return false; |
+ bool hidden = !should_normally_be_visible_; |
RenderViewHostImpl* dest_render_view_host = |
- static_cast<RenderViewHostImpl*>(render_manager_.Navigate(entry)); |
+ static_cast<RenderViewHostImpl*>(render_manager_.Navigate(entry, hidden)); |
if (!dest_render_view_host) |
return false; // Unable to create the desired render view host. |
@@ -3432,7 +3436,8 @@ WebPreferences WebContentsImpl::GetWebkitPrefs() { |
int WebContentsImpl::CreateSwappedOutRenderView( |
SiteInstance* instance) { |
- return render_manager_.CreateRenderView(instance, MSG_ROUTING_NONE, true); |
+ return render_manager_.CreateRenderView(instance, MSG_ROUTING_NONE, |
+ true, true); |
} |
void WebContentsImpl::OnUserGesture() { |
@@ -3602,7 +3607,8 @@ int WebContentsImpl::CreateOpenerRenderViews(SiteInstance* instance) { |
// Create a swapped out RenderView in the given SiteInstance if none exists, |
// setting its opener to the given route_id. Return the new view's route_id. |
- return render_manager_.CreateRenderView(instance, opener_route_id, true); |
+ return render_manager_.CreateRenderView(instance, opener_route_id, |
+ true, true); |
} |
NavigationControllerImpl& WebContentsImpl::GetControllerForRenderManager() { |