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

Side by Side Diff: Source/platform/graphics/paint/DisplayItemListTest.cpp

Issue 1324763002: Paint invalidation tests for slimming paint v2 (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Yet another unrelated file mixed from another branch :( Created 5 years, 3 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "platform/graphics/paint/DisplayItemList.h" 6 #include "platform/graphics/paint/DisplayItemList.h"
7 7
8 #include "platform/RuntimeEnabledFeatures.h" 8 #include "platform/RuntimeEnabledFeatures.h"
9 #include "platform/graphics/GraphicsContext.h" 9 #include "platform/graphics/GraphicsContext.h"
10 #include "platform/graphics/paint/CachedDisplayItem.h" 10 #include "platform/graphics/paint/CachedDisplayItem.h"
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300, 300 )); 126 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300, 300 ));
127 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 200, 20 0)); 127 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 200, 20 0));
128 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300, 300 )); 128 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300, 300 ));
129 displayItemList().commitNewDisplayItems(); 129 displayItemList().commitNewDisplayItems();
130 130
131 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 3, 131 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 3,
132 TestDisplayItem(first, backgroundDrawingType), 132 TestDisplayItem(first, backgroundDrawingType),
133 TestDisplayItem(second, backgroundDrawingType), 133 TestDisplayItem(second, backgroundDrawingType),
134 TestDisplayItem(first, foregroundDrawingType)); 134 TestDisplayItem(first, foregroundDrawingType));
135 135
136 displayItemList().invalidate(second.displayItemClient()); 136 displayItemList().invalidate(second);
137 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300, 300 )); 137 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300, 300 ));
138 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300, 300 )); 138 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300, 300 ));
139 displayItemList().commitNewDisplayItems(); 139 displayItemList().commitNewDisplayItems();
140 140
141 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 141 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
142 TestDisplayItem(first, backgroundDrawingType), 142 TestDisplayItem(first, backgroundDrawingType),
143 TestDisplayItem(first, foregroundDrawingType)); 143 TestDisplayItem(first, foregroundDrawingType));
144 } 144 }
145 145
146 TEST_F(DisplayItemListTest, UpdateSwapOrder) 146 TEST_F(DisplayItemListTest, UpdateSwapOrder)
147 { 147 {
148 TestDisplayItemClient first("first"); 148 TestDisplayItemClient first("first");
149 TestDisplayItemClient second("second"); 149 TestDisplayItemClient second("second");
150 TestDisplayItemClient unaffected("unaffected"); 150 TestDisplayItemClient unaffected("unaffected");
151 GraphicsContext context(&displayItemList()); 151 GraphicsContext context(&displayItemList());
152 152
153 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 )); 153 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 ));
154 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 )); 154 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 ));
155 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10, 10)); 155 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10, 10));
156 displayItemList().commitNewDisplayItems(); 156 displayItemList().commitNewDisplayItems();
157 157
158 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 3, 158 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 3,
159 TestDisplayItem(first, backgroundDrawingType), 159 TestDisplayItem(first, backgroundDrawingType),
160 TestDisplayItem(second, backgroundDrawingType), 160 TestDisplayItem(second, backgroundDrawingType),
161 TestDisplayItem(unaffected, backgroundDrawingType)); 161 TestDisplayItem(unaffected, backgroundDrawingType));
162 162
163 displayItemList().invalidate(second.displayItemClient()); 163 displayItemList().invalidate(second);
164 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 )); 164 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 ));
165 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 )); 165 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 ));
166 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10, 10)); 166 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10, 10));
167 displayItemList().commitNewDisplayItems(); 167 displayItemList().commitNewDisplayItems();
168 168
169 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 3, 169 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 3,
170 TestDisplayItem(second, backgroundDrawingType), 170 TestDisplayItem(second, backgroundDrawingType),
171 TestDisplayItem(first, backgroundDrawingType), 171 TestDisplayItem(first, backgroundDrawingType),
172 TestDisplayItem(unaffected, backgroundDrawingType)); 172 TestDisplayItem(unaffected, backgroundDrawingType));
173 } 173 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 displayItemList().commitNewDisplayItems(); 214 displayItemList().commitNewDisplayItems();
215 215
216 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 6, 216 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 6,
217 TestDisplayItem(first, backgroundDrawingType), 217 TestDisplayItem(first, backgroundDrawingType),
218 TestDisplayItem(second, backgroundDrawingType), 218 TestDisplayItem(second, backgroundDrawingType),
219 TestDisplayItem(third, backgroundDrawingType), 219 TestDisplayItem(third, backgroundDrawingType),
220 TestDisplayItem(first, foregroundDrawingType), 220 TestDisplayItem(first, foregroundDrawingType),
221 TestDisplayItem(second, foregroundDrawingType), 221 TestDisplayItem(second, foregroundDrawingType),
222 TestDisplayItem(third, foregroundDrawingType)); 222 TestDisplayItem(third, foregroundDrawingType));
223 223
224 displayItemList().invalidate(second.displayItemClient()); 224 displayItemList().invalidate(second);
225 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 )); 225 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100 ));
226 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 )); 226 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200 ));
227 drawRect(context, third, backgroundDrawingType, FloatRect(300, 100, 50, 50)) ; 227 drawRect(context, third, backgroundDrawingType, FloatRect(300, 100, 50, 50)) ;
228 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100 )); 228 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100 ));
229 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200 )); 229 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200 ));
230 drawRect(context, third, foregroundDrawingType, FloatRect(300, 100, 50, 50)) ; 230 drawRect(context, third, foregroundDrawingType, FloatRect(300, 100, 50, 50)) ;
231 displayItemList().commitNewDisplayItems(); 231 displayItemList().commitNewDisplayItems();
232 232
233 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 6, 233 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 6,
234 TestDisplayItem(first, backgroundDrawingType), 234 TestDisplayItem(first, backgroundDrawingType),
(...skipping 11 matching lines...) Expand all
246 GraphicsContext context(&displayItemList()); 246 GraphicsContext context(&displayItemList());
247 247
248 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) ); 248 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) );
249 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) ); 249 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) );
250 displayItemList().commitNewDisplayItems(); 250 displayItemList().commitNewDisplayItems();
251 251
252 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 252 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
253 TestDisplayItem(second, backgroundDrawingType), 253 TestDisplayItem(second, backgroundDrawingType),
254 TestDisplayItem(second, foregroundDrawingType)); 254 TestDisplayItem(second, foregroundDrawingType));
255 255
256 displayItemList().invalidate(first.displayItemClient()); 256 displayItemList().invalidate(first);
257 displayItemList().invalidate(second.displayItemClient()); 257 displayItemList().invalidate(second);
258 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 258 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
259 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 )); 259 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 ));
260 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) ); 260 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) );
261 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) ); 261 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) );
262 displayItemList().commitNewDisplayItems(); 262 displayItemList().commitNewDisplayItems();
263 263
264 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 4, 264 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 4,
265 TestDisplayItem(first, backgroundDrawingType), 265 TestDisplayItem(first, backgroundDrawingType),
266 TestDisplayItem(first, foregroundDrawingType), 266 TestDisplayItem(first, foregroundDrawingType),
267 TestDisplayItem(second, backgroundDrawingType), 267 TestDisplayItem(second, backgroundDrawingType),
268 TestDisplayItem(second, foregroundDrawingType)); 268 TestDisplayItem(second, foregroundDrawingType));
269 269
270 displayItemList().invalidate(first.displayItemClient()); 270 displayItemList().invalidate(first);
271 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) ); 271 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) );
272 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) ); 272 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) );
273 displayItemList().commitNewDisplayItems(); 273 displayItemList().commitNewDisplayItems();
274 274
275 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 275 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
276 TestDisplayItem(second, backgroundDrawingType), 276 TestDisplayItem(second, backgroundDrawingType),
277 TestDisplayItem(second, foregroundDrawingType)); 277 TestDisplayItem(second, foregroundDrawingType));
278 } 278 }
279 279
280 TEST_F(DisplayItemListTest, UpdateAddLastOverlap) 280 TEST_F(DisplayItemListTest, UpdateAddLastOverlap)
281 { 281 {
282 TestDisplayItemClient first("first"); 282 TestDisplayItemClient first("first");
283 TestDisplayItemClient second("second"); 283 TestDisplayItemClient second("second");
284 GraphicsContext context(&displayItemList()); 284 GraphicsContext context(&displayItemList());
285 285
286 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 286 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
287 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 )); 287 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 ));
288 displayItemList().commitNewDisplayItems(); 288 displayItemList().commitNewDisplayItems();
289 289
290 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 290 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
291 TestDisplayItem(first, backgroundDrawingType), 291 TestDisplayItem(first, backgroundDrawingType),
292 TestDisplayItem(first, foregroundDrawingType)); 292 TestDisplayItem(first, foregroundDrawingType));
293 293
294 displayItemList().invalidate(first.displayItemClient()); 294 displayItemList().invalidate(first);
295 displayItemList().invalidate(second.displayItemClient()); 295 displayItemList().invalidate(second);
296 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 296 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
297 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 )); 297 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 ));
298 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) ); 298 drawRect(context, second, backgroundDrawingType, FloatRect(200, 200, 50, 50) );
299 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) ); 299 drawRect(context, second, foregroundDrawingType, FloatRect(200, 200, 50, 50) );
300 displayItemList().commitNewDisplayItems(); 300 displayItemList().commitNewDisplayItems();
301 301
302 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 4, 302 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 4,
303 TestDisplayItem(first, backgroundDrawingType), 303 TestDisplayItem(first, backgroundDrawingType),
304 TestDisplayItem(first, foregroundDrawingType), 304 TestDisplayItem(first, foregroundDrawingType),
305 TestDisplayItem(second, backgroundDrawingType), 305 TestDisplayItem(second, backgroundDrawingType),
306 TestDisplayItem(second, foregroundDrawingType)); 306 TestDisplayItem(second, foregroundDrawingType));
307 307
308 displayItemList().invalidate(first.displayItemClient()); 308 displayItemList().invalidate(first);
309 displayItemList().invalidate(second.displayItemClient()); 309 displayItemList().invalidate(second);
310 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 310 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
311 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 )); 311 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 150, 150 ));
312 displayItemList().commitNewDisplayItems(); 312 displayItemList().commitNewDisplayItems();
313 313
314 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 314 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
315 TestDisplayItem(first, backgroundDrawingType), 315 TestDisplayItem(first, backgroundDrawingType),
316 TestDisplayItem(first, foregroundDrawingType)); 316 TestDisplayItem(first, foregroundDrawingType));
317 } 317 }
318 318
319 TEST_F(DisplayItemListTest, UpdateClip) 319 TEST_F(DisplayItemListTest, UpdateClip)
320 { 320 {
321 TestDisplayItemClient first("first"); 321 TestDisplayItemClient first("first");
322 TestDisplayItemClient second("second"); 322 TestDisplayItemClient second("second");
323 GraphicsContext context(&displayItemList()); 323 GraphicsContext context(&displayItemList());
324 324
325 { 325 {
326 ClipRecorder clipRecorder(context, first, clipType, LayoutRect(1, 1, 2, 2)); 326 ClipRecorder clipRecorder(context, first, clipType, LayoutRect(1, 1, 2, 2));
327 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150)); 327 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150));
328 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150 , 150)); 328 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150 , 150));
329 } 329 }
330 displayItemList().commitNewDisplayItems(); 330 displayItemList().commitNewDisplayItems();
331 331
332 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 4, 332 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 4,
333 TestDisplayItem(first, clipType), 333 TestDisplayItem(first, clipType),
334 TestDisplayItem(first, backgroundDrawingType), 334 TestDisplayItem(first, backgroundDrawingType),
335 TestDisplayItem(second, backgroundDrawingType), 335 TestDisplayItem(second, backgroundDrawingType),
336 TestDisplayItem(first, DisplayItem::clipTypeToEndClipType(clipType))); 336 TestDisplayItem(first, DisplayItem::clipTypeToEndClipType(clipType)));
337 337
338 displayItemList().invalidate(first.displayItemClient()); 338 displayItemList().invalidate(first);
339 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 339 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
340 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15 0)); 340 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15 0));
341 displayItemList().commitNewDisplayItems(); 341 displayItemList().commitNewDisplayItems();
342 342
343 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 343 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
344 TestDisplayItem(first, backgroundDrawingType), 344 TestDisplayItem(first, backgroundDrawingType),
345 TestDisplayItem(second, backgroundDrawingType)); 345 TestDisplayItem(second, backgroundDrawingType));
346 346
347 displayItemList().invalidate(second.displayItemClient()); 347 displayItemList().invalidate(second);
348 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 348 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
349 { 349 {
350 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2)); 350 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2));
351 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150 , 150)); 351 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150 , 150));
352 } 352 }
353 displayItemList().commitNewDisplayItems(); 353 displayItemList().commitNewDisplayItems();
354 354
355 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 4, 355 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 4,
356 TestDisplayItem(first, backgroundDrawingType), 356 TestDisplayItem(first, backgroundDrawingType),
357 TestDisplayItem(second, clipType), 357 TestDisplayItem(second, clipType),
(...skipping 12 matching lines...) Expand all
370 displayItemList().commitNewDisplayItems(); 370 displayItemList().commitNewDisplayItems();
371 371
372 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 372 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
373 TestDisplayItem(first, backgroundDrawingType), 373 TestDisplayItem(first, backgroundDrawingType),
374 TestDisplayItem(second, backgroundDrawingType)); 374 TestDisplayItem(second, backgroundDrawingType));
375 EXPECT_TRUE(displayItemList().clientCacheIsValid(first.displayItemClient())) ; 375 EXPECT_TRUE(displayItemList().clientCacheIsValid(first.displayItemClient())) ;
376 EXPECT_TRUE(displayItemList().clientCacheIsValid(second.displayItemClient()) ); 376 EXPECT_TRUE(displayItemList().clientCacheIsValid(second.displayItemClient()) );
377 const SkPicture* firstPicture = static_cast<const DrawingDisplayItem&>(displ ayItemList().displayItems()[0]).picture(); 377 const SkPicture* firstPicture = static_cast<const DrawingDisplayItem&>(displ ayItemList().displayItems()[0]).picture();
378 const SkPicture* secondPicture = static_cast<const DrawingDisplayItem&>(disp layItemList().displayItems()[1]).picture(); 378 const SkPicture* secondPicture = static_cast<const DrawingDisplayItem&>(disp layItemList().displayItems()[1]).picture();
379 379
380 displayItemList().invalidate(first.displayItemClient()); 380 displayItemList().invalidate(first);
381 EXPECT_FALSE(displayItemList().clientCacheIsValid(first.displayItemClient()) ); 381 EXPECT_FALSE(displayItemList().clientCacheIsValid(first.displayItemClient()) );
382 EXPECT_TRUE(displayItemList().clientCacheIsValid(second.displayItemClient()) ); 382 EXPECT_TRUE(displayItemList().clientCacheIsValid(second.displayItemClient()) );
383 383
384 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 )); 384 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150 ));
385 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15 0)); 385 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15 0));
386 displayItemList().commitNewDisplayItems(); 386 displayItemList().commitNewDisplayItems();
387 387
388 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 388 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
389 TestDisplayItem(first, backgroundDrawingType), 389 TestDisplayItem(first, backgroundDrawingType),
390 TestDisplayItem(second, backgroundDrawingType)); 390 TestDisplayItem(second, backgroundDrawingType));
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 TestDisplayItem(container1, backgroundDrawingType), 422 TestDisplayItem(container1, backgroundDrawingType),
423 TestDisplayItem(content1, backgroundDrawingType), 423 TestDisplayItem(content1, backgroundDrawingType),
424 TestDisplayItem(content1, foregroundDrawingType), 424 TestDisplayItem(content1, foregroundDrawingType),
425 TestDisplayItem(container1, foregroundDrawingType), 425 TestDisplayItem(container1, foregroundDrawingType),
426 TestDisplayItem(container2, backgroundDrawingType), 426 TestDisplayItem(container2, backgroundDrawingType),
427 TestDisplayItem(content2, backgroundDrawingType), 427 TestDisplayItem(content2, backgroundDrawingType),
428 TestDisplayItem(content2, foregroundDrawingType), 428 TestDisplayItem(content2, foregroundDrawingType),
429 TestDisplayItem(container2, foregroundDrawingType)); 429 TestDisplayItem(container2, foregroundDrawingType));
430 430
431 // Simulate the situation when container1 e.g. gets a z-index that is now gr eater than container2. 431 // Simulate the situation when container1 e.g. gets a z-index that is now gr eater than container2.
432 displayItemList().invalidate(container1.displayItemClient()); 432 displayItemList().invalidate(container1);
433 drawRect(context, container2, backgroundDrawingType, FloatRect(100, 200, 100 , 100)); 433 drawRect(context, container2, backgroundDrawingType, FloatRect(100, 200, 100 , 100));
434 drawRect(context, content2, backgroundDrawingType, FloatRect(100, 200, 50, 2 00)); 434 drawRect(context, content2, backgroundDrawingType, FloatRect(100, 200, 50, 2 00));
435 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 50, 2 00)); 435 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 50, 2 00));
436 drawRect(context, container2, foregroundDrawingType, FloatRect(100, 200, 100 , 100)); 436 drawRect(context, container2, foregroundDrawingType, FloatRect(100, 200, 100 , 100));
437 drawRect(context, container1, backgroundDrawingType, FloatRect(100, 100, 100 , 100)); 437 drawRect(context, container1, backgroundDrawingType, FloatRect(100, 100, 100 , 100));
438 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 100, 50, 2 00)); 438 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 100, 50, 2 00));
439 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 100, 50, 2 00)); 439 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 100, 50, 2 00));
440 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100 , 100)); 440 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100, 100 , 100));
441 displayItemList().commitNewDisplayItems(); 441 displayItemList().commitNewDisplayItems();
442 442
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 TestDisplayItem(container1, DisplayItem::EndSubsequence), 555 TestDisplayItem(container1, DisplayItem::EndSubsequence),
556 556
557 TestDisplayItem(container2, DisplayItem::BeginSubsequence), 557 TestDisplayItem(container2, DisplayItem::BeginSubsequence),
558 TestDisplayItem(container2, backgroundDrawingType), 558 TestDisplayItem(container2, backgroundDrawingType),
559 TestDisplayItem(content2, DisplayItem::BeginSubsequence), 559 TestDisplayItem(content2, DisplayItem::BeginSubsequence),
560 TestDisplayItem(content2, backgroundDrawingType), 560 TestDisplayItem(content2, backgroundDrawingType),
561 TestDisplayItem(content2, DisplayItem::EndSubsequence), 561 TestDisplayItem(content2, DisplayItem::EndSubsequence),
562 TestDisplayItem(container2, DisplayItem::EndSubsequence)); 562 TestDisplayItem(container2, DisplayItem::EndSubsequence));
563 563
564 // Invalidate container1 but not content1. 564 // Invalidate container1 but not content1.
565 displayItemList().invalidate(container1.displayItemClient()); 565 displayItemList().invalidate(container1);
566 566
567 // Container2 itself now becomes empty (but still has the 'content2' child), 567 // Container2 itself now becomes empty (but still has the 'content2' child),
568 // and chooses not to output subsequence info. 568 // and chooses not to output subsequence info.
569 displayItemList().invalidate(container2.displayItemClient()); 569 displayItemList().invalidate(container2);
570 displayItemList().invalidate(content2.displayItemClient()); 570 displayItemList().invalidate(content2);
571 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, co ntainer2)); 571 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, co ntainer2));
572 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, co ntent2)); 572 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context, co ntent2));
573 // Content2 now outputs foreground only. 573 // Content2 now outputs foreground only.
574 { 574 {
575 SubsequenceRecorder r(context, content2); 575 SubsequenceRecorder r(context, content2);
576 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 5 0, 200)); 576 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 5 0, 200));
577 } 577 }
578 // Repaint container1 with foreground only. 578 // Repaint container1 with foreground only.
579 { 579 {
580 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context , container1)); 580 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context , container1));
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 displayItemList().commitNewDisplayItems(); 654 displayItemList().commitNewDisplayItems();
655 655
656 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 3, 656 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 3,
657 TestDisplayItem(multicol, backgroundDrawingType), 657 TestDisplayItem(multicol, backgroundDrawingType),
658 TestDisplayItem(content, foregroundDrawingType), 658 TestDisplayItem(content, foregroundDrawingType),
659 TestDisplayItem(content, foregroundDrawingType)); 659 TestDisplayItem(content, foregroundDrawingType));
660 EXPECT_NE(picture1, static_cast<const DrawingDisplayItem&>(displayItemList() .displayItems()[1]).picture()); 660 EXPECT_NE(picture1, static_cast<const DrawingDisplayItem&>(displayItemList() .displayItems()[1]).picture());
661 EXPECT_NE(picture2, static_cast<const DrawingDisplayItem&>(displayItemList() .displayItems()[2]).picture()); 661 EXPECT_NE(picture2, static_cast<const DrawingDisplayItem&>(displayItemList() .displayItems()[2]).picture());
662 662
663 // Now the multicol becomes 3 columns and repaints. 663 // Now the multicol becomes 3 columns and repaints.
664 displayItemList().invalidate(multicol.displayItemClient()); 664 displayItemList().invalidate(multicol);
665 drawRect(context, multicol, backgroundDrawingType, FloatRect(100, 100, 100, 100)); 665 drawRect(context, multicol, backgroundDrawingType, FloatRect(100, 100, 100, 100));
666 666
667 displayItemList().beginScope(); 667 displayItemList().beginScope();
668 drawRect(context, content, foregroundDrawingType, rect1); 668 drawRect(context, content, foregroundDrawingType, rect1);
669 displayItemList().endScope(); 669 displayItemList().endScope();
670 670
671 displayItemList().beginScope(); 671 displayItemList().beginScope();
672 drawRect(context, content, foregroundDrawingType, rect2); 672 drawRect(context, content, foregroundDrawingType, rect2);
673 displayItemList().endScope(); 673 displayItemList().endScope();
674 674
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 707 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100));
708 708
709 displayItemList().commitNewDisplayItems(); 709 displayItemList().commitNewDisplayItems();
710 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 5, 710 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 5,
711 TestDisplayItem(first, backgroundDrawingType), 711 TestDisplayItem(first, backgroundDrawingType),
712 TestDisplayItem(second, DisplayItem::BeginClipPath), 712 TestDisplayItem(second, DisplayItem::BeginClipPath),
713 TestDisplayItem(second, backgroundDrawingType), 713 TestDisplayItem(second, backgroundDrawingType),
714 TestDisplayItem(second, DisplayItem::EndClipPath), 714 TestDisplayItem(second, DisplayItem::EndClipPath),
715 TestDisplayItem(third, backgroundDrawingType)); 715 TestDisplayItem(third, backgroundDrawingType));
716 716
717 displayItemList().invalidate(second.displayItemClient()); 717 displayItemList().invalidate(second);
718 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 718 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100));
719 { 719 {
720 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2)); 720 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2));
721 // Do not draw anything for second. 721 // Do not draw anything for second.
722 } 722 }
723 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 723 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100));
724 displayItemList().commitNewDisplayItems(); 724 displayItemList().commitNewDisplayItems();
725 725
726 // Empty clips should have been optimized out. 726 // Empty clips should have been optimized out.
727 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 727 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
728 TestDisplayItem(first, backgroundDrawingType), 728 TestDisplayItem(first, backgroundDrawingType),
729 TestDisplayItem(third, backgroundDrawingType)); 729 TestDisplayItem(third, backgroundDrawingType));
730 730
731 displayItemList().invalidate(second.displayItemClient()); 731 displayItemList().invalidate(second);
732 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 732 drawRect(context, first, backgroundDrawingType, FloatRect(0, 0, 100, 100));
733 { 733 {
734 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2)); 734 ClipRecorder clipRecorder(context, second, clipType, LayoutRect(1, 1, 2, 2));
735 { 735 {
736 ClipPathRecorder clipPathRecorder(context, second, Path()); 736 ClipPathRecorder clipPathRecorder(context, second, Path());
737 // Do not draw anything for second. 737 // Do not draw anything for second.
738 } 738 }
739 } 739 }
740 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100)); 740 drawRect(context, third, backgroundDrawingType, FloatRect(0, 0, 100, 100));
741 displayItemList().commitNewDisplayItems(); 741 displayItemList().commitNewDisplayItems();
742 742
743 // Empty clips should have been optimized out. 743 // Empty clips should have been optimized out.
744 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2, 744 EXPECT_DISPLAY_LIST(displayItemList().displayItems(), 2,
745 TestDisplayItem(first, backgroundDrawingType), 745 TestDisplayItem(first, backgroundDrawingType),
746 TestDisplayItem(third, backgroundDrawingType)); 746 TestDisplayItem(third, backgroundDrawingType));
747 } 747 }
748 748
749 } // namespace blink 749 } // namespace blink
OLDNEW
« no previous file with comments | « Source/platform/graphics/paint/DisplayItemList.cpp ('k') | Tools/Scripts/webkitpy/layout_tests/port/base.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698