Index: cc/layers/render_surface_impl.cc |
diff --git a/cc/layers/render_surface_impl.cc b/cc/layers/render_surface_impl.cc |
index e980a2fd20568577da3c5137a243d0f434b2ec9a..32a29fe8ca3882d58b695dee3cefac3b962aa1a1 100644 |
--- a/cc/layers/render_surface_impl.cc |
+++ b/cc/layers/render_surface_impl.cc |
@@ -153,6 +153,10 @@ bool RenderSurfaceImpl::HasCopyRequest() const { |
return OwningEffectNode()->has_copy_request; |
} |
+bool RenderSurfaceImpl::CacheRenderSurface() const { |
+ return OwningEffectNode()->cache_render_surface; |
+} |
+ |
int RenderSurfaceImpl::TransformTreeIndex() const { |
return OwningEffectNode()->transform_id; |
} |
@@ -202,7 +206,7 @@ gfx::Rect RenderSurfaceImpl::CalculateExpandedClipForFilters( |
} |
gfx::Rect RenderSurfaceImpl::CalculateClippedAccumulatedContentRect() { |
- if (HasCopyRequest() || !is_clipped()) |
+ if (CacheRenderSurface() || HasCopyRequest() || !is_clipped()) |
return accumulated_content_rect(); |
if (accumulated_content_rect().IsEmpty()) |
@@ -337,6 +341,10 @@ void RenderSurfaceImpl::NoteAncestorPropertyChanged() { |
ancestor_property_changed_ = true; |
} |
+bool RenderSurfaceImpl::HasDamageFromeContributingContent() const { |
+ return damage_tracker_->has_damage_from_contributing_content(); |
+} |
+ |
gfx::Rect RenderSurfaceImpl::GetDamageRect() const { |
gfx::Rect damage_rect; |
bool is_valid_rect = damage_tracker_->GetDamageRectIfValid(&damage_rect); |
@@ -358,6 +366,9 @@ std::unique_ptr<RenderPass> RenderSurfaceImpl::CreateRenderPass() { |
draw_properties_.screen_space_transform); |
pass->filters = Filters(); |
pass->background_filters = BackgroundFilters(); |
+ pass->cache_render_surface = CacheRenderSurface(); |
+ pass->has_damage_from_contributing_content = |
+ HasDamageFromeContributingContent(); |
return pass; |
} |