Index: cc/trees/damage_tracker_unittest.cc |
diff --git a/cc/trees/damage_tracker_unittest.cc b/cc/trees/damage_tracker_unittest.cc |
index fc67b7d3904d965629ad5a9fe7f368f1bdd2e645..3f6085bce14cf7d6a05f33a4f72c92fe52b73ad8 100644 |
--- a/cc/trees/damage_tracker_unittest.cc |
+++ b/cc/trees/damage_tracker_unittest.cc |
@@ -28,6 +28,7 @@ namespace { |
void ExecuteCalculateDrawProperties(LayerImpl* root, |
float device_scale_factor, |
+ bool skip_verify_visible_rect_calculations, |
LayerImplList* render_surface_layer_list) { |
// Sanity check: The test itself should create the root layer's render |
// surface, so that the surface (and its damage tracker) can |
@@ -37,6 +38,8 @@ void ExecuteCalculateDrawProperties(LayerImpl* root, |
FakeLayerTreeHostImpl::RecursiveUpdateNumChildren(root); |
LayerTreeHostCommon::CalcDrawPropsImplInputsForTesting inputs( |
root, root->bounds(), device_scale_factor, render_surface_layer_list); |
+ if (skip_verify_visible_rect_calculations) |
+ inputs.verify_visible_rect_calculations = false; |
LayerTreeHostCommon::CalculateDrawPropertiesForTesting(&inputs); |
ASSERT_TRUE(root->render_surface()); |
} |
@@ -48,7 +51,10 @@ void ClearDamageForAllSurfaces(LayerImpl* root) { |
} |
} |
-void EmulateDrawingOneFrame(LayerImpl* root, float device_scale_factor = 1.f) { |
+void EmulateDrawingOneFrame( |
+ LayerImpl* root, |
+ float device_scale_factor = 1.f, |
+ bool skip_verify_visible_rect_calculations = false) { |
// This emulates only steps that are relevant to testing the damage tracker: |
// 1. computing the render passes and layerlists |
// 2. updating all damage trackers in the correct order |
@@ -57,6 +63,7 @@ void EmulateDrawingOneFrame(LayerImpl* root, float device_scale_factor = 1.f) { |
LayerImplList render_surface_layer_list; |
ExecuteCalculateDrawProperties(root, device_scale_factor, |
+ skip_verify_visible_rect_calculations, |
&render_surface_layer_list); |
// Iterate back-to-front, so that damage correctly propagates from descendant |
@@ -1670,7 +1677,13 @@ TEST_F(DamageTrackerTest, HugeDamageRect) { |
child->SetBounds(gfx::Size(kBigNumber + i, kBigNumber + i)); |
child->test_properties()->transform = transform; |
root->layer_tree_impl()->property_trees()->needs_rebuild = true; |
- EmulateDrawingOneFrame(root); |
+ float device_scale_factor = 1.f; |
+ // Visible rects computed from combining clips in target space and root |
+ // space don't match because of the loss in floating point accuracy. So, we |
+ // skip verify_clip_tree_calculations. |
+ bool skip_verify_visible_rect_calculations = true; |
+ EmulateDrawingOneFrame(root, device_scale_factor, |
+ skip_verify_visible_rect_calculations); |
// The expected damage should cover the visible part of the child layer, |
// which is (0, 0, i, i) in the viewport. |