| Index: content/browser/web_contents/render_view_host_manager.cc
|
| diff --git a/content/browser/web_contents/render_view_host_manager.cc b/content/browser/web_contents/render_view_host_manager.cc
|
| index 9d29a09c6a349cadd2fb5281f76c3dd69444d66f..0141204b77c2ab1ea933090ab9a1c0369d462166 100644
|
| --- a/content/browser/web_contents/render_view_host_manager.cc
|
| +++ b/content/browser/web_contents/render_view_host_manager.cc
|
| @@ -74,7 +74,8 @@ RenderViewHostManager::~RenderViewHostManager() {
|
| void RenderViewHostManager::Init(BrowserContext* browser_context,
|
| SiteInstance* site_instance,
|
| int routing_id,
|
| - int main_frame_routing_id) {
|
| + int main_frame_routing_id,
|
| + bool hidden) {
|
| // Create a RenderViewHost, once we have an instance. It is important to
|
| // immediately give this SiteInstance to a RenderViewHost so that it is
|
| // ref counted.
|
| @@ -83,7 +84,7 @@ void RenderViewHostManager::Init(BrowserContext* browser_context,
|
| render_view_host_ = static_cast<RenderViewHostImpl*>(
|
| RenderViewHostFactory::Create(
|
| site_instance, render_view_delegate_, render_widget_delegate_,
|
| - routing_id, main_frame_routing_id, false));
|
| + routing_id, main_frame_routing_id, false, hidden));
|
|
|
| // Keep track of renderer processes as they start to shut down or are
|
| // crashed/killed.
|
| @@ -127,11 +128,12 @@ void RenderViewHostManager::SetPendingWebUI(const NavigationEntryImpl& entry) {
|
| }
|
|
|
| RenderViewHostImpl* RenderViewHostManager::Navigate(
|
| - const NavigationEntryImpl& entry) {
|
| + const NavigationEntryImpl& entry, bool hidden) {
|
| TRACE_EVENT0("browser", "RenderViewHostManager:Navigate");
|
| // Create a pending RenderViewHost. It will give us the one we should use
|
| RenderViewHostImpl* dest_render_view_host =
|
| - static_cast<RenderViewHostImpl*>(UpdateRendererStateForNavigate(entry));
|
| + static_cast<RenderViewHostImpl*>(
|
| + UpdateRendererStateForNavigate(entry, hidden));
|
| if (!dest_render_view_host)
|
| return NULL; // We weren't able to create a pending render view host.
|
|
|
| @@ -642,7 +644,8 @@ SiteInstance* RenderViewHostManager::GetSiteInstanceForEntry(
|
| int RenderViewHostManager::CreateRenderView(
|
| SiteInstance* instance,
|
| int opener_route_id,
|
| - bool swapped_out) {
|
| + bool swapped_out,
|
| + bool hidden) {
|
| CHECK(instance);
|
|
|
| // Check if we've already created an RVH for this SiteInstance. If so, try
|
| @@ -662,7 +665,8 @@ int RenderViewHostManager::CreateRenderView(
|
| render_widget_delegate_,
|
| MSG_ROUTING_NONE,
|
| MSG_ROUTING_NONE,
|
| - swapped_out));
|
| + swapped_out,
|
| + hidden));
|
|
|
| // If the new RVH is swapped out already, store it. Otherwise prevent the
|
| // process from exiting while we're trying to navigate in it.
|
| @@ -846,7 +850,7 @@ void RenderViewHostManager::ShutdownRenderViewHostsInSiteInstance(
|
| }
|
|
|
| RenderViewHostImpl* RenderViewHostManager::UpdateRendererStateForNavigate(
|
| - const NavigationEntryImpl& entry) {
|
| + const NavigationEntryImpl& entry, bool hidden) {
|
| // If we are cross-navigating, then we want to get back to normal and navigate
|
| // as usual.
|
| if (cross_navigation_pending_) {
|
| @@ -894,7 +898,10 @@ RenderViewHostImpl* RenderViewHostManager::UpdateRendererStateForNavigate(
|
|
|
| // Create a non-swapped-out pending RVH with the given opener and navigate
|
| // it.
|
| - int route_id = CreateRenderView(new_instance, opener_route_id, false);
|
| + int route_id = CreateRenderView(new_instance,
|
| + opener_route_id,
|
| + false,
|
| + hidden);
|
| if (route_id == MSG_ROUTING_NONE)
|
| return NULL;
|
|
|
|
|