| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/HTMLNames.h" | 5 #include "core/HTMLNames.h" |
| 6 #include "core/frame/FrameView.h" | 6 #include "core/frame/FrameView.h" |
| 7 #include "core/layout/LayoutTestHelper.h" | 7 #include "core/layout/LayoutTestHelper.h" |
| 8 #include "core/layout/LayoutView.h" | 8 #include "core/layout/LayoutView.h" |
| 9 #include "core/paint/PaintLayer.h" | 9 #include "core/paint/PaintLayer.h" |
| 10 #include "platform/graphics/GraphicsLayer.h" | 10 #include "platform/graphics/GraphicsLayer.h" |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 | 71 |
| 72 TEST_P(BoxPaintInvalidatorTest, IncrementalInvalidationExpand) { | 72 TEST_P(BoxPaintInvalidatorTest, IncrementalInvalidationExpand) { |
| 73 GetDocument().View()->SetTracksPaintInvalidations(true); | 73 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 74 Element* target = GetDocument().getElementById("target"); | 74 Element* target = GetDocument().getElementById("target"); |
| 75 target->setAttribute(HTMLNames::styleAttr, "width: 100px; height: 200px"); | 75 target->setAttribute(HTMLNames::styleAttr, "width: 100px; height: 200px"); |
| 76 GetDocument().View()->UpdateAllLifecyclePhases(); | 76 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 77 const auto& raster_invalidations = | 77 const auto& raster_invalidations = |
| 78 GetRasterInvalidationTracking()->invalidations; | 78 GetRasterInvalidationTracking()->invalidations; |
| 79 ASSERT_EQ(2u, raster_invalidations.size()); | 79 ASSERT_EQ(2u, raster_invalidations.size()); |
| 80 EXPECT_EQ(IntRect(60, 0, 60, 240), raster_invalidations[0].rect); | 80 EXPECT_EQ(IntRect(60, 0, 60, 240), raster_invalidations[0].rect); |
| 81 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 81 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 82 raster_invalidations[0].reason); |
| 82 EXPECT_EQ(IntRect(0, 120, 120, 120), raster_invalidations[1].rect); | 83 EXPECT_EQ(IntRect(0, 120, 120, 120), raster_invalidations[1].rect); |
| 83 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[1].reason); | 84 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 85 raster_invalidations[1].reason); |
| 84 GetDocument().View()->SetTracksPaintInvalidations(false); | 86 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 85 } | 87 } |
| 86 | 88 |
| 87 TEST_P(BoxPaintInvalidatorTest, IncrementalInvalidationShrink) { | 89 TEST_P(BoxPaintInvalidatorTest, IncrementalInvalidationShrink) { |
| 88 GetDocument().View()->SetTracksPaintInvalidations(true); | 90 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 89 Element* target = GetDocument().getElementById("target"); | 91 Element* target = GetDocument().getElementById("target"); |
| 90 target->setAttribute(HTMLNames::styleAttr, "width: 20px; height: 80px"); | 92 target->setAttribute(HTMLNames::styleAttr, "width: 20px; height: 80px"); |
| 91 GetDocument().View()->UpdateAllLifecyclePhases(); | 93 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 92 const auto& raster_invalidations = | 94 const auto& raster_invalidations = |
| 93 GetRasterInvalidationTracking()->invalidations; | 95 GetRasterInvalidationTracking()->invalidations; |
| 94 ASSERT_EQ(2u, raster_invalidations.size()); | 96 ASSERT_EQ(2u, raster_invalidations.size()); |
| 95 EXPECT_EQ(IntRect(30, 0, 40, 140), raster_invalidations[0].rect); | 97 EXPECT_EQ(IntRect(30, 0, 40, 140), raster_invalidations[0].rect); |
| 96 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 98 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 99 raster_invalidations[0].reason); |
| 97 EXPECT_EQ(IntRect(0, 100, 70, 40), raster_invalidations[1].rect); | 100 EXPECT_EQ(IntRect(0, 100, 70, 40), raster_invalidations[1].rect); |
| 98 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[1].reason); | 101 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 102 raster_invalidations[1].reason); |
| 99 GetDocument().View()->SetTracksPaintInvalidations(false); | 103 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 100 } | 104 } |
| 101 | 105 |
| 102 TEST_P(BoxPaintInvalidatorTest, IncrementalInvalidationMixed) { | 106 TEST_P(BoxPaintInvalidatorTest, IncrementalInvalidationMixed) { |
| 103 GetDocument().View()->SetTracksPaintInvalidations(true); | 107 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 104 Element* target = GetDocument().getElementById("target"); | 108 Element* target = GetDocument().getElementById("target"); |
| 105 target->setAttribute(HTMLNames::styleAttr, "width: 100px; height: 80px"); | 109 target->setAttribute(HTMLNames::styleAttr, "width: 100px; height: 80px"); |
| 106 GetDocument().View()->UpdateAllLifecyclePhases(); | 110 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 107 const auto& raster_invalidations = | 111 const auto& raster_invalidations = |
| 108 GetRasterInvalidationTracking()->invalidations; | 112 GetRasterInvalidationTracking()->invalidations; |
| 109 ASSERT_EQ(2u, raster_invalidations.size()); | 113 ASSERT_EQ(2u, raster_invalidations.size()); |
| 110 EXPECT_EQ(IntRect(60, 0, 60, 120), raster_invalidations[0].rect); | 114 EXPECT_EQ(IntRect(60, 0, 60, 120), raster_invalidations[0].rect); |
| 111 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 115 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 116 raster_invalidations[0].reason); |
| 112 EXPECT_EQ(IntRect(0, 100, 70, 40), raster_invalidations[1].rect); | 117 EXPECT_EQ(IntRect(0, 100, 70, 40), raster_invalidations[1].rect); |
| 113 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[1].reason); | 118 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 119 raster_invalidations[1].reason); |
| 114 GetDocument().View()->SetTracksPaintInvalidations(false); | 120 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 115 } | 121 } |
| 116 | 122 |
| 117 TEST_P(BoxPaintInvalidatorTest, SubpixelVisualRectChagne) { | 123 TEST_P(BoxPaintInvalidatorTest, SubpixelVisualRectChagne) { |
| 118 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( | 124 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( |
| 119 true); | 125 true); |
| 120 | 126 |
| 121 Element* target = GetDocument().getElementById("target"); | 127 Element* target = GetDocument().getElementById("target"); |
| 122 | 128 |
| 123 GetDocument().View()->SetTracksPaintInvalidations(true); | 129 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 124 target->setAttribute(HTMLNames::styleAttr, "width: 100.6px; height: 70.3px"); | 130 target->setAttribute(HTMLNames::styleAttr, "width: 100.6px; height: 70.3px"); |
| 125 GetDocument().View()->UpdateAllLifecyclePhases(); | 131 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 126 const auto* raster_invalidations = | 132 const auto* raster_invalidations = |
| 127 &GetRasterInvalidationTracking()->invalidations; | 133 &GetRasterInvalidationTracking()->invalidations; |
| 128 ASSERT_EQ(2u, raster_invalidations->size()); | 134 ASSERT_EQ(2u, raster_invalidations->size()); |
| 129 EXPECT_EQ(IntRect(60, 0, 61, 111), (*raster_invalidations)[0].rect); | 135 EXPECT_EQ(IntRect(60, 0, 61, 111), (*raster_invalidations)[0].rect); |
| 130 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); | 136 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 137 (*raster_invalidations)[0].reason); |
| 131 EXPECT_EQ(IntRect(0, 90, 70, 50), (*raster_invalidations)[1].rect); | 138 EXPECT_EQ(IntRect(0, 90, 70, 50), (*raster_invalidations)[1].rect); |
| 132 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[1].reason); | 139 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 140 (*raster_invalidations)[1].reason); |
| 133 GetDocument().View()->SetTracksPaintInvalidations(false); | 141 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 134 | 142 |
| 135 GetDocument().View()->SetTracksPaintInvalidations(true); | 143 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 136 target->setAttribute(HTMLNames::styleAttr, "width: 50px; height: 100px"); | 144 target->setAttribute(HTMLNames::styleAttr, "width: 50px; height: 100px"); |
| 137 GetDocument().View()->UpdateAllLifecyclePhases(); | 145 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 138 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; | 146 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; |
| 139 ASSERT_EQ(2u, raster_invalidations->size()); | 147 ASSERT_EQ(2u, raster_invalidations->size()); |
| 140 EXPECT_EQ(IntRect(60, 0, 61, 111), (*raster_invalidations)[0].rect); | 148 EXPECT_EQ(IntRect(60, 0, 61, 111), (*raster_invalidations)[0].rect); |
| 141 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); | 149 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 150 (*raster_invalidations)[0].reason); |
| 142 EXPECT_EQ(IntRect(0, 90, 70, 50), (*raster_invalidations)[1].rect); | 151 EXPECT_EQ(IntRect(0, 90, 70, 50), (*raster_invalidations)[1].rect); |
| 143 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[1].reason); | 152 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 153 (*raster_invalidations)[1].reason); |
| 144 GetDocument().View()->SetTracksPaintInvalidations(false); | 154 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 145 } | 155 } |
| 146 | 156 |
| 147 TEST_P(BoxPaintInvalidatorTest, SubpixelVisualRectChangeWithTransform) { | 157 TEST_P(BoxPaintInvalidatorTest, SubpixelVisualRectChangeWithTransform) { |
| 148 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( | 158 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( |
| 149 true); | 159 true); |
| 150 | 160 |
| 151 Element* target = GetDocument().getElementById("target"); | 161 Element* target = GetDocument().getElementById("target"); |
| 152 target->setAttribute(HTMLNames::classAttr, "border transform"); | 162 target->setAttribute(HTMLNames::classAttr, "border transform"); |
| 153 GetDocument().View()->UpdateAllLifecyclePhases(); | 163 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 154 | 164 |
| 155 GetDocument().View()->SetTracksPaintInvalidations(true); | 165 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 156 target->setAttribute(HTMLNames::styleAttr, "width: 100.6px; height: 70.3px"); | 166 target->setAttribute(HTMLNames::styleAttr, "width: 100.6px; height: 70.3px"); |
| 157 GetDocument().View()->UpdateAllLifecyclePhases(); | 167 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 158 const auto* raster_invalidations = | 168 const auto* raster_invalidations = |
| 159 &GetRasterInvalidationTracking()->invalidations; | 169 &GetRasterInvalidationTracking()->invalidations; |
| 160 ASSERT_EQ(2u, raster_invalidations->size()); | 170 ASSERT_EQ(2u, raster_invalidations->size()); |
| 161 EXPECT_EQ(IntRect(0, 0, 140, 280), (*raster_invalidations)[0].rect); | 171 EXPECT_EQ(IntRect(0, 0, 140, 280), (*raster_invalidations)[0].rect); |
| 162 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 172 EXPECT_EQ(PaintInvalidationReason::kGeometry, |
| 163 (*raster_invalidations)[0].reason); | 173 (*raster_invalidations)[0].reason); |
| 164 EXPECT_EQ(IntRect(0, 0, 242, 222), (*raster_invalidations)[1].rect); | 174 EXPECT_EQ(IntRect(0, 0, 242, 222), (*raster_invalidations)[1].rect); |
| 165 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 175 EXPECT_EQ(PaintInvalidationReason::kGeometry, |
| 166 (*raster_invalidations)[1].reason); | 176 (*raster_invalidations)[1].reason); |
| 167 GetDocument().View()->SetTracksPaintInvalidations(false); | 177 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 168 | 178 |
| 169 GetDocument().View()->SetTracksPaintInvalidations(true); | 179 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 170 target->setAttribute(HTMLNames::styleAttr, "width: 50px; height: 100px"); | 180 target->setAttribute(HTMLNames::styleAttr, "width: 50px; height: 100px"); |
| 171 GetDocument().View()->UpdateAllLifecyclePhases(); | 181 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 172 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; | 182 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; |
| 173 ASSERT_EQ(2u, raster_invalidations->size()); | 183 ASSERT_EQ(2u, raster_invalidations->size()); |
| 174 EXPECT_EQ(IntRect(0, 0, 242, 222), (*raster_invalidations)[0].rect); | 184 EXPECT_EQ(IntRect(0, 0, 242, 222), (*raster_invalidations)[0].rect); |
| 175 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 185 EXPECT_EQ(PaintInvalidationReason::kGeometry, |
| 176 (*raster_invalidations)[0].reason); | 186 (*raster_invalidations)[0].reason); |
| 177 EXPECT_EQ(IntRect(0, 0, 140, 280), (*raster_invalidations)[1].rect); | 187 EXPECT_EQ(IntRect(0, 0, 140, 280), (*raster_invalidations)[1].rect); |
| 178 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 188 EXPECT_EQ(PaintInvalidationReason::kGeometry, |
| 179 (*raster_invalidations)[1].reason); | 189 (*raster_invalidations)[1].reason); |
| 180 GetDocument().View()->SetTracksPaintInvalidations(false); | 190 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 181 } | 191 } |
| 182 | 192 |
| 183 TEST_P(BoxPaintInvalidatorTest, SubpixelWithinPixelsChange) { | 193 TEST_P(BoxPaintInvalidatorTest, SubpixelWithinPixelsChange) { |
| 184 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( | 194 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( |
| 185 true); | 195 true); |
| 186 | 196 |
| 187 Element* target = GetDocument().getElementById("target"); | 197 Element* target = GetDocument().getElementById("target"); |
| 188 LayoutObject* target_object = target->GetLayoutObject(); | 198 LayoutObject* target_object = target->GetLayoutObject(); |
| 189 EXPECT_EQ(LayoutRect(0, 0, 70, 140), target_object->VisualRect()); | 199 EXPECT_EQ(LayoutRect(0, 0, 70, 140), target_object->VisualRect()); |
| 190 | 200 |
| 191 GetDocument().View()->SetTracksPaintInvalidations(true); | 201 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 192 target->setAttribute(HTMLNames::styleAttr, | 202 target->setAttribute(HTMLNames::styleAttr, |
| 193 "margin-top: 0.6px; width: 50px; height: 99.3px"); | 203 "margin-top: 0.6px; width: 50px; height: 99.3px"); |
| 194 GetDocument().View()->UpdateAllLifecyclePhases(); | 204 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 195 EXPECT_EQ(LayoutRect(LayoutUnit(), LayoutUnit(0.6), LayoutUnit(70), | 205 EXPECT_EQ(LayoutRect(LayoutUnit(), LayoutUnit(0.6), LayoutUnit(70), |
| 196 LayoutUnit(139.3)), | 206 LayoutUnit(139.3)), |
| 197 target_object->VisualRect()); | 207 target_object->VisualRect()); |
| 198 const auto* raster_invalidations = | 208 const auto* raster_invalidations = |
| 199 &GetRasterInvalidationTracking()->invalidations; | 209 &GetRasterInvalidationTracking()->invalidations; |
| 200 ASSERT_EQ(1u, raster_invalidations->size()); | 210 ASSERT_EQ(1u, raster_invalidations->size()); |
| 201 EXPECT_EQ(IntRect(0, 0, 70, 140), (*raster_invalidations)[0].rect); | 211 EXPECT_EQ(IntRect(0, 0, 70, 140), (*raster_invalidations)[0].rect); |
| 202 EXPECT_EQ(kPaintInvalidationBoundsChange, (*raster_invalidations)[0].reason); | 212 EXPECT_EQ(PaintInvalidationReason::kGeometry, |
| 213 (*raster_invalidations)[0].reason); |
| 203 GetDocument().View()->SetTracksPaintInvalidations(false); | 214 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 204 | 215 |
| 205 GetDocument().View()->SetTracksPaintInvalidations(true); | 216 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 206 target->setAttribute(HTMLNames::styleAttr, | 217 target->setAttribute(HTMLNames::styleAttr, |
| 207 "margin-top: 0.6px; width: 49.3px; height: 98.5px"); | 218 "margin-top: 0.6px; width: 49.3px; height: 98.5px"); |
| 208 GetDocument().View()->UpdateAllLifecyclePhases(); | 219 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 209 EXPECT_EQ(LayoutRect(LayoutUnit(), LayoutUnit(0.6), LayoutUnit(69.3), | 220 EXPECT_EQ(LayoutRect(LayoutUnit(), LayoutUnit(0.6), LayoutUnit(69.3), |
| 210 LayoutUnit(138.5)), | 221 LayoutUnit(138.5)), |
| 211 target_object->VisualRect()); | 222 target_object->VisualRect()); |
| 212 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; | 223 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; |
| 213 ASSERT_EQ(2u, raster_invalidations->size()); | 224 ASSERT_EQ(2u, raster_invalidations->size()); |
| 214 EXPECT_EQ(IntRect(59, 0, 11, 140), (*raster_invalidations)[0].rect); | 225 EXPECT_EQ(IntRect(59, 0, 11, 140), (*raster_invalidations)[0].rect); |
| 215 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); | 226 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 227 (*raster_invalidations)[0].reason); |
| 216 EXPECT_EQ(IntRect(0, 119, 70, 21), (*raster_invalidations)[1].rect); | 228 EXPECT_EQ(IntRect(0, 119, 70, 21), (*raster_invalidations)[1].rect); |
| 217 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[1].reason); | 229 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 230 (*raster_invalidations)[1].reason); |
| 218 GetDocument().View()->SetTracksPaintInvalidations(false); | 231 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 219 } | 232 } |
| 220 | 233 |
| 221 TEST_P(BoxPaintInvalidatorTest, ResizeRotated) { | 234 TEST_P(BoxPaintInvalidatorTest, ResizeRotated) { |
| 222 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( | 235 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( |
| 223 true); | 236 true); |
| 224 | 237 |
| 225 Element* target = GetDocument().getElementById("target"); | 238 Element* target = GetDocument().getElementById("target"); |
| 226 target->setAttribute(HTMLNames::styleAttr, "transform: rotate(45deg)"); | 239 target->setAttribute(HTMLNames::styleAttr, "transform: rotate(45deg)"); |
| 227 GetDocument().View()->UpdateAllLifecyclePhases(); | 240 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 228 | 241 |
| 229 // Should do full invalidation a rotated object is resized. | 242 // Should do full invalidation a rotated object is resized. |
| 230 GetDocument().View()->SetTracksPaintInvalidations(true); | 243 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 231 target->setAttribute(HTMLNames::styleAttr, | 244 target->setAttribute(HTMLNames::styleAttr, |
| 232 "transform: rotate(45deg); width: 200px"); | 245 "transform: rotate(45deg); width: 200px"); |
| 233 GetDocument().View()->UpdateAllLifecyclePhases(); | 246 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 234 const auto* raster_invalidations = | 247 const auto* raster_invalidations = |
| 235 &GetRasterInvalidationTracking()->invalidations; | 248 &GetRasterInvalidationTracking()->invalidations; |
| 236 ASSERT_EQ(1u, raster_invalidations->size()); | 249 ASSERT_EQ(1u, raster_invalidations->size()); |
| 237 EXPECT_EQ(IntRect(-99, 0, 255, 255), (*raster_invalidations)[0].rect); | 250 EXPECT_EQ(IntRect(-99, 0, 255, 255), (*raster_invalidations)[0].rect); |
| 238 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 251 EXPECT_EQ(PaintInvalidationReason::kGeometry, |
| 239 (*raster_invalidations)[0].reason); | 252 (*raster_invalidations)[0].reason); |
| 240 GetDocument().View()->SetTracksPaintInvalidations(false); | 253 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 241 } | 254 } |
| 242 | 255 |
| 243 TEST_P(BoxPaintInvalidatorTest, ResizeRotatedChild) { | 256 TEST_P(BoxPaintInvalidatorTest, ResizeRotatedChild) { |
| 244 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( | 257 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( |
| 245 true); | 258 true); |
| 246 | 259 |
| 247 Element* target = GetDocument().getElementById("target"); | 260 Element* target = GetDocument().getElementById("target"); |
| 248 target->setAttribute(HTMLNames::styleAttr, | 261 target->setAttribute(HTMLNames::styleAttr, |
| 249 "transform: rotate(45deg); width: 200px"); | 262 "transform: rotate(45deg); width: 200px"); |
| 250 target->setInnerHTML( | 263 target->setInnerHTML( |
| 251 "<div id=child style='width: 50px; height: 50px; background: " | 264 "<div id=child style='width: 50px; height: 50px; background: " |
| 252 "red'></div>"); | 265 "red'></div>"); |
| 253 GetDocument().View()->UpdateAllLifecyclePhases(); | 266 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 254 Element* child = GetDocument().getElementById("child"); | 267 Element* child = GetDocument().getElementById("child"); |
| 255 | 268 |
| 256 // Should do full invalidation a rotated object is resized. | 269 // Should do full invalidation a rotated object is resized. |
| 257 GetDocument().View()->SetTracksPaintInvalidations(true); | 270 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 258 child->setAttribute(HTMLNames::styleAttr, | 271 child->setAttribute(HTMLNames::styleAttr, |
| 259 "width: 100px; height: 50px; background: red"); | 272 "width: 100px; height: 50px; background: red"); |
| 260 GetDocument().View()->UpdateAllLifecyclePhases(); | 273 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 261 const auto* raster_invalidations = | 274 const auto* raster_invalidations = |
| 262 &GetRasterInvalidationTracking()->invalidations; | 275 &GetRasterInvalidationTracking()->invalidations; |
| 263 ASSERT_EQ(1u, raster_invalidations->size()); | 276 ASSERT_EQ(1u, raster_invalidations->size()); |
| 264 EXPECT_EQ(IntRect(-43, 21, 107, 107), (*raster_invalidations)[0].rect); | 277 EXPECT_EQ(IntRect(-43, 21, 107, 107), (*raster_invalidations)[0].rect); |
| 265 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 278 EXPECT_EQ(PaintInvalidationReason::kGeometry, |
| 266 (*raster_invalidations)[0].reason); | 279 (*raster_invalidations)[0].reason); |
| 267 GetDocument().View()->SetTracksPaintInvalidations(false); | 280 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 268 } | 281 } |
| 269 | 282 |
| 270 TEST_P(BoxPaintInvalidatorTest, CompositedLayoutViewResize) { | 283 TEST_P(BoxPaintInvalidatorTest, CompositedLayoutViewResize) { |
| 271 EnableCompositing(); | 284 EnableCompositing(); |
| 272 Element* target = GetDocument().getElementById("target"); | 285 Element* target = GetDocument().getElementById("target"); |
| 273 target->setAttribute(HTMLNames::classAttr, ""); | 286 target->setAttribute(HTMLNames::classAttr, ""); |
| 274 target->setAttribute(HTMLNames::styleAttr, "height: 2000px"); | 287 target->setAttribute(HTMLNames::styleAttr, "height: 2000px"); |
| 275 GetDocument().View()->UpdateAllLifecyclePhases(); | 288 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 276 | 289 |
| 277 // Resize the content. | 290 // Resize the content. |
| 278 GetDocument().View()->SetTracksPaintInvalidations(true); | 291 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 279 target->setAttribute(HTMLNames::styleAttr, "height: 3000px"); | 292 target->setAttribute(HTMLNames::styleAttr, "height: 3000px"); |
| 280 GetDocument().View()->UpdateAllLifecyclePhases(); | 293 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 281 const auto& raster_invalidations = | 294 const auto& raster_invalidations = |
| 282 GetRasterInvalidationTracking()->invalidations; | 295 GetRasterInvalidationTracking()->invalidations; |
| 283 ASSERT_EQ(1u, raster_invalidations.size()); | 296 ASSERT_EQ(1u, raster_invalidations.size()); |
| 284 EXPECT_EQ(IntRect(0, 2000, 800, 1000), raster_invalidations[0].rect); | 297 EXPECT_EQ(IntRect(0, 2000, 800, 1000), raster_invalidations[0].rect); |
| 285 EXPECT_EQ(static_cast<const DisplayItemClient*>(&GetLayoutView()), | 298 EXPECT_EQ(static_cast<const DisplayItemClient*>(&GetLayoutView()), |
| 286 raster_invalidations[0].client); | 299 raster_invalidations[0].client); |
| 287 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { | 300 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { |
| 288 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, | 301 EXPECT_EQ(PaintInvalidationReason::kBackgroundOnScrollingContentsLayer, |
| 289 raster_invalidations[0].reason); | 302 raster_invalidations[0].reason); |
| 290 } else { | 303 } else { |
| 291 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 304 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 305 raster_invalidations[0].reason); |
| 292 } | 306 } |
| 293 | 307 |
| 294 GetDocument().View()->SetTracksPaintInvalidations(false); | 308 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 295 | 309 |
| 296 // Resize the viewport. No paint invalidation. | 310 // Resize the viewport. No paint invalidation. |
| 297 GetDocument().View()->SetTracksPaintInvalidations(true); | 311 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 298 GetDocument().View()->Resize(800, 1000); | 312 GetDocument().View()->Resize(800, 1000); |
| 299 GetDocument().View()->UpdateAllLifecyclePhases(); | 313 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 300 EXPECT_FALSE(GetRasterInvalidationTracking()); | 314 EXPECT_FALSE(GetRasterInvalidationTracking()); |
| 301 GetDocument().View()->SetTracksPaintInvalidations(false); | 315 GetDocument().View()->SetTracksPaintInvalidations(false); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 314 target->setAttribute(HTMLNames::styleAttr, "height: 3000px"); | 328 target->setAttribute(HTMLNames::styleAttr, "height: 3000px"); |
| 315 GetDocument().View()->UpdateAllLifecyclePhases(); | 329 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 316 | 330 |
| 317 const auto& raster_invalidations = | 331 const auto& raster_invalidations = |
| 318 GetRasterInvalidationTracking()->invalidations; | 332 GetRasterInvalidationTracking()->invalidations; |
| 319 ASSERT_EQ(1u, raster_invalidations.size()); | 333 ASSERT_EQ(1u, raster_invalidations.size()); |
| 320 EXPECT_EQ(IntRect(0, 0, 800, 3000), raster_invalidations[0].rect); | 334 EXPECT_EQ(IntRect(0, 0, 800, 3000), raster_invalidations[0].rect); |
| 321 EXPECT_EQ(static_cast<const DisplayItemClient*>(&GetLayoutView()), | 335 EXPECT_EQ(static_cast<const DisplayItemClient*>(&GetLayoutView()), |
| 322 raster_invalidations[0].client); | 336 raster_invalidations[0].client); |
| 323 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { | 337 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { |
| 324 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, | 338 EXPECT_EQ(PaintInvalidationReason::kBackgroundOnScrollingContentsLayer, |
| 325 raster_invalidations[0].reason); | 339 raster_invalidations[0].reason); |
| 326 } else { | 340 } else { |
| 327 EXPECT_EQ(kPaintInvalidationLayoutOverflowBoxChange, | 341 EXPECT_EQ(PaintInvalidationReason::kBackground, |
| 328 raster_invalidations[0].reason); | 342 raster_invalidations[0].reason); |
| 329 } | 343 } |
| 330 | 344 |
| 331 GetDocument().View()->SetTracksPaintInvalidations(false); | 345 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 332 | 346 |
| 333 // Resize the viewport. No paint invalidation. | 347 // Resize the viewport. No paint invalidation. |
| 334 GetDocument().View()->SetTracksPaintInvalidations(true); | 348 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 335 GetDocument().View()->Resize(800, 1000); | 349 GetDocument().View()->Resize(800, 1000); |
| 336 GetDocument().View()->UpdateAllLifecyclePhases(); | 350 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 337 EXPECT_FALSE(GetRasterInvalidationTracking()); | 351 EXPECT_FALSE(GetRasterInvalidationTracking()); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 368 // Resize the iframe. | 382 // Resize the iframe. |
| 369 GetDocument().View()->SetTracksPaintInvalidations(true); | 383 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 370 iframe->setAttribute(HTMLNames::styleAttr, "height: 200px"); | 384 iframe->setAttribute(HTMLNames::styleAttr, "height: 200px"); |
| 371 GetDocument().View()->UpdateAllLifecyclePhases(); | 385 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 372 const auto& raster_invalidations = | 386 const auto& raster_invalidations = |
| 373 GetRasterInvalidationTracking()->invalidations; | 387 GetRasterInvalidationTracking()->invalidations; |
| 374 ASSERT_EQ(2u, raster_invalidations.size()); | 388 ASSERT_EQ(2u, raster_invalidations.size()); |
| 375 EXPECT_EQ(IntRect(0, 100, 100, 100), raster_invalidations[0].rect); | 389 EXPECT_EQ(IntRect(0, 100, 100, 100), raster_invalidations[0].rect); |
| 376 EXPECT_EQ(static_cast<const DisplayItemClient*>(iframe->GetLayoutObject()), | 390 EXPECT_EQ(static_cast<const DisplayItemClient*>(iframe->GetLayoutObject()), |
| 377 raster_invalidations[0].client); | 391 raster_invalidations[0].client); |
| 378 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 392 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 393 raster_invalidations[0].reason); |
| 379 EXPECT_EQ( | 394 EXPECT_EQ( |
| 380 static_cast<const DisplayItemClient*>(content->GetLayoutObject()->View()), | 395 static_cast<const DisplayItemClient*>(content->GetLayoutObject()->View()), |
| 381 raster_invalidations[1].client); | 396 raster_invalidations[1].client); |
| 382 EXPECT_EQ(IntRect(0, 100, 100, 100), raster_invalidations[1].rect); | 397 EXPECT_EQ(IntRect(0, 100, 100, 100), raster_invalidations[1].rect); |
| 383 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[1].reason); | 398 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 399 raster_invalidations[1].reason); |
| 384 GetDocument().View()->SetTracksPaintInvalidations(false); | 400 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 385 } | 401 } |
| 386 | 402 |
| 387 TEST_P(BoxPaintInvalidatorTest, NonCompositedLayoutViewGradientResize) { | 403 TEST_P(BoxPaintInvalidatorTest, NonCompositedLayoutViewGradientResize) { |
| 388 SetBodyInnerHTML( | 404 SetBodyInnerHTML( |
| 389 "<style>" | 405 "<style>" |
| 390 " body { margin: 0 }" | 406 " body { margin: 0 }" |
| 391 " iframe { display: block; width: 100px; height: 100px; border: none; }" | 407 " iframe { display: block; width: 100px; height: 100px; border: none; }" |
| 392 "</style>" | 408 "</style>" |
| 393 "<iframe id='iframe'></iframe>"); | 409 "<iframe id='iframe'></iframe>"); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 411 // Resize the content. | 427 // Resize the content. |
| 412 GetDocument().View()->SetTracksPaintInvalidations(true); | 428 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 413 content->setAttribute(HTMLNames::styleAttr, "height: 500px"); | 429 content->setAttribute(HTMLNames::styleAttr, "height: 500px"); |
| 414 GetDocument().View()->UpdateAllLifecyclePhases(); | 430 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 415 const auto* raster_invalidations = | 431 const auto* raster_invalidations = |
| 416 &GetRasterInvalidationTracking()->invalidations; | 432 &GetRasterInvalidationTracking()->invalidations; |
| 417 ASSERT_EQ(1u, raster_invalidations->size()); | 433 ASSERT_EQ(1u, raster_invalidations->size()); |
| 418 EXPECT_EQ(IntRect(0, 0, 100, 100), (*raster_invalidations)[0].rect); | 434 EXPECT_EQ(IntRect(0, 0, 100, 100), (*raster_invalidations)[0].rect); |
| 419 EXPECT_EQ(static_cast<const DisplayItemClient*>(frame_layout_view), | 435 EXPECT_EQ(static_cast<const DisplayItemClient*>(frame_layout_view), |
| 420 (*raster_invalidations)[0].client); | 436 (*raster_invalidations)[0].client); |
| 421 EXPECT_EQ(kPaintInvalidationLayoutOverflowBoxChange, | 437 EXPECT_EQ(PaintInvalidationReason::kBackground, |
| 422 (*raster_invalidations)[0].reason); | 438 (*raster_invalidations)[0].reason); |
| 423 GetDocument().View()->SetTracksPaintInvalidations(false); | 439 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 424 | 440 |
| 425 // Resize the iframe. | 441 // Resize the iframe. |
| 426 GetDocument().View()->SetTracksPaintInvalidations(true); | 442 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 427 iframe->setAttribute(HTMLNames::styleAttr, "height: 200px"); | 443 iframe->setAttribute(HTMLNames::styleAttr, "height: 200px"); |
| 428 GetDocument().View()->UpdateAllLifecyclePhases(); | 444 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 429 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; | 445 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; |
| 430 ASSERT_EQ(2u, raster_invalidations->size()); | 446 ASSERT_EQ(2u, raster_invalidations->size()); |
| 431 EXPECT_EQ(IntRect(0, 100, 100, 100), (*raster_invalidations)[0].rect); | 447 EXPECT_EQ(IntRect(0, 100, 100, 100), (*raster_invalidations)[0].rect); |
| 432 EXPECT_EQ(static_cast<const DisplayItemClient*>(iframe->GetLayoutObject()), | 448 EXPECT_EQ(static_cast<const DisplayItemClient*>(iframe->GetLayoutObject()), |
| 433 (*raster_invalidations)[0].client); | 449 (*raster_invalidations)[0].client); |
| 434 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); | 450 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 451 (*raster_invalidations)[0].reason); |
| 435 EXPECT_EQ(static_cast<const DisplayItemClient*>(frame_layout_view), | 452 EXPECT_EQ(static_cast<const DisplayItemClient*>(frame_layout_view), |
| 436 (*raster_invalidations)[1].client); | 453 (*raster_invalidations)[1].client); |
| 437 EXPECT_EQ(IntRect(0, 0, 100, 200), (*raster_invalidations)[1].rect); | 454 EXPECT_EQ(IntRect(0, 0, 100, 200), (*raster_invalidations)[1].rect); |
| 438 EXPECT_EQ(kPaintInvalidationViewBackground, | 455 EXPECT_EQ(PaintInvalidationReason::kBackground, |
| 439 (*raster_invalidations)[1].reason); | 456 (*raster_invalidations)[1].reason); |
| 440 GetDocument().View()->SetTracksPaintInvalidations(false); | 457 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 441 } | 458 } |
| 442 | 459 |
| 443 TEST_P(BoxPaintInvalidatorTest, CompositedBackgroundAttachmentLocalResize) { | 460 TEST_P(BoxPaintInvalidatorTest, CompositedBackgroundAttachmentLocalResize) { |
| 444 EnableCompositing(); | 461 EnableCompositing(); |
| 445 | 462 |
| 446 Element* target = GetDocument().getElementById("target"); | 463 Element* target = GetDocument().getElementById("target"); |
| 447 target->setAttribute(HTMLNames::classAttr, "border local-background"); | 464 target->setAttribute(HTMLNames::classAttr, "border local-background"); |
| 448 target->setAttribute(HTMLNames::styleAttr, "will-change: transform"); | 465 target->setAttribute(HTMLNames::styleAttr, "will-change: transform"); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 463 GraphicsLayer* contents_layer = target_obj->Layer()->GraphicsLayerBacking(); | 480 GraphicsLayer* contents_layer = target_obj->Layer()->GraphicsLayerBacking(); |
| 464 // No invalidation on the container layer. | 481 // No invalidation on the container layer. |
| 465 EXPECT_FALSE(container_layer->GetRasterInvalidationTracking()); | 482 EXPECT_FALSE(container_layer->GetRasterInvalidationTracking()); |
| 466 // Incremental invalidation of background on contents layer. | 483 // Incremental invalidation of background on contents layer. |
| 467 const auto& contents_raster_invalidations = | 484 const auto& contents_raster_invalidations = |
| 468 contents_layer->GetRasterInvalidationTracking()->invalidations; | 485 contents_layer->GetRasterInvalidationTracking()->invalidations; |
| 469 ASSERT_EQ(1u, contents_raster_invalidations.size()); | 486 ASSERT_EQ(1u, contents_raster_invalidations.size()); |
| 470 EXPECT_EQ(IntRect(0, 500, 500, 500), contents_raster_invalidations[0].rect); | 487 EXPECT_EQ(IntRect(0, 500, 500, 500), contents_raster_invalidations[0].rect); |
| 471 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), | 488 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), |
| 472 contents_raster_invalidations[0].client); | 489 contents_raster_invalidations[0].client); |
| 473 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, | 490 EXPECT_EQ(PaintInvalidationReason::kBackgroundOnScrollingContentsLayer, |
| 474 contents_raster_invalidations[0].reason); | 491 contents_raster_invalidations[0].reason); |
| 475 GetDocument().View()->SetTracksPaintInvalidations(false); | 492 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 476 | 493 |
| 477 // Resize the container. | 494 // Resize the container. |
| 478 GetDocument().View()->SetTracksPaintInvalidations(true); | 495 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 479 target->setAttribute(HTMLNames::styleAttr, | 496 target->setAttribute(HTMLNames::styleAttr, |
| 480 "will-change: transform; height: 200px"); | 497 "will-change: transform; height: 200px"); |
| 481 GetDocument().View()->UpdateAllLifecyclePhases(); | 498 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 482 // No invalidation on the contents layer. | 499 // No invalidation on the contents layer. |
| 483 EXPECT_FALSE(contents_layer->GetRasterInvalidationTracking()); | 500 EXPECT_FALSE(contents_layer->GetRasterInvalidationTracking()); |
| 484 // Incremental invalidation on the container layer. | 501 // Incremental invalidation on the container layer. |
| 485 const auto& container_raster_invalidations = | 502 const auto& container_raster_invalidations = |
| 486 container_layer->GetRasterInvalidationTracking()->invalidations; | 503 container_layer->GetRasterInvalidationTracking()->invalidations; |
| 487 ASSERT_EQ(1u, container_raster_invalidations.size()); | 504 ASSERT_EQ(1u, container_raster_invalidations.size()); |
| 488 EXPECT_EQ(IntRect(0, 120, 70, 120), container_raster_invalidations[0].rect); | 505 EXPECT_EQ(IntRect(0, 120, 70, 120), container_raster_invalidations[0].rect); |
| 489 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), | 506 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), |
| 490 container_raster_invalidations[0].client); | 507 container_raster_invalidations[0].client); |
| 491 EXPECT_EQ(kPaintInvalidationIncremental, | 508 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 492 container_raster_invalidations[0].reason); | 509 container_raster_invalidations[0].reason); |
| 493 GetDocument().View()->SetTracksPaintInvalidations(false); | 510 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 494 } | 511 } |
| 495 | 512 |
| 496 TEST_P(BoxPaintInvalidatorTest, | 513 TEST_P(BoxPaintInvalidatorTest, |
| 497 CompositedBackgroundAttachmentLocalGradientResize) { | 514 CompositedBackgroundAttachmentLocalGradientResize) { |
| 498 EnableCompositing(); | 515 EnableCompositing(); |
| 499 | 516 |
| 500 Element* target = GetDocument().getElementById("target"); | 517 Element* target = GetDocument().getElementById("target"); |
| 501 target->setAttribute(HTMLNames::classAttr, | 518 target->setAttribute(HTMLNames::classAttr, |
| (...skipping 17 matching lines...) Expand all Loading... |
| 519 // No invalidation on the container layer. | 536 // No invalidation on the container layer. |
| 520 EXPECT_FALSE(container_layer->GetRasterInvalidationTracking()); | 537 EXPECT_FALSE(container_layer->GetRasterInvalidationTracking()); |
| 521 // Full invalidation of background on contents layer because the gradient | 538 // Full invalidation of background on contents layer because the gradient |
| 522 // background is resized. | 539 // background is resized. |
| 523 const auto& contents_raster_invalidations = | 540 const auto& contents_raster_invalidations = |
| 524 contents_layer->GetRasterInvalidationTracking()->invalidations; | 541 contents_layer->GetRasterInvalidationTracking()->invalidations; |
| 525 ASSERT_EQ(1u, contents_raster_invalidations.size()); | 542 ASSERT_EQ(1u, contents_raster_invalidations.size()); |
| 526 EXPECT_EQ(IntRect(0, 0, 500, 1000), contents_raster_invalidations[0].rect); | 543 EXPECT_EQ(IntRect(0, 0, 500, 1000), contents_raster_invalidations[0].rect); |
| 527 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), | 544 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), |
| 528 contents_raster_invalidations[0].client); | 545 contents_raster_invalidations[0].client); |
| 529 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, | 546 EXPECT_EQ(PaintInvalidationReason::kBackgroundOnScrollingContentsLayer, |
| 530 contents_raster_invalidations[0].reason); | 547 contents_raster_invalidations[0].reason); |
| 531 GetDocument().View()->SetTracksPaintInvalidations(false); | 548 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 532 | 549 |
| 533 // Resize the container. | 550 // Resize the container. |
| 534 GetDocument().View()->SetTracksPaintInvalidations(true); | 551 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 535 target->setAttribute(HTMLNames::styleAttr, | 552 target->setAttribute(HTMLNames::styleAttr, |
| 536 "will-change: transform; height: 200px"); | 553 "will-change: transform; height: 200px"); |
| 537 GetDocument().View()->UpdateAllLifecyclePhases(); | 554 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 538 EXPECT_FALSE(contents_layer->GetRasterInvalidationTracking()); | 555 EXPECT_FALSE(contents_layer->GetRasterInvalidationTracking()); |
| 539 // Full invalidation on the container layer. | 556 // Full invalidation on the container layer. |
| 540 const auto& container_raster_invalidations = | 557 const auto& container_raster_invalidations = |
| 541 container_layer->GetRasterInvalidationTracking()->invalidations; | 558 container_layer->GetRasterInvalidationTracking()->invalidations; |
| 542 ASSERT_EQ(1u, container_raster_invalidations.size()); | 559 ASSERT_EQ(1u, container_raster_invalidations.size()); |
| 543 EXPECT_EQ(IntRect(0, 0, 70, 240), container_raster_invalidations[0].rect); | 560 EXPECT_EQ(IntRect(0, 0, 70, 240), container_raster_invalidations[0].rect); |
| 544 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), | 561 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), |
| 545 container_raster_invalidations[0].client); | 562 container_raster_invalidations[0].client); |
| 546 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 563 EXPECT_EQ(PaintInvalidationReason::kGeometry, |
| 547 container_raster_invalidations[0].reason); | 564 container_raster_invalidations[0].reason); |
| 548 GetDocument().View()->SetTracksPaintInvalidations(false); | 565 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 549 } | 566 } |
| 550 | 567 |
| 551 TEST_P(BoxPaintInvalidatorTest, NonCompositedBackgroundAttachmentLocalResize) { | 568 TEST_P(BoxPaintInvalidatorTest, NonCompositedBackgroundAttachmentLocalResize) { |
| 552 Element* target = GetDocument().getElementById("target"); | 569 Element* target = GetDocument().getElementById("target"); |
| 553 target->setAttribute(HTMLNames::classAttr, "border local-background"); | 570 target->setAttribute(HTMLNames::classAttr, "border local-background"); |
| 554 target->setInnerHTML( | 571 target->setInnerHTML( |
| 555 "<div id=child style='width: 500px; height: 500px'></div>", | 572 "<div id=child style='width: 500px; height: 500px'></div>", |
| 556 ASSERT_NO_EXCEPTION); | 573 ASSERT_NO_EXCEPTION); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 569 // Resize the container. | 586 // Resize the container. |
| 570 GetDocument().View()->SetTracksPaintInvalidations(true); | 587 GetDocument().View()->SetTracksPaintInvalidations(true); |
| 571 target->setAttribute(HTMLNames::styleAttr, "height: 200px"); | 588 target->setAttribute(HTMLNames::styleAttr, "height: 200px"); |
| 572 GetDocument().View()->UpdateAllLifecyclePhases(); | 589 GetDocument().View()->UpdateAllLifecyclePhases(); |
| 573 const auto& raster_invalidations = | 590 const auto& raster_invalidations = |
| 574 GetRasterInvalidationTracking()->invalidations; | 591 GetRasterInvalidationTracking()->invalidations; |
| 575 ASSERT_EQ(1u, raster_invalidations.size()); | 592 ASSERT_EQ(1u, raster_invalidations.size()); |
| 576 EXPECT_EQ(IntRect(0, 120, 70, 120), raster_invalidations[0].rect); | 593 EXPECT_EQ(IntRect(0, 120, 70, 120), raster_invalidations[0].rect); |
| 577 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), | 594 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), |
| 578 raster_invalidations[0].client); | 595 raster_invalidations[0].client); |
| 579 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 596 EXPECT_EQ(PaintInvalidationReason::kIncremental, |
| 597 raster_invalidations[0].reason); |
| 580 GetDocument().View()->SetTracksPaintInvalidations(false); | 598 GetDocument().View()->SetTracksPaintInvalidations(false); |
| 581 } | 599 } |
| 582 | 600 |
| 583 } // namespace blink | 601 } // namespace blink |
| OLD | NEW |