Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index 66af6cec6d026106850b51f84704ad3ce376f1a0..422e3db72567be309957c713db33259ade4c72c5 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -789,7 +789,8 @@ DrawResult LayerTreeHostImpl::CalculateRenderPasses(FrameData* frame) { |
if (root_surface_has_contributing_layers && |
root_surface_has_no_visible_damage && |
!active_tree_->property_trees()->effect_tree.HasCopyRequests() && |
- !resources_must_be_resent && !hud_wants_to_draw_) { |
+ !resources_must_be_resent && !hud_wants_to_draw_ && |
+ !frame->handle_visibility_changed) { |
TRACE_EVENT0("cc", |
"LayerTreeHostImpl::CalculateRenderPasses::EmptyDamageRect"); |
frame->has_no_damage = true; |
@@ -1088,6 +1089,9 @@ DrawResult LayerTreeHostImpl::PrepareToDraw(FrameData* frame) { |
frame->will_draw_layers.clear(); |
frame->has_no_damage = false; |
frame->may_contain_video = false; |
+ frame->handle_visibility_changed = handle_visibility_changed_; |
+ |
+ handle_visibility_changed_ = false; |
if (active_tree_->RootRenderSurface()) { |
gfx::Rect device_viewport_damage_rect = viewport_damage_rect_; |