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 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 }; | 68 }; |
69 | 69 |
70 INSTANTIATE_TEST_CASE_P(All, BoxPaintInvalidatorTest, ::testing::Bool()); | 70 INSTANTIATE_TEST_CASE_P(All, BoxPaintInvalidatorTest, ::testing::Bool()); |
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()->tracked_raster_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(kPaintInvalidationIncremental, raster_invalidations[0].reason); |
82 EXPECT_EQ(IntRect(0, 120, 120, 120), raster_invalidations[1].rect); | 82 EXPECT_EQ(IntRect(0, 120, 120, 120), raster_invalidations[1].rect); |
83 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[1].reason); | 83 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[1].reason); |
84 GetDocument().View()->SetTracksPaintInvalidations(false); | 84 GetDocument().View()->SetTracksPaintInvalidations(false); |
85 } | 85 } |
86 | 86 |
87 TEST_P(BoxPaintInvalidatorTest, IncrementalInvalidationShrink) { | 87 TEST_P(BoxPaintInvalidatorTest, IncrementalInvalidationShrink) { |
88 GetDocument().View()->SetTracksPaintInvalidations(true); | 88 GetDocument().View()->SetTracksPaintInvalidations(true); |
89 Element* target = GetDocument().getElementById("target"); | 89 Element* target = GetDocument().getElementById("target"); |
90 target->setAttribute(HTMLNames::styleAttr, "width: 20px; height: 80px"); | 90 target->setAttribute(HTMLNames::styleAttr, "width: 20px; height: 80px"); |
91 GetDocument().View()->UpdateAllLifecyclePhases(); | 91 GetDocument().View()->UpdateAllLifecyclePhases(); |
92 const auto& raster_invalidations = | 92 const auto& raster_invalidations = |
93 GetRasterInvalidationTracking()->tracked_raster_invalidations; | 93 GetRasterInvalidationTracking()->invalidations; |
94 ASSERT_EQ(2u, raster_invalidations.size()); | 94 ASSERT_EQ(2u, raster_invalidations.size()); |
95 EXPECT_EQ(IntRect(30, 0, 40, 140), raster_invalidations[0].rect); | 95 EXPECT_EQ(IntRect(30, 0, 40, 140), raster_invalidations[0].rect); |
96 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 96 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); |
97 EXPECT_EQ(IntRect(0, 100, 70, 40), raster_invalidations[1].rect); | 97 EXPECT_EQ(IntRect(0, 100, 70, 40), raster_invalidations[1].rect); |
98 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[1].reason); | 98 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[1].reason); |
99 GetDocument().View()->SetTracksPaintInvalidations(false); | 99 GetDocument().View()->SetTracksPaintInvalidations(false); |
100 } | 100 } |
101 | 101 |
102 TEST_P(BoxPaintInvalidatorTest, IncrementalInvalidationMixed) { | 102 TEST_P(BoxPaintInvalidatorTest, IncrementalInvalidationMixed) { |
103 GetDocument().View()->SetTracksPaintInvalidations(true); | 103 GetDocument().View()->SetTracksPaintInvalidations(true); |
104 Element* target = GetDocument().getElementById("target"); | 104 Element* target = GetDocument().getElementById("target"); |
105 target->setAttribute(HTMLNames::styleAttr, "width: 100px; height: 80px"); | 105 target->setAttribute(HTMLNames::styleAttr, "width: 100px; height: 80px"); |
106 GetDocument().View()->UpdateAllLifecyclePhases(); | 106 GetDocument().View()->UpdateAllLifecyclePhases(); |
107 const auto& raster_invalidations = | 107 const auto& raster_invalidations = |
108 GetRasterInvalidationTracking()->tracked_raster_invalidations; | 108 GetRasterInvalidationTracking()->invalidations; |
109 ASSERT_EQ(2u, raster_invalidations.size()); | 109 ASSERT_EQ(2u, raster_invalidations.size()); |
110 EXPECT_EQ(IntRect(60, 0, 60, 120), raster_invalidations[0].rect); | 110 EXPECT_EQ(IntRect(60, 0, 60, 120), raster_invalidations[0].rect); |
111 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 111 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); |
112 EXPECT_EQ(IntRect(0, 100, 70, 40), raster_invalidations[1].rect); | 112 EXPECT_EQ(IntRect(0, 100, 70, 40), raster_invalidations[1].rect); |
113 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[1].reason); | 113 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[1].reason); |
114 GetDocument().View()->SetTracksPaintInvalidations(false); | 114 GetDocument().View()->SetTracksPaintInvalidations(false); |
115 } | 115 } |
116 | 116 |
117 TEST_P(BoxPaintInvalidatorTest, SubpixelVisualRectChagne) { | 117 TEST_P(BoxPaintInvalidatorTest, SubpixelVisualRectChagne) { |
118 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( | 118 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( |
119 true); | 119 true); |
120 | 120 |
121 Element* target = GetDocument().getElementById("target"); | 121 Element* target = GetDocument().getElementById("target"); |
122 | 122 |
123 GetDocument().View()->SetTracksPaintInvalidations(true); | 123 GetDocument().View()->SetTracksPaintInvalidations(true); |
124 target->setAttribute(HTMLNames::styleAttr, "width: 100.6px; height: 70.3px"); | 124 target->setAttribute(HTMLNames::styleAttr, "width: 100.6px; height: 70.3px"); |
125 GetDocument().View()->UpdateAllLifecyclePhases(); | 125 GetDocument().View()->UpdateAllLifecyclePhases(); |
126 const auto* raster_invalidations = | 126 const auto* raster_invalidations = |
127 &GetRasterInvalidationTracking()->tracked_raster_invalidations; | 127 &GetRasterInvalidationTracking()->invalidations; |
128 ASSERT_EQ(2u, raster_invalidations->size()); | 128 ASSERT_EQ(2u, raster_invalidations->size()); |
129 EXPECT_EQ(IntRect(60, 0, 61, 111), (*raster_invalidations)[0].rect); | 129 EXPECT_EQ(IntRect(60, 0, 61, 111), (*raster_invalidations)[0].rect); |
130 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); | 130 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); |
131 EXPECT_EQ(IntRect(0, 90, 70, 50), (*raster_invalidations)[1].rect); | 131 EXPECT_EQ(IntRect(0, 90, 70, 50), (*raster_invalidations)[1].rect); |
132 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[1].reason); | 132 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[1].reason); |
133 GetDocument().View()->SetTracksPaintInvalidations(false); | 133 GetDocument().View()->SetTracksPaintInvalidations(false); |
134 | 134 |
135 GetDocument().View()->SetTracksPaintInvalidations(true); | 135 GetDocument().View()->SetTracksPaintInvalidations(true); |
136 target->setAttribute(HTMLNames::styleAttr, "width: 50px; height: 100px"); | 136 target->setAttribute(HTMLNames::styleAttr, "width: 50px; height: 100px"); |
137 GetDocument().View()->UpdateAllLifecyclePhases(); | 137 GetDocument().View()->UpdateAllLifecyclePhases(); |
138 raster_invalidations = | 138 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; |
139 &GetRasterInvalidationTracking()->tracked_raster_invalidations; | |
140 ASSERT_EQ(2u, raster_invalidations->size()); | 139 ASSERT_EQ(2u, raster_invalidations->size()); |
141 EXPECT_EQ(IntRect(60, 0, 61, 111), (*raster_invalidations)[0].rect); | 140 EXPECT_EQ(IntRect(60, 0, 61, 111), (*raster_invalidations)[0].rect); |
142 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); | 141 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); |
143 EXPECT_EQ(IntRect(0, 90, 70, 50), (*raster_invalidations)[1].rect); | 142 EXPECT_EQ(IntRect(0, 90, 70, 50), (*raster_invalidations)[1].rect); |
144 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[1].reason); | 143 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[1].reason); |
145 GetDocument().View()->SetTracksPaintInvalidations(false); | 144 GetDocument().View()->SetTracksPaintInvalidations(false); |
146 } | 145 } |
147 | 146 |
148 TEST_P(BoxPaintInvalidatorTest, SubpixelVisualRectChangeWithTransform) { | 147 TEST_P(BoxPaintInvalidatorTest, SubpixelVisualRectChangeWithTransform) { |
149 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( | 148 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( |
150 true); | 149 true); |
151 | 150 |
152 Element* target = GetDocument().getElementById("target"); | 151 Element* target = GetDocument().getElementById("target"); |
153 target->setAttribute(HTMLNames::classAttr, "border transform"); | 152 target->setAttribute(HTMLNames::classAttr, "border transform"); |
154 GetDocument().View()->UpdateAllLifecyclePhases(); | 153 GetDocument().View()->UpdateAllLifecyclePhases(); |
155 | 154 |
156 GetDocument().View()->SetTracksPaintInvalidations(true); | 155 GetDocument().View()->SetTracksPaintInvalidations(true); |
157 target->setAttribute(HTMLNames::styleAttr, "width: 100.6px; height: 70.3px"); | 156 target->setAttribute(HTMLNames::styleAttr, "width: 100.6px; height: 70.3px"); |
158 GetDocument().View()->UpdateAllLifecyclePhases(); | 157 GetDocument().View()->UpdateAllLifecyclePhases(); |
159 const auto* raster_invalidations = | 158 const auto* raster_invalidations = |
160 &GetRasterInvalidationTracking()->tracked_raster_invalidations; | 159 &GetRasterInvalidationTracking()->invalidations; |
161 ASSERT_EQ(2u, raster_invalidations->size()); | 160 ASSERT_EQ(2u, raster_invalidations->size()); |
162 EXPECT_EQ(IntRect(0, 0, 140, 280), (*raster_invalidations)[0].rect); | 161 EXPECT_EQ(IntRect(0, 0, 140, 280), (*raster_invalidations)[0].rect); |
163 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 162 EXPECT_EQ(kPaintInvalidationBorderBoxChange, |
164 (*raster_invalidations)[0].reason); | 163 (*raster_invalidations)[0].reason); |
165 EXPECT_EQ(IntRect(0, 0, 242, 222), (*raster_invalidations)[1].rect); | 164 EXPECT_EQ(IntRect(0, 0, 242, 222), (*raster_invalidations)[1].rect); |
166 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 165 EXPECT_EQ(kPaintInvalidationBorderBoxChange, |
167 (*raster_invalidations)[1].reason); | 166 (*raster_invalidations)[1].reason); |
168 GetDocument().View()->SetTracksPaintInvalidations(false); | 167 GetDocument().View()->SetTracksPaintInvalidations(false); |
169 | 168 |
170 GetDocument().View()->SetTracksPaintInvalidations(true); | 169 GetDocument().View()->SetTracksPaintInvalidations(true); |
171 target->setAttribute(HTMLNames::styleAttr, "width: 50px; height: 100px"); | 170 target->setAttribute(HTMLNames::styleAttr, "width: 50px; height: 100px"); |
172 GetDocument().View()->UpdateAllLifecyclePhases(); | 171 GetDocument().View()->UpdateAllLifecyclePhases(); |
173 raster_invalidations = | 172 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; |
174 &GetRasterInvalidationTracking()->tracked_raster_invalidations; | |
175 ASSERT_EQ(2u, raster_invalidations->size()); | 173 ASSERT_EQ(2u, raster_invalidations->size()); |
176 EXPECT_EQ(IntRect(0, 0, 242, 222), (*raster_invalidations)[0].rect); | 174 EXPECT_EQ(IntRect(0, 0, 242, 222), (*raster_invalidations)[0].rect); |
177 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 175 EXPECT_EQ(kPaintInvalidationBorderBoxChange, |
178 (*raster_invalidations)[0].reason); | 176 (*raster_invalidations)[0].reason); |
179 EXPECT_EQ(IntRect(0, 0, 140, 280), (*raster_invalidations)[1].rect); | 177 EXPECT_EQ(IntRect(0, 0, 140, 280), (*raster_invalidations)[1].rect); |
180 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 178 EXPECT_EQ(kPaintInvalidationBorderBoxChange, |
181 (*raster_invalidations)[1].reason); | 179 (*raster_invalidations)[1].reason); |
182 GetDocument().View()->SetTracksPaintInvalidations(false); | 180 GetDocument().View()->SetTracksPaintInvalidations(false); |
183 } | 181 } |
184 | 182 |
185 TEST_P(BoxPaintInvalidatorTest, SubpixelWithinPixelsChange) { | 183 TEST_P(BoxPaintInvalidatorTest, SubpixelWithinPixelsChange) { |
186 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( | 184 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( |
187 true); | 185 true); |
188 | 186 |
189 Element* target = GetDocument().getElementById("target"); | 187 Element* target = GetDocument().getElementById("target"); |
190 LayoutObject* target_object = target->GetLayoutObject(); | 188 LayoutObject* target_object = target->GetLayoutObject(); |
191 EXPECT_EQ(LayoutRect(0, 0, 70, 140), target_object->VisualRect()); | 189 EXPECT_EQ(LayoutRect(0, 0, 70, 140), target_object->VisualRect()); |
192 | 190 |
193 GetDocument().View()->SetTracksPaintInvalidations(true); | 191 GetDocument().View()->SetTracksPaintInvalidations(true); |
194 target->setAttribute(HTMLNames::styleAttr, | 192 target->setAttribute(HTMLNames::styleAttr, |
195 "margin-top: 0.6px; width: 50px; height: 99.3px"); | 193 "margin-top: 0.6px; width: 50px; height: 99.3px"); |
196 GetDocument().View()->UpdateAllLifecyclePhases(); | 194 GetDocument().View()->UpdateAllLifecyclePhases(); |
197 EXPECT_EQ(LayoutRect(LayoutUnit(), LayoutUnit(0.6), LayoutUnit(70), | 195 EXPECT_EQ(LayoutRect(LayoutUnit(), LayoutUnit(0.6), LayoutUnit(70), |
198 LayoutUnit(139.3)), | 196 LayoutUnit(139.3)), |
199 target_object->VisualRect()); | 197 target_object->VisualRect()); |
200 const auto* raster_invalidations = | 198 const auto* raster_invalidations = |
201 &GetRasterInvalidationTracking()->tracked_raster_invalidations; | 199 &GetRasterInvalidationTracking()->invalidations; |
202 ASSERT_EQ(1u, raster_invalidations->size()); | 200 ASSERT_EQ(1u, raster_invalidations->size()); |
203 EXPECT_EQ(IntRect(0, 0, 70, 140), (*raster_invalidations)[0].rect); | 201 EXPECT_EQ(IntRect(0, 0, 70, 140), (*raster_invalidations)[0].rect); |
204 EXPECT_EQ(kPaintInvalidationBoundsChange, (*raster_invalidations)[0].reason); | 202 EXPECT_EQ(kPaintInvalidationBoundsChange, (*raster_invalidations)[0].reason); |
205 GetDocument().View()->SetTracksPaintInvalidations(false); | 203 GetDocument().View()->SetTracksPaintInvalidations(false); |
206 | 204 |
207 GetDocument().View()->SetTracksPaintInvalidations(true); | 205 GetDocument().View()->SetTracksPaintInvalidations(true); |
208 target->setAttribute(HTMLNames::styleAttr, | 206 target->setAttribute(HTMLNames::styleAttr, |
209 "margin-top: 0.6px; width: 49.3px; height: 98.5px"); | 207 "margin-top: 0.6px; width: 49.3px; height: 98.5px"); |
210 GetDocument().View()->UpdateAllLifecyclePhases(); | 208 GetDocument().View()->UpdateAllLifecyclePhases(); |
211 EXPECT_EQ(LayoutRect(LayoutUnit(), LayoutUnit(0.6), LayoutUnit(69.3), | 209 EXPECT_EQ(LayoutRect(LayoutUnit(), LayoutUnit(0.6), LayoutUnit(69.3), |
212 LayoutUnit(138.5)), | 210 LayoutUnit(138.5)), |
213 target_object->VisualRect()); | 211 target_object->VisualRect()); |
214 raster_invalidations = | 212 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; |
215 &GetRasterInvalidationTracking()->tracked_raster_invalidations; | |
216 ASSERT_EQ(2u, raster_invalidations->size()); | 213 ASSERT_EQ(2u, raster_invalidations->size()); |
217 EXPECT_EQ(IntRect(59, 0, 11, 140), (*raster_invalidations)[0].rect); | 214 EXPECT_EQ(IntRect(59, 0, 11, 140), (*raster_invalidations)[0].rect); |
218 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); | 215 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); |
219 EXPECT_EQ(IntRect(0, 119, 70, 21), (*raster_invalidations)[1].rect); | 216 EXPECT_EQ(IntRect(0, 119, 70, 21), (*raster_invalidations)[1].rect); |
220 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[1].reason); | 217 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[1].reason); |
221 GetDocument().View()->SetTracksPaintInvalidations(false); | 218 GetDocument().View()->SetTracksPaintInvalidations(false); |
222 } | 219 } |
223 | 220 |
224 TEST_P(BoxPaintInvalidatorTest, ResizeRotated) { | 221 TEST_P(BoxPaintInvalidatorTest, ResizeRotated) { |
225 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( | 222 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( |
226 true); | 223 true); |
227 | 224 |
228 Element* target = GetDocument().getElementById("target"); | 225 Element* target = GetDocument().getElementById("target"); |
229 target->setAttribute(HTMLNames::styleAttr, "transform: rotate(45deg)"); | 226 target->setAttribute(HTMLNames::styleAttr, "transform: rotate(45deg)"); |
230 GetDocument().View()->UpdateAllLifecyclePhases(); | 227 GetDocument().View()->UpdateAllLifecyclePhases(); |
231 | 228 |
232 // Should do full invalidation a rotated object is resized. | 229 // Should do full invalidation a rotated object is resized. |
233 GetDocument().View()->SetTracksPaintInvalidations(true); | 230 GetDocument().View()->SetTracksPaintInvalidations(true); |
234 target->setAttribute(HTMLNames::styleAttr, | 231 target->setAttribute(HTMLNames::styleAttr, |
235 "transform: rotate(45deg); width: 200px"); | 232 "transform: rotate(45deg); width: 200px"); |
236 GetDocument().View()->UpdateAllLifecyclePhases(); | 233 GetDocument().View()->UpdateAllLifecyclePhases(); |
237 const auto* raster_invalidations = | 234 const auto* raster_invalidations = |
238 &GetRasterInvalidationTracking()->tracked_raster_invalidations; | 235 &GetRasterInvalidationTracking()->invalidations; |
239 ASSERT_EQ(1u, raster_invalidations->size()); | 236 ASSERT_EQ(1u, raster_invalidations->size()); |
240 EXPECT_EQ(IntRect(-99, 0, 255, 255), (*raster_invalidations)[0].rect); | 237 EXPECT_EQ(IntRect(-99, 0, 255, 255), (*raster_invalidations)[0].rect); |
241 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 238 EXPECT_EQ(kPaintInvalidationBorderBoxChange, |
242 (*raster_invalidations)[0].reason); | 239 (*raster_invalidations)[0].reason); |
243 GetDocument().View()->SetTracksPaintInvalidations(false); | 240 GetDocument().View()->SetTracksPaintInvalidations(false); |
244 } | 241 } |
245 | 242 |
246 TEST_P(BoxPaintInvalidatorTest, ResizeRotatedChild) { | 243 TEST_P(BoxPaintInvalidatorTest, ResizeRotatedChild) { |
247 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( | 244 ScopedSlimmingPaintInvalidationForTest scoped_slimming_paint_invalidation( |
248 true); | 245 true); |
249 | 246 |
250 Element* target = GetDocument().getElementById("target"); | 247 Element* target = GetDocument().getElementById("target"); |
251 target->setAttribute(HTMLNames::styleAttr, | 248 target->setAttribute(HTMLNames::styleAttr, |
252 "transform: rotate(45deg); width: 200px"); | 249 "transform: rotate(45deg); width: 200px"); |
253 target->setInnerHTML( | 250 target->setInnerHTML( |
254 "<div id=child style='width: 50px; height: 50px; background: " | 251 "<div id=child style='width: 50px; height: 50px; background: " |
255 "red'></div>"); | 252 "red'></div>"); |
256 GetDocument().View()->UpdateAllLifecyclePhases(); | 253 GetDocument().View()->UpdateAllLifecyclePhases(); |
257 Element* child = GetDocument().getElementById("child"); | 254 Element* child = GetDocument().getElementById("child"); |
258 | 255 |
259 // Should do full invalidation a rotated object is resized. | 256 // Should do full invalidation a rotated object is resized. |
260 GetDocument().View()->SetTracksPaintInvalidations(true); | 257 GetDocument().View()->SetTracksPaintInvalidations(true); |
261 child->setAttribute(HTMLNames::styleAttr, | 258 child->setAttribute(HTMLNames::styleAttr, |
262 "width: 100px; height: 50px; background: red"); | 259 "width: 100px; height: 50px; background: red"); |
263 GetDocument().View()->UpdateAllLifecyclePhases(); | 260 GetDocument().View()->UpdateAllLifecyclePhases(); |
264 const auto* raster_invalidations = | 261 const auto* raster_invalidations = |
265 &GetRasterInvalidationTracking()->tracked_raster_invalidations; | 262 &GetRasterInvalidationTracking()->invalidations; |
266 ASSERT_EQ(1u, raster_invalidations->size()); | 263 ASSERT_EQ(1u, raster_invalidations->size()); |
267 EXPECT_EQ(IntRect(-43, 21, 107, 107), (*raster_invalidations)[0].rect); | 264 EXPECT_EQ(IntRect(-43, 21, 107, 107), (*raster_invalidations)[0].rect); |
268 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 265 EXPECT_EQ(kPaintInvalidationBorderBoxChange, |
269 (*raster_invalidations)[0].reason); | 266 (*raster_invalidations)[0].reason); |
270 GetDocument().View()->SetTracksPaintInvalidations(false); | 267 GetDocument().View()->SetTracksPaintInvalidations(false); |
271 } | 268 } |
272 | 269 |
273 TEST_P(BoxPaintInvalidatorTest, CompositedLayoutViewResize) { | 270 TEST_P(BoxPaintInvalidatorTest, CompositedLayoutViewResize) { |
274 EnableCompositing(); | 271 EnableCompositing(); |
275 Element* target = GetDocument().getElementById("target"); | 272 Element* target = GetDocument().getElementById("target"); |
276 target->setAttribute(HTMLNames::classAttr, ""); | 273 target->setAttribute(HTMLNames::classAttr, ""); |
277 target->setAttribute(HTMLNames::styleAttr, "height: 2000px"); | 274 target->setAttribute(HTMLNames::styleAttr, "height: 2000px"); |
278 GetDocument().View()->UpdateAllLifecyclePhases(); | 275 GetDocument().View()->UpdateAllLifecyclePhases(); |
279 | 276 |
280 // Resize the content. | 277 // Resize the content. |
281 GetDocument().View()->SetTracksPaintInvalidations(true); | 278 GetDocument().View()->SetTracksPaintInvalidations(true); |
282 target->setAttribute(HTMLNames::styleAttr, "height: 3000px"); | 279 target->setAttribute(HTMLNames::styleAttr, "height: 3000px"); |
283 GetDocument().View()->UpdateAllLifecyclePhases(); | 280 GetDocument().View()->UpdateAllLifecyclePhases(); |
284 const auto& raster_invalidations = | 281 const auto& raster_invalidations = |
285 GetRasterInvalidationTracking()->tracked_raster_invalidations; | 282 GetRasterInvalidationTracking()->invalidations; |
286 ASSERT_EQ(1u, raster_invalidations.size()); | 283 ASSERT_EQ(1u, raster_invalidations.size()); |
287 EXPECT_EQ(IntRect(0, 2000, 800, 1000), raster_invalidations[0].rect); | 284 EXPECT_EQ(IntRect(0, 2000, 800, 1000), raster_invalidations[0].rect); |
288 EXPECT_EQ(static_cast<const DisplayItemClient*>(&GetLayoutView()), | 285 EXPECT_EQ(static_cast<const DisplayItemClient*>(&GetLayoutView()), |
289 raster_invalidations[0].client); | 286 raster_invalidations[0].client); |
290 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { | 287 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { |
291 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, | 288 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, |
292 raster_invalidations[0].reason); | 289 raster_invalidations[0].reason); |
293 } else { | 290 } else { |
294 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 291 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); |
295 } | 292 } |
(...skipping 15 matching lines...) Expand all Loading... |
311 target->setAttribute(HTMLNames::classAttr, ""); | 308 target->setAttribute(HTMLNames::classAttr, ""); |
312 target->setAttribute(HTMLNames::styleAttr, "height: 2000px"); | 309 target->setAttribute(HTMLNames::styleAttr, "height: 2000px"); |
313 GetDocument().View()->UpdateAllLifecyclePhases(); | 310 GetDocument().View()->UpdateAllLifecyclePhases(); |
314 | 311 |
315 // Resize the content. | 312 // Resize the content. |
316 GetDocument().View()->SetTracksPaintInvalidations(true); | 313 GetDocument().View()->SetTracksPaintInvalidations(true); |
317 target->setAttribute(HTMLNames::styleAttr, "height: 3000px"); | 314 target->setAttribute(HTMLNames::styleAttr, "height: 3000px"); |
318 GetDocument().View()->UpdateAllLifecyclePhases(); | 315 GetDocument().View()->UpdateAllLifecyclePhases(); |
319 | 316 |
320 const auto& raster_invalidations = | 317 const auto& raster_invalidations = |
321 GetRasterInvalidationTracking()->tracked_raster_invalidations; | 318 GetRasterInvalidationTracking()->invalidations; |
322 ASSERT_EQ(1u, raster_invalidations.size()); | 319 ASSERT_EQ(1u, raster_invalidations.size()); |
323 EXPECT_EQ(IntRect(0, 0, 800, 3000), raster_invalidations[0].rect); | 320 EXPECT_EQ(IntRect(0, 0, 800, 3000), raster_invalidations[0].rect); |
324 EXPECT_EQ(static_cast<const DisplayItemClient*>(&GetLayoutView()), | 321 EXPECT_EQ(static_cast<const DisplayItemClient*>(&GetLayoutView()), |
325 raster_invalidations[0].client); | 322 raster_invalidations[0].client); |
326 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { | 323 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { |
327 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, | 324 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, |
328 raster_invalidations[0].reason); | 325 raster_invalidations[0].reason); |
329 } else { | 326 } else { |
330 EXPECT_EQ(kPaintInvalidationLayoutOverflowBoxChange, | 327 EXPECT_EQ(kPaintInvalidationLayoutOverflowBoxChange, |
331 raster_invalidations[0].reason); | 328 raster_invalidations[0].reason); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 GetDocument().View()->UpdateAllLifecyclePhases(); | 363 GetDocument().View()->UpdateAllLifecyclePhases(); |
367 // No invalidation because the changed part of layout overflow is clipped. | 364 // No invalidation because the changed part of layout overflow is clipped. |
368 EXPECT_FALSE(GetRasterInvalidationTracking()); | 365 EXPECT_FALSE(GetRasterInvalidationTracking()); |
369 GetDocument().View()->SetTracksPaintInvalidations(false); | 366 GetDocument().View()->SetTracksPaintInvalidations(false); |
370 | 367 |
371 // Resize the iframe. | 368 // Resize the iframe. |
372 GetDocument().View()->SetTracksPaintInvalidations(true); | 369 GetDocument().View()->SetTracksPaintInvalidations(true); |
373 iframe->setAttribute(HTMLNames::styleAttr, "height: 200px"); | 370 iframe->setAttribute(HTMLNames::styleAttr, "height: 200px"); |
374 GetDocument().View()->UpdateAllLifecyclePhases(); | 371 GetDocument().View()->UpdateAllLifecyclePhases(); |
375 const auto& raster_invalidations = | 372 const auto& raster_invalidations = |
376 GetRasterInvalidationTracking()->tracked_raster_invalidations; | 373 GetRasterInvalidationTracking()->invalidations; |
377 ASSERT_EQ(2u, raster_invalidations.size()); | 374 ASSERT_EQ(2u, raster_invalidations.size()); |
378 EXPECT_EQ(IntRect(0, 100, 100, 100), raster_invalidations[0].rect); | 375 EXPECT_EQ(IntRect(0, 100, 100, 100), raster_invalidations[0].rect); |
379 EXPECT_EQ(static_cast<const DisplayItemClient*>(iframe->GetLayoutObject()), | 376 EXPECT_EQ(static_cast<const DisplayItemClient*>(iframe->GetLayoutObject()), |
380 raster_invalidations[0].client); | 377 raster_invalidations[0].client); |
381 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 378 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); |
382 EXPECT_EQ( | 379 EXPECT_EQ( |
383 static_cast<const DisplayItemClient*>(content->GetLayoutObject()->View()), | 380 static_cast<const DisplayItemClient*>(content->GetLayoutObject()->View()), |
384 raster_invalidations[1].client); | 381 raster_invalidations[1].client); |
385 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { | 382 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { |
386 // TODO(skobes): Treat LayoutView in the same way as normal objects having | 383 // TODO(skobes): Treat LayoutView in the same way as normal objects having |
(...skipping 29 matching lines...) Expand all Loading... |
416 Element* content = ChildDocument().getElementById("content"); | 413 Element* content = ChildDocument().getElementById("content"); |
417 LayoutView* frame_layout_view = content->GetLayoutObject()->View(); | 414 LayoutView* frame_layout_view = content->GetLayoutObject()->View(); |
418 EXPECT_EQ(GetLayoutView(), | 415 EXPECT_EQ(GetLayoutView(), |
419 content->GetLayoutObject()->ContainerForPaintInvalidation()); | 416 content->GetLayoutObject()->ContainerForPaintInvalidation()); |
420 | 417 |
421 // Resize the content. | 418 // Resize the content. |
422 GetDocument().View()->SetTracksPaintInvalidations(true); | 419 GetDocument().View()->SetTracksPaintInvalidations(true); |
423 content->setAttribute(HTMLNames::styleAttr, "height: 500px"); | 420 content->setAttribute(HTMLNames::styleAttr, "height: 500px"); |
424 GetDocument().View()->UpdateAllLifecyclePhases(); | 421 GetDocument().View()->UpdateAllLifecyclePhases(); |
425 const auto* raster_invalidations = | 422 const auto* raster_invalidations = |
426 &GetRasterInvalidationTracking()->tracked_raster_invalidations; | 423 &GetRasterInvalidationTracking()->invalidations; |
427 ASSERT_EQ(1u, raster_invalidations->size()); | 424 ASSERT_EQ(1u, raster_invalidations->size()); |
428 EXPECT_EQ(IntRect(0, 0, 100, 100), (*raster_invalidations)[0].rect); | 425 EXPECT_EQ(IntRect(0, 0, 100, 100), (*raster_invalidations)[0].rect); |
429 EXPECT_EQ(static_cast<const DisplayItemClient*>(frame_layout_view), | 426 EXPECT_EQ(static_cast<const DisplayItemClient*>(frame_layout_view), |
430 (*raster_invalidations)[0].client); | 427 (*raster_invalidations)[0].client); |
431 EXPECT_EQ(kPaintInvalidationLayoutOverflowBoxChange, | 428 EXPECT_EQ(kPaintInvalidationLayoutOverflowBoxChange, |
432 (*raster_invalidations)[0].reason); | 429 (*raster_invalidations)[0].reason); |
433 GetDocument().View()->SetTracksPaintInvalidations(false); | 430 GetDocument().View()->SetTracksPaintInvalidations(false); |
434 | 431 |
435 // Resize the iframe. | 432 // Resize the iframe. |
436 GetDocument().View()->SetTracksPaintInvalidations(true); | 433 GetDocument().View()->SetTracksPaintInvalidations(true); |
437 iframe->setAttribute(HTMLNames::styleAttr, "height: 200px"); | 434 iframe->setAttribute(HTMLNames::styleAttr, "height: 200px"); |
438 GetDocument().View()->UpdateAllLifecyclePhases(); | 435 GetDocument().View()->UpdateAllLifecyclePhases(); |
439 raster_invalidations = | 436 raster_invalidations = &GetRasterInvalidationTracking()->invalidations; |
440 &GetRasterInvalidationTracking()->tracked_raster_invalidations; | |
441 ASSERT_EQ(2u, raster_invalidations->size()); | 437 ASSERT_EQ(2u, raster_invalidations->size()); |
442 EXPECT_EQ(IntRect(0, 100, 100, 100), (*raster_invalidations)[0].rect); | 438 EXPECT_EQ(IntRect(0, 100, 100, 100), (*raster_invalidations)[0].rect); |
443 EXPECT_EQ(static_cast<const DisplayItemClient*>(iframe->GetLayoutObject()), | 439 EXPECT_EQ(static_cast<const DisplayItemClient*>(iframe->GetLayoutObject()), |
444 (*raster_invalidations)[0].client); | 440 (*raster_invalidations)[0].client); |
445 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); | 441 EXPECT_EQ(kPaintInvalidationIncremental, (*raster_invalidations)[0].reason); |
446 EXPECT_EQ(static_cast<const DisplayItemClient*>(frame_layout_view), | 442 EXPECT_EQ(static_cast<const DisplayItemClient*>(frame_layout_view), |
447 (*raster_invalidations)[1].client); | 443 (*raster_invalidations)[1].client); |
448 EXPECT_EQ(IntRect(0, 0, 100, 200), (*raster_invalidations)[1].rect); | 444 EXPECT_EQ(IntRect(0, 0, 100, 200), (*raster_invalidations)[1].rect); |
449 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { | 445 if (RuntimeEnabledFeatures::rootLayerScrollingEnabled()) { |
450 // TODO(skobes): Treat LayoutView in the same way as normal objects having | 446 // TODO(skobes): Treat LayoutView in the same way as normal objects having |
(...skipping 24 matching lines...) Expand all Loading... |
475 GetDocument().View()->UpdateAllLifecyclePhases(); | 471 GetDocument().View()->UpdateAllLifecyclePhases(); |
476 LayoutBoxModelObject* target_obj = | 472 LayoutBoxModelObject* target_obj = |
477 ToLayoutBoxModelObject(target->GetLayoutObject()); | 473 ToLayoutBoxModelObject(target->GetLayoutObject()); |
478 GraphicsLayer* container_layer = | 474 GraphicsLayer* container_layer = |
479 target_obj->Layer()->GraphicsLayerBacking(target_obj); | 475 target_obj->Layer()->GraphicsLayerBacking(target_obj); |
480 GraphicsLayer* contents_layer = target_obj->Layer()->GraphicsLayerBacking(); | 476 GraphicsLayer* contents_layer = target_obj->Layer()->GraphicsLayerBacking(); |
481 // No invalidation on the container layer. | 477 // No invalidation on the container layer. |
482 EXPECT_FALSE(container_layer->GetRasterInvalidationTracking()); | 478 EXPECT_FALSE(container_layer->GetRasterInvalidationTracking()); |
483 // Incremental invalidation of background on contents layer. | 479 // Incremental invalidation of background on contents layer. |
484 const auto& contents_raster_invalidations = | 480 const auto& contents_raster_invalidations = |
485 contents_layer->GetRasterInvalidationTracking() | 481 contents_layer->GetRasterInvalidationTracking()->invalidations; |
486 ->tracked_raster_invalidations; | |
487 ASSERT_EQ(1u, contents_raster_invalidations.size()); | 482 ASSERT_EQ(1u, contents_raster_invalidations.size()); |
488 EXPECT_EQ(IntRect(0, 500, 500, 500), contents_raster_invalidations[0].rect); | 483 EXPECT_EQ(IntRect(0, 500, 500, 500), contents_raster_invalidations[0].rect); |
489 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), | 484 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), |
490 contents_raster_invalidations[0].client); | 485 contents_raster_invalidations[0].client); |
491 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, | 486 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, |
492 contents_raster_invalidations[0].reason); | 487 contents_raster_invalidations[0].reason); |
493 GetDocument().View()->SetTracksPaintInvalidations(false); | 488 GetDocument().View()->SetTracksPaintInvalidations(false); |
494 | 489 |
495 // Resize the container. | 490 // Resize the container. |
496 GetDocument().View()->SetTracksPaintInvalidations(true); | 491 GetDocument().View()->SetTracksPaintInvalidations(true); |
497 target->setAttribute(HTMLNames::styleAttr, | 492 target->setAttribute(HTMLNames::styleAttr, |
498 "will-change: transform; height: 200px"); | 493 "will-change: transform; height: 200px"); |
499 GetDocument().View()->UpdateAllLifecyclePhases(); | 494 GetDocument().View()->UpdateAllLifecyclePhases(); |
500 // No invalidation on the contents layer. | 495 // No invalidation on the contents layer. |
501 EXPECT_FALSE(contents_layer->GetRasterInvalidationTracking()); | 496 EXPECT_FALSE(contents_layer->GetRasterInvalidationTracking()); |
502 // Incremental invalidation on the container layer. | 497 // Incremental invalidation on the container layer. |
503 const auto& container_raster_invalidations = | 498 const auto& container_raster_invalidations = |
504 container_layer->GetRasterInvalidationTracking() | 499 container_layer->GetRasterInvalidationTracking()->invalidations; |
505 ->tracked_raster_invalidations; | |
506 ASSERT_EQ(1u, container_raster_invalidations.size()); | 500 ASSERT_EQ(1u, container_raster_invalidations.size()); |
507 EXPECT_EQ(IntRect(0, 120, 70, 120), container_raster_invalidations[0].rect); | 501 EXPECT_EQ(IntRect(0, 120, 70, 120), container_raster_invalidations[0].rect); |
508 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), | 502 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), |
509 container_raster_invalidations[0].client); | 503 container_raster_invalidations[0].client); |
510 EXPECT_EQ(kPaintInvalidationIncremental, | 504 EXPECT_EQ(kPaintInvalidationIncremental, |
511 container_raster_invalidations[0].reason); | 505 container_raster_invalidations[0].reason); |
512 GetDocument().View()->SetTracksPaintInvalidations(false); | 506 GetDocument().View()->SetTracksPaintInvalidations(false); |
513 } | 507 } |
514 | 508 |
515 TEST_P(BoxPaintInvalidatorTest, | 509 TEST_P(BoxPaintInvalidatorTest, |
(...skipping 17 matching lines...) Expand all Loading... |
533 LayoutBoxModelObject* target_obj = | 527 LayoutBoxModelObject* target_obj = |
534 ToLayoutBoxModelObject(target->GetLayoutObject()); | 528 ToLayoutBoxModelObject(target->GetLayoutObject()); |
535 GraphicsLayer* container_layer = | 529 GraphicsLayer* container_layer = |
536 target_obj->Layer()->GraphicsLayerBacking(target_obj); | 530 target_obj->Layer()->GraphicsLayerBacking(target_obj); |
537 GraphicsLayer* contents_layer = target_obj->Layer()->GraphicsLayerBacking(); | 531 GraphicsLayer* contents_layer = target_obj->Layer()->GraphicsLayerBacking(); |
538 // No invalidation on the container layer. | 532 // No invalidation on the container layer. |
539 EXPECT_FALSE(container_layer->GetRasterInvalidationTracking()); | 533 EXPECT_FALSE(container_layer->GetRasterInvalidationTracking()); |
540 // Full invalidation of background on contents layer because the gradient | 534 // Full invalidation of background on contents layer because the gradient |
541 // background is resized. | 535 // background is resized. |
542 const auto& contents_raster_invalidations = | 536 const auto& contents_raster_invalidations = |
543 contents_layer->GetRasterInvalidationTracking() | 537 contents_layer->GetRasterInvalidationTracking()->invalidations; |
544 ->tracked_raster_invalidations; | |
545 ASSERT_EQ(1u, contents_raster_invalidations.size()); | 538 ASSERT_EQ(1u, contents_raster_invalidations.size()); |
546 EXPECT_EQ(IntRect(0, 0, 500, 1000), contents_raster_invalidations[0].rect); | 539 EXPECT_EQ(IntRect(0, 0, 500, 1000), contents_raster_invalidations[0].rect); |
547 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), | 540 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), |
548 contents_raster_invalidations[0].client); | 541 contents_raster_invalidations[0].client); |
549 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, | 542 EXPECT_EQ(kPaintInvalidationBackgroundOnScrollingContentsLayer, |
550 contents_raster_invalidations[0].reason); | 543 contents_raster_invalidations[0].reason); |
551 GetDocument().View()->SetTracksPaintInvalidations(false); | 544 GetDocument().View()->SetTracksPaintInvalidations(false); |
552 | 545 |
553 // Resize the container. | 546 // Resize the container. |
554 GetDocument().View()->SetTracksPaintInvalidations(true); | 547 GetDocument().View()->SetTracksPaintInvalidations(true); |
555 target->setAttribute(HTMLNames::styleAttr, | 548 target->setAttribute(HTMLNames::styleAttr, |
556 "will-change: transform; height: 200px"); | 549 "will-change: transform; height: 200px"); |
557 GetDocument().View()->UpdateAllLifecyclePhases(); | 550 GetDocument().View()->UpdateAllLifecyclePhases(); |
558 EXPECT_FALSE(contents_layer->GetRasterInvalidationTracking()); | 551 EXPECT_FALSE(contents_layer->GetRasterInvalidationTracking()); |
559 // Full invalidation on the container layer. | 552 // Full invalidation on the container layer. |
560 const auto& container_raster_invalidations = | 553 const auto& container_raster_invalidations = |
561 container_layer->GetRasterInvalidationTracking() | 554 container_layer->GetRasterInvalidationTracking()->invalidations; |
562 ->tracked_raster_invalidations; | |
563 ASSERT_EQ(1u, container_raster_invalidations.size()); | 555 ASSERT_EQ(1u, container_raster_invalidations.size()); |
564 EXPECT_EQ(IntRect(0, 0, 70, 240), container_raster_invalidations[0].rect); | 556 EXPECT_EQ(IntRect(0, 0, 70, 240), container_raster_invalidations[0].rect); |
565 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), | 557 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), |
566 container_raster_invalidations[0].client); | 558 container_raster_invalidations[0].client); |
567 EXPECT_EQ(kPaintInvalidationBorderBoxChange, | 559 EXPECT_EQ(kPaintInvalidationBorderBoxChange, |
568 container_raster_invalidations[0].reason); | 560 container_raster_invalidations[0].reason); |
569 GetDocument().View()->SetTracksPaintInvalidations(false); | 561 GetDocument().View()->SetTracksPaintInvalidations(false); |
570 } | 562 } |
571 | 563 |
572 TEST_P(BoxPaintInvalidatorTest, NonCompositedBackgroundAttachmentLocalResize) { | 564 TEST_P(BoxPaintInvalidatorTest, NonCompositedBackgroundAttachmentLocalResize) { |
(...skipping 12 matching lines...) Expand all Loading... |
585 child->setAttribute(HTMLNames::styleAttr, "width: 500px; height: 1000px"); | 577 child->setAttribute(HTMLNames::styleAttr, "width: 500px; height: 1000px"); |
586 GetDocument().View()->UpdateAllLifecyclePhases(); | 578 GetDocument().View()->UpdateAllLifecyclePhases(); |
587 // No invalidation because the changed part is invisible. | 579 // No invalidation because the changed part is invisible. |
588 EXPECT_FALSE(GetRasterInvalidationTracking()); | 580 EXPECT_FALSE(GetRasterInvalidationTracking()); |
589 | 581 |
590 // Resize the container. | 582 // Resize the container. |
591 GetDocument().View()->SetTracksPaintInvalidations(true); | 583 GetDocument().View()->SetTracksPaintInvalidations(true); |
592 target->setAttribute(HTMLNames::styleAttr, "height: 200px"); | 584 target->setAttribute(HTMLNames::styleAttr, "height: 200px"); |
593 GetDocument().View()->UpdateAllLifecyclePhases(); | 585 GetDocument().View()->UpdateAllLifecyclePhases(); |
594 const auto& raster_invalidations = | 586 const auto& raster_invalidations = |
595 GetRasterInvalidationTracking()->tracked_raster_invalidations; | 587 GetRasterInvalidationTracking()->invalidations; |
596 ASSERT_EQ(1u, raster_invalidations.size()); | 588 ASSERT_EQ(1u, raster_invalidations.size()); |
597 EXPECT_EQ(IntRect(0, 120, 70, 120), raster_invalidations[0].rect); | 589 EXPECT_EQ(IntRect(0, 120, 70, 120), raster_invalidations[0].rect); |
598 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), | 590 EXPECT_EQ(static_cast<const DisplayItemClient*>(target->GetLayoutObject()), |
599 raster_invalidations[0].client); | 591 raster_invalidations[0].client); |
600 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); | 592 EXPECT_EQ(kPaintInvalidationIncremental, raster_invalidations[0].reason); |
601 GetDocument().View()->SetTracksPaintInvalidations(false); | 593 GetDocument().View()->SetTracksPaintInvalidations(false); |
602 } | 594 } |
603 | 595 |
604 } // namespace blink | 596 } // namespace blink |
OLD | NEW |