Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(441)

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayerPainterTest.cpp

Issue 1428643004: Repaint on interest rect change (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@EnableSyncPaint
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "config.h" 5 #include "config.h"
6 6
7 #include "core/layout/compositing/CompositedLayerMapping.h" 7 #include "core/layout/compositing/CompositedLayerMapping.h"
8 #include "core/paint/PaintControllerPaintTest.h" 8 #include "core/paint/PaintControllerPaintTest.h"
9 #include "platform/graphics/GraphicsContext.h" 9 #include "platform/graphics/GraphicsContext.h"
10 10
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 TestDisplayItem(container1Layer, endSubsequenceType), 71 TestDisplayItem(container1Layer, endSubsequenceType),
72 TestDisplayItem(container2, backgroundType), 72 TestDisplayItem(container2, backgroundType),
73 TestDisplayItem(container2Layer, subsequenceType), 73 TestDisplayItem(container2Layer, subsequenceType),
74 TestDisplayItem(content2, backgroundType), 74 TestDisplayItem(content2, backgroundType),
75 TestDisplayItem(container2Layer, endSubsequenceType), 75 TestDisplayItem(container2Layer, endSubsequenceType),
76 TestDisplayItem(htmlLayer, endSubsequenceType), 76 TestDisplayItem(htmlLayer, endSubsequenceType),
77 TestDisplayItem(rootLayer, endSubsequenceType)); 77 TestDisplayItem(rootLayer, endSubsequenceType));
78 } 78 }
79 79
80 toHTMLElement(content1.node())->setAttribute(HTMLNames::styleAttr, "position : absolute; width: 100px; height: 100px; background-color: green"); 80 toHTMLElement(content1.node())->setAttribute(HTMLNames::styleAttr, "position : absolute; width: 100px; height: 100px; background-color: green");
81 document().view()->updateAllLifecyclePhases(); 81 updateLifecyclePhasesBeforePaint();
82 paint();
83
84 if (rootLayerScrolls) {
85 EXPECT_DISPLAY_LIST(rootPaintController().newDisplayItemList(), 9,
86 TestDisplayItem(layoutView(), cachedBackgroundType),
87 TestDisplayItem(rootLayer, subsequenceType),
88 TestDisplayItem(container1, cachedBackgroundType),
89 TestDisplayItem(container1Layer, subsequenceType),
90 TestDisplayItem(content1, backgroundType),
91 TestDisplayItem(container1Layer, endSubsequenceType),
92 TestDisplayItem(container2, cachedBackgroundType),
93 TestDisplayItem(container2Layer, cachedSubsequenceType),
94 TestDisplayItem(rootLayer, endSubsequenceType));
95 } else {
96 EXPECT_DISPLAY_LIST(rootPaintController().newDisplayItemList(), 11,
97 TestDisplayItem(layoutView(), cachedBackgroundType),
98 TestDisplayItem(rootLayer, subsequenceType),
99 TestDisplayItem(htmlLayer, subsequenceType),
100 TestDisplayItem(container1, cachedBackgroundType),
101 TestDisplayItem(container1Layer, subsequenceType),
102 TestDisplayItem(content1, backgroundType),
103 TestDisplayItem(container1Layer, endSubsequenceType),
104 TestDisplayItem(container2, cachedBackgroundType),
105 TestDisplayItem(container2Layer, cachedSubsequenceType),
106 TestDisplayItem(htmlLayer, endSubsequenceType),
107 TestDisplayItem(rootLayer, endSubsequenceType));
108 }
109
110 commit();
82 111
83 if (rootLayerScrolls) { 112 if (rootLayerScrolls) {
84 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 11, 113 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 11,
85 TestDisplayItem(layoutView(), backgroundType), 114 TestDisplayItem(layoutView(), backgroundType),
86 TestDisplayItem(rootLayer, subsequenceType), 115 TestDisplayItem(rootLayer, subsequenceType),
87 TestDisplayItem(container1, backgroundType), 116 TestDisplayItem(container1, backgroundType),
88 TestDisplayItem(container1Layer, subsequenceType), 117 TestDisplayItem(container1Layer, subsequenceType),
89 TestDisplayItem(content1, backgroundType), 118 TestDisplayItem(content1, backgroundType),
90 TestDisplayItem(container1Layer, endSubsequenceType), 119 TestDisplayItem(container1Layer, endSubsequenceType),
91 TestDisplayItem(container2, backgroundType), 120 TestDisplayItem(container2, backgroundType),
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 159
131 bool rootLayerScrolls = document().frame()->settings()->rootLayerScrolls(); 160 bool rootLayerScrolls = document().frame()->settings()->rootLayerScrolls();
132 PaintLayer& rootLayer = *layoutView().layer(); 161 PaintLayer& rootLayer = *layoutView().layer();
133 PaintLayer& htmlLayer = *toLayoutBoxModelObject(document().documentElement() ->layoutObject())->layer(); 162 PaintLayer& htmlLayer = *toLayoutBoxModelObject(document().documentElement() ->layoutObject())->layer();
134 LayoutObject& container1 = *document().getElementById("container1")->layoutO bject(); 163 LayoutObject& container1 = *document().getElementById("container1")->layoutO bject();
135 PaintLayer& container1Layer = *toLayoutBoxModelObject(container1).layer(); 164 PaintLayer& container1Layer = *toLayoutBoxModelObject(container1).layer();
136 LayoutObject& content1 = *document().getElementById("content1")->layoutObjec t(); 165 LayoutObject& content1 = *document().getElementById("content1")->layoutObjec t();
137 LayoutObject& container2 = *document().getElementById("container2")->layoutO bject(); 166 LayoutObject& container2 = *document().getElementById("container2")->layoutO bject();
138 PaintLayer& container2Layer = *toLayoutBoxModelObject(container2).layer(); 167 PaintLayer& container2Layer = *toLayoutBoxModelObject(container2).layer();
139 LayoutObject& content2a = *document().getElementById("content2a")->layoutObj ect(); 168 LayoutObject& content2a = *document().getElementById("content2a")->layoutObj ect();
169 LayoutObject& content2b = *document().getElementById("content2b")->layoutObj ect();
140 LayoutObject& container3 = *document().getElementById("container3")->layoutO bject(); 170 LayoutObject& container3 = *document().getElementById("container3")->layoutO bject();
141 PaintLayer& container3Layer = *toLayoutBoxModelObject(container3).layer(); 171 PaintLayer& container3Layer = *toLayoutBoxModelObject(container3).layer();
142 LayoutObject& content3 = *document().getElementById("content3")->layoutObjec t(); 172 LayoutObject& content3 = *document().getElementById("content3")->layoutObjec t();
143 173
144 LayoutRect interestRect(0, 0, 400, 300); 174 updateLifecyclePhasesBeforePaint();
145 document().view()->updateAllLifecyclePhases(&interestRect); 175 IntRect interestRect(0, 0, 400, 300);
176 paint(&interestRect);
177 commit();
146 178
147 // Container1 is fully in the interest rect; 179 // Container1 is fully in the interest rect;
148 // Container2 is partly (including its stacking chidren) in the interest rec t; 180 // Container2 is partly (including its stacking chidren) in the interest rec t;
149 // Content2b is out of the interest rect and output nothing; 181 // Content2b is out of the interest rect and output nothing;
150 // Container3 is partly in the interest rect. 182 // Container3 is partly in the interest rect.
151 if (rootLayerScrolls) { 183 if (rootLayerScrolls) {
152 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 15, 184 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 15,
153 TestDisplayItem(layoutView(), backgroundType), 185 TestDisplayItem(layoutView(), backgroundType),
154 TestDisplayItem(rootLayer, subsequenceType), 186 TestDisplayItem(rootLayer, subsequenceType),
155 TestDisplayItem(container1, backgroundType), 187 TestDisplayItem(container1, backgroundType),
(...skipping 23 matching lines...) Expand all
179 TestDisplayItem(content2a, backgroundType), 211 TestDisplayItem(content2a, backgroundType),
180 TestDisplayItem(container2Layer, endSubsequenceType), 212 TestDisplayItem(container2Layer, endSubsequenceType),
181 TestDisplayItem(container3, backgroundType), 213 TestDisplayItem(container3, backgroundType),
182 TestDisplayItem(container3Layer, subsequenceType), 214 TestDisplayItem(container3Layer, subsequenceType),
183 TestDisplayItem(content3, backgroundType), 215 TestDisplayItem(content3, backgroundType),
184 TestDisplayItem(container3Layer, endSubsequenceType), 216 TestDisplayItem(container3Layer, endSubsequenceType),
185 TestDisplayItem(htmlLayer, endSubsequenceType), 217 TestDisplayItem(htmlLayer, endSubsequenceType),
186 TestDisplayItem(rootLayer, endSubsequenceType)); 218 TestDisplayItem(rootLayer, endSubsequenceType));
187 } 219 }
188 220
189 LayoutRect newInterestRect(0, 100, 300, 300); 221 updateLifecyclePhasesBeforePaint();
190 document().view()->updateAllLifecyclePhases(&newInterestRect); 222 IntRect newInterestRect(0, 100, 300, 1000);
223 paint(&newInterestRect);
191 224
192 // Container1 becomes partly in the interest rect, but uses cached subsequen ce 225 // Container1 becomes partly in the interest rect, but uses cached subsequen ce
193 // because it was fully painted before; 226 // because it was fully painted before;
194 // Container2's intersection with the interest rect changes; 227 // Container2's intersection with the interest rect changes;
195 // Content2b is out of the interest rect and outputs nothing; 228 // Content2b is out of the interest rect and outputs nothing;
196 // Container3 becomes out of the interest rect and outputs nothing. 229 // Container3 becomes out of the interest rect and outputs nothing.
230
197 if (rootLayerScrolls) { 231 if (rootLayerScrolls) {
198 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 11, 232 EXPECT_DISPLAY_LIST(rootPaintController().newDisplayItemList(), 10,
233 TestDisplayItem(layoutView(), cachedBackgroundType),
234 TestDisplayItem(rootLayer, subsequenceType),
235 TestDisplayItem(container1, cachedBackgroundType),
236 TestDisplayItem(container1Layer, cachedSubsequenceType),
237 TestDisplayItem(container2, cachedBackgroundType),
238 TestDisplayItem(container2Layer, subsequenceType),
239 TestDisplayItem(content2a, cachedBackgroundType),
240 TestDisplayItem(content2b, backgroundType),
241 TestDisplayItem(container2Layer, endSubsequenceType),
242 TestDisplayItem(rootLayer, endSubsequenceType));
243 } else {
244 EXPECT_DISPLAY_LIST(rootPaintController().newDisplayItemList(), 12,
245 TestDisplayItem(layoutView(), cachedBackgroundType),
246 TestDisplayItem(rootLayer, subsequenceType),
247 TestDisplayItem(htmlLayer, subsequenceType),
248 TestDisplayItem(container1, cachedBackgroundType),
249 TestDisplayItem(container1Layer, cachedSubsequenceType),
250 TestDisplayItem(container2, cachedBackgroundType),
251 TestDisplayItem(container2Layer, subsequenceType),
252 TestDisplayItem(content2a, cachedBackgroundType),
253 TestDisplayItem(content2b, backgroundType),
254 TestDisplayItem(container2Layer, endSubsequenceType),
255 TestDisplayItem(htmlLayer, endSubsequenceType),
256 TestDisplayItem(rootLayer, endSubsequenceType));
257 }
258
259 commit();
260
261 if (rootLayerScrolls) {
262 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 12,
199 TestDisplayItem(layoutView(), backgroundType), 263 TestDisplayItem(layoutView(), backgroundType),
200 TestDisplayItem(rootLayer, subsequenceType), 264 TestDisplayItem(rootLayer, subsequenceType),
201 TestDisplayItem(container1, backgroundType), 265 TestDisplayItem(container1, backgroundType),
202 TestDisplayItem(container1Layer, subsequenceType), 266 TestDisplayItem(container1Layer, subsequenceType),
203 TestDisplayItem(content1, backgroundType), 267 TestDisplayItem(content1, backgroundType),
204 TestDisplayItem(container1Layer, endSubsequenceType), 268 TestDisplayItem(container1Layer, endSubsequenceType),
205 TestDisplayItem(container2, backgroundType), 269 TestDisplayItem(container2, backgroundType),
206 TestDisplayItem(container2Layer, subsequenceType), 270 TestDisplayItem(container2Layer, subsequenceType),
207 TestDisplayItem(content2a, backgroundType), 271 TestDisplayItem(content2a, backgroundType),
272 TestDisplayItem(content2b, backgroundType),
208 TestDisplayItem(container2Layer, endSubsequenceType), 273 TestDisplayItem(container2Layer, endSubsequenceType),
209 TestDisplayItem(rootLayer, endSubsequenceType)); 274 TestDisplayItem(rootLayer, endSubsequenceType));
210 } else { 275 } else {
211 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 13, 276 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 14,
212 TestDisplayItem(layoutView(), backgroundType), 277 TestDisplayItem(layoutView(), backgroundType),
213 TestDisplayItem(rootLayer, subsequenceType), 278 TestDisplayItem(rootLayer, subsequenceType),
214 TestDisplayItem(htmlLayer, subsequenceType), 279 TestDisplayItem(htmlLayer, subsequenceType),
215 TestDisplayItem(container1, backgroundType), 280 TestDisplayItem(container1, backgroundType),
216 TestDisplayItem(container1Layer, subsequenceType), 281 TestDisplayItem(container1Layer, subsequenceType),
217 TestDisplayItem(content1, backgroundType), 282 TestDisplayItem(content1, backgroundType),
218 TestDisplayItem(container1Layer, endSubsequenceType), 283 TestDisplayItem(container1Layer, endSubsequenceType),
219 TestDisplayItem(container2, backgroundType), 284 TestDisplayItem(container2, backgroundType),
220 TestDisplayItem(container2Layer, subsequenceType), 285 TestDisplayItem(container2Layer, subsequenceType),
221 TestDisplayItem(content2a, backgroundType), 286 TestDisplayItem(content2a, backgroundType),
287 TestDisplayItem(content2b, backgroundType),
222 TestDisplayItem(container2Layer, endSubsequenceType), 288 TestDisplayItem(container2Layer, endSubsequenceType),
223 TestDisplayItem(htmlLayer, endSubsequenceType), 289 TestDisplayItem(htmlLayer, endSubsequenceType),
224 TestDisplayItem(rootLayer, endSubsequenceType)); 290 TestDisplayItem(rootLayer, endSubsequenceType));
225 } 291 }
226 } 292 }
227 293
228 TEST_F(PaintLayerPainterTestForSlimmingPaintV2, CachedSubsequence)
229 {
230 setBodyInnerHTML(
231 "<div id='container1' style='position: relative; z-index: 1; width: 200p x; height: 200px; background-color: blue'>"
232 " <div id='content1' style='position: absolute; width: 100px; height: 1 00px; background-color: red'></div>"
233 "</div>"
234 "<div id='container2' style='position: relative; z-index: 1; width: 200p x; height: 200px; background-color: blue'>"
235 " <div id='content2' style='position: absolute; width: 100px; height: 1 00px; background-color: green'></div>"
236 "</div>");
237 document().view()->updateAllLifecyclePhases();
238
239 PaintLayer& rootLayer = *layoutView().layer();
240 PaintLayer& htmlLayer = *toLayoutBoxModelObject(document().documentElement() ->layoutObject())->layer();
241 LayoutObject& container1 = *document().getElementById("container1")->layoutO bject();
242 PaintLayer& container1Layer = *toLayoutBoxModelObject(container1).layer();
243 LayoutObject& content1 = *document().getElementById("content1")->layoutObjec t();
244 LayoutObject& container2 = *document().getElementById("container2")->layoutO bject();
245 PaintLayer& container2Layer = *toLayoutBoxModelObject(container2).layer();
246 LayoutObject& content2 = *document().getElementById("content2")->layoutObjec t();
247
248 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 13,
249 TestDisplayItem(layoutView(), backgroundType),
250 TestDisplayItem(rootLayer, subsequenceType),
251 TestDisplayItem(htmlLayer, subsequenceType),
252 TestDisplayItem(container1, backgroundType),
253 TestDisplayItem(container1Layer, subsequenceType),
254 TestDisplayItem(content1, backgroundType),
255 TestDisplayItem(container1Layer, endSubsequenceType),
256 TestDisplayItem(container2, backgroundType),
257 TestDisplayItem(container2Layer, subsequenceType),
258 TestDisplayItem(content2, backgroundType),
259 TestDisplayItem(container2Layer, endSubsequenceType),
260 TestDisplayItem(htmlLayer, endSubsequenceType),
261 TestDisplayItem(rootLayer, endSubsequenceType));
262
263 toHTMLElement(content1.node())->setAttribute(HTMLNames::styleAttr, "position : absolute; width: 100px; height: 100px; background-color: green");
264 updateLifecyclePhasesToPaintClean();
265
266 EXPECT_DISPLAY_LIST(rootPaintController().newDisplayItemList(), 11,
267 TestDisplayItem(layoutView(), cachedBackgroundType),
268 TestDisplayItem(rootLayer, subsequenceType),
269 TestDisplayItem(htmlLayer, subsequenceType),
270 TestDisplayItem(container1, cachedBackgroundType),
271 TestDisplayItem(container1Layer, subsequenceType),
272 TestDisplayItem(content1, backgroundType),
273 TestDisplayItem(container1Layer, endSubsequenceType),
274 TestDisplayItem(container2, cachedBackgroundType),
275 TestDisplayItem(container2Layer, cachedSubsequenceType),
276 TestDisplayItem(htmlLayer, endSubsequenceType),
277 TestDisplayItem(rootLayer, endSubsequenceType));
278
279 compositeForSlimmingPaintV2();
280
281 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 13,
282 TestDisplayItem(layoutView(), backgroundType),
283 TestDisplayItem(rootLayer, subsequenceType),
284 TestDisplayItem(htmlLayer, subsequenceType),
285 TestDisplayItem(container1, backgroundType),
286 TestDisplayItem(container1Layer, subsequenceType),
287 TestDisplayItem(content1, backgroundType),
288 TestDisplayItem(container1Layer, endSubsequenceType),
289 TestDisplayItem(container2, backgroundType),
290 TestDisplayItem(container2Layer, subsequenceType),
291 TestDisplayItem(content2, backgroundType),
292 TestDisplayItem(container2Layer, endSubsequenceType),
293 TestDisplayItem(htmlLayer, endSubsequenceType),
294 TestDisplayItem(rootLayer, endSubsequenceType));
295
296 // Repeated painting should just generate a CachedDisplayItemList item.
297 updateLifecyclePhasesToPaintClean();
298 EXPECT_DISPLAY_LIST(rootPaintController().newDisplayItemList(), 1,
299 TestDisplayItem(*rootLayer.compositedLayerMapping(), DisplayItem::Cached DisplayItemList));
300
301 compositeForSlimmingPaintV2();
302
303 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 13,
304 TestDisplayItem(layoutView(), backgroundType),
305 TestDisplayItem(rootLayer, subsequenceType),
306 TestDisplayItem(htmlLayer, subsequenceType),
307 TestDisplayItem(container1, backgroundType),
308 TestDisplayItem(container1Layer, subsequenceType),
309 TestDisplayItem(content1, backgroundType),
310 TestDisplayItem(container1Layer, endSubsequenceType),
311 TestDisplayItem(container2, backgroundType),
312 TestDisplayItem(container2Layer, subsequenceType),
313 TestDisplayItem(content2, backgroundType),
314 TestDisplayItem(container2Layer, endSubsequenceType),
315 TestDisplayItem(htmlLayer, endSubsequenceType),
316 TestDisplayItem(rootLayer, endSubsequenceType));
317 }
318
319 TEST_F(PaintLayerPainterTestForSlimmingPaintV2, CachedSubsequenceOnInterestRectC hange)
320 {
321 setBodyInnerHTML(
322 "<div id='container1' style='position: relative; z-index: 1; width: 200p x; height: 200px; background-color: blue'>"
323 " <div id='content1' style='position: absolute; width: 100px; height: 1 00px; background-color: green'></div>"
324 "</div>"
325 "<div id='container2' style='position: relative; z-index: 1; width: 200p x; height: 200px; background-color: blue'>"
326 " <div id='content2a' style='position: absolute; width: 100px; height: 100px; background-color: green'></div>"
327 " <div id='content2b' style='position: absolute; top: 200px; width: 100 px; height: 100px; background-color: green'></div>"
328 "</div>"
329 "<div id='container3' style='position: absolute; z-index: 2; left: 300px ; top: 0; width: 200px; height: 200px; background-color: blue'>"
330 " <div id='content3' style='position: absolute; width: 200px; height: 2 00px; background-color: green'></div>"
331 "</div>");
332 rootPaintController().invalidateAll();
333
334 PaintLayer& rootLayer = *layoutView().layer();
335 PaintLayer& htmlLayer = *toLayoutBoxModelObject(document().documentElement() ->layoutObject())->layer();
336 LayoutObject& container1 = *document().getElementById("container1")->layoutO bject();
337 PaintLayer& container1Layer = *toLayoutBoxModelObject(container1).layer();
338 LayoutObject& content1 = *document().getElementById("content1")->layoutObjec t();
339 LayoutObject& container2 = *document().getElementById("container2")->layoutO bject();
340 PaintLayer& container2Layer = *toLayoutBoxModelObject(container2).layer();
341 LayoutObject& content2a = *document().getElementById("content2a")->layoutObj ect();
342 LayoutObject& container3 = *document().getElementById("container3")->layoutO bject();
343 PaintLayer& container3Layer = *toLayoutBoxModelObject(container3).layer();
344 LayoutObject& content3 = *document().getElementById("content3")->layoutObjec t();
345
346 LayoutRect interestRect(0, 0, 400, 300);
347 document().view()->updateAllLifecyclePhases(&interestRect);
348
349 // Container1 is fully in the interest rect;
350 // Container2 is partly (including its stacking chidren) in the interest rec t;
351 // Content2b is out of the interest rect and output nothing;
352 // Container3 is partly in the interest rect.
353 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 17,
354 TestDisplayItem(layoutView(), backgroundType),
355 TestDisplayItem(rootLayer, subsequenceType),
356 TestDisplayItem(htmlLayer, subsequenceType),
357 TestDisplayItem(container1, backgroundType),
358 TestDisplayItem(container1Layer, subsequenceType),
359 TestDisplayItem(content1, backgroundType),
360 TestDisplayItem(container1Layer, endSubsequenceType),
361 TestDisplayItem(container2, backgroundType),
362 TestDisplayItem(container2Layer, subsequenceType),
363 TestDisplayItem(content2a, backgroundType),
364 TestDisplayItem(container2Layer, endSubsequenceType),
365 TestDisplayItem(container3, backgroundType),
366 TestDisplayItem(container3Layer, subsequenceType),
367 TestDisplayItem(content3, backgroundType),
368 TestDisplayItem(container3Layer, endSubsequenceType),
369 TestDisplayItem(htmlLayer, endSubsequenceType),
370 TestDisplayItem(rootLayer, endSubsequenceType));
371
372 // Container1 becomes partly in the interest rect, but uses cached subsequen ce
373 // because it was fully painted before;
374 // Container2's intersection with the interest rect changes;
375 // Content2b is out of the interest rect and outputs nothing;
376 // Container3 becomes out of the interest rect and outputs nothing.
377 LayoutRect newInterestRect(0, 100, 300, 300);
378 updateLifecyclePhasesToPaintClean(&newInterestRect);
379
380 EXPECT_DISPLAY_LIST(rootPaintController().newDisplayItemList(), 11,
381 TestDisplayItem(layoutView(), cachedBackgroundType),
382 TestDisplayItem(rootLayer, subsequenceType),
383 TestDisplayItem(htmlLayer, subsequenceType),
384 TestDisplayItem(container1, cachedBackgroundType),
385 TestDisplayItem(container1Layer, cachedSubsequenceType),
386 TestDisplayItem(container2, cachedBackgroundType),
387 TestDisplayItem(container2Layer, subsequenceType),
388 TestDisplayItem(content2a, cachedBackgroundType),
389 TestDisplayItem(container2Layer, endSubsequenceType),
390 TestDisplayItem(htmlLayer, endSubsequenceType),
391 TestDisplayItem(rootLayer, endSubsequenceType));
392
393 compositeForSlimmingPaintV2();
394
395 EXPECT_DISPLAY_LIST(rootPaintController().displayItemList(), 13,
396 TestDisplayItem(layoutView(), backgroundType),
397 TestDisplayItem(rootLayer, subsequenceType),
398 TestDisplayItem(htmlLayer, subsequenceType),
399 TestDisplayItem(container1, backgroundType),
400 TestDisplayItem(container1Layer, subsequenceType),
401 TestDisplayItem(content1, backgroundType),
402 TestDisplayItem(container1Layer, endSubsequenceType),
403 TestDisplayItem(container2, backgroundType),
404 TestDisplayItem(container2Layer, subsequenceType),
405 TestDisplayItem(content2a, backgroundType),
406 TestDisplayItem(container2Layer, endSubsequenceType),
407 TestDisplayItem(htmlLayer, endSubsequenceType),
408 TestDisplayItem(rootLayer, endSubsequenceType));
409 }
410
411 } // namespace blink 294 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698