Index: cc/trees/damage_tracker.cc |
diff --git a/cc/trees/damage_tracker.cc b/cc/trees/damage_tracker.cc |
index 3103485e39be6661bfe110f5d4884b7f4fcacf21..7b14d18cdeda257ca6ea5c55a0bb74c0b4493eac 100644 |
--- a/cc/trees/damage_tracker.cc |
+++ b/cc/trees/damage_tracker.cc |
@@ -51,7 +51,7 @@ static inline void ExpandDamageRectInsideRectWithFilters( |
void DamageTracker::UpdateDamageTrackingState( |
const LayerImplList& layer_list, |
- int target_surface_layer_id, |
+ const RenderSurfaceImpl* target_surface, |
bool target_surface_property_changed_only_from_descendant, |
const gfx::Rect& target_surface_content_rect, |
LayerImpl* target_surface_mask_layer, |
@@ -129,7 +129,7 @@ void DamageTracker::UpdateDamageTrackingState( |
// the damage will be for this frame, because we need to update the damage |
// tracker state to correctly track the next frame. |
gfx::Rect damage_from_active_layers = |
- TrackDamageFromActiveLayers(layer_list, target_surface_layer_id); |
+ TrackDamageFromActiveLayers(layer_list, target_surface); |
gfx::Rect damage_from_surface_mask = |
TrackDamageFromSurfaceMask(target_surface_mask_layer); |
gfx::Rect damage_from_leftover_rects = TrackDamageFromLeftoverRects(); |
@@ -172,7 +172,7 @@ DamageTracker::RectMapData& DamageTracker::RectDataForLayer( |
gfx::Rect DamageTracker::TrackDamageFromActiveLayers( |
const LayerImplList& layer_list, |
- int target_surface_layer_id) { |
+ const RenderSurfaceImpl* target_surface) { |
gfx::Rect damage_rect; |
for (size_t layer_index = 0; layer_index < layer_list.size(); ++layer_index) { |
@@ -184,8 +184,8 @@ gfx::Rect DamageTracker::TrackDamageFromActiveLayers( |
// HUD damage rect visualization. |
if (layer == layer->layer_tree_impl()->hud_layer()) |
continue; |
- if (LayerTreeHostCommon::RenderSurfaceContributesToTarget<LayerImpl>( |
- layer, target_surface_layer_id)) |
+ |
+ if (layer->render_surface() && layer->render_surface() != target_surface) |
ExtendDamageForRenderSurface(layer, &damage_rect); |
else |
ExtendDamageForLayer(layer, &damage_rect); |