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

Unified Diff: content/browser/renderer_host/render_widget_host_impl.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/renderer_host/render_widget_host_impl.cc
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index edd21fe5987575faff070ae5dc9e50fd355d00f0..161413c7fb76d18a3f34cabe7dce3cb25b0184e1 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -115,7 +115,8 @@ size_t RenderWidgetHost::BackingStoreMemorySize() {
RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate,
RenderProcessHost* process,
- int routing_id)
+ int routing_id,
+ bool hidden)
: view_(NULL),
renderer_initialized_(false),
hung_renderer_delay_ms_(kHungRendererDelayMs),
@@ -124,7 +125,7 @@ RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate,
routing_id_(routing_id),
surface_id_(0),
is_loading_(false),
- is_hidden_(false),
+ is_hidden_(hidden),
is_fullscreen_(false),
is_accelerated_compositing_active_(false),
repaint_ack_pending_(false),
@@ -175,9 +176,11 @@ RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate,
g_routing_id_widget_map.Get().insert(std::make_pair(
RenderWidgetHostID(process->GetID(), routing_id_), this));
process_->AddRoute(routing_id_, this);
- // Because the widget initializes as is_hidden_ == false,
- // tell the process host that we're alive.
- process_->WidgetRestored();
+
+ // If we're initially visible, tell the process host that we're alive.
+ // Otherwise we'll notify the process host when we are first shown.
+ if (!hidden)
+ process_->WidgetRestored();
accessibility_mode_ =
BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode();
@@ -479,6 +482,9 @@ bool RenderWidgetHostImpl::Send(IPC::Message* msg) {
}
void RenderWidgetHostImpl::WasHidden() {
+ if (is_hidden_)
+ return;
+
is_hidden_ = true;
// Don't bother reporting hung state when we aren't active.
@@ -499,7 +505,6 @@ void RenderWidgetHostImpl::WasHidden() {
}
void RenderWidgetHostImpl::WasShown() {
- // When we create the widget, it is created as *not* hidden.
if (!is_hidden_)
return;
is_hidden_ = false;
« no previous file with comments | « content/browser/renderer_host/render_widget_host_impl.h ('k') | content/browser/renderer_host/render_widget_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698