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

Unified Diff: content/browser/web_contents/render_view_host_manager.cc

Issue 23129015: Initialize RenderWidget(Host)(View)s with correct visibility state (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 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 side-by-side diff with in-line comments
Download patch
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) {
Charlie Reis 2013/08/19 22:18:02 Can we add a DCHECK that swapped_out implies hidde
jamesr 2013/08/19 23:50:39 Done.
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);
Charlie Reis 2013/08/19 22:18:02 Style nit: No need for one param-per-line on funct
jamesr 2013/08/19 23:50:39 Hmm. We're inconsistent on this, but sure.
if (route_id == MSG_ROUTING_NONE)
return NULL;

Powered by Google App Engine
This is Rietveld 408576698