OLD | NEW |
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 "platform/graphics/paint/PaintController.h" | 5 #include "platform/graphics/paint/PaintController.h" |
6 | 6 |
7 #include "platform/RuntimeEnabledFeatures.h" | 7 #include "platform/RuntimeEnabledFeatures.h" |
8 #include "platform/graphics/GraphicsContext.h" | 8 #include "platform/graphics/GraphicsContext.h" |
9 #include "platform/graphics/paint/ClipPathDisplayItem.h" | 9 #include "platform/graphics/paint/ClipPathDisplayItem.h" |
10 #include "platform/graphics/paint/ClipPathRecorder.h" | 10 #include "platform/graphics/paint/ClipPathRecorder.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 IntRect visualRect(const PaintArtifact& paintArtifact, size_t index) | 30 IntRect visualRect(const PaintArtifact& paintArtifact, size_t index) |
31 { | 31 { |
32 return paintArtifact.getDisplayItemList().visualRect(index); | 32 return paintArtifact.getDisplayItemList().visualRect(index); |
33 } | 33 } |
34 | 34 |
35 protected: | 35 protected: |
36 PaintController& getPaintController() { return *m_paintController; } | 36 PaintController& getPaintController() { return *m_paintController; } |
37 | 37 |
38 int numCachedNewItems() const { return m_paintController->m_numCachedNewItem
s; } | 38 int numCachedNewItems() const { return m_paintController->m_numCachedNewItem
s; } |
39 | 39 |
40 #if DCHECK_IS_ON() | 40 #ifndef NDEBUG |
41 int numSequentialMatches() const { return m_paintController->m_numSequential
Matches; } | 41 int numSequentialMatches() const { return m_paintController->m_numSequential
Matches; } |
42 int numOutOfOrderMatches() const { return m_paintController->m_numOutOfOrder
Matches; } | 42 int numOutOfOrderMatches() const { return m_paintController->m_numOutOfOrder
Matches; } |
43 int numIndexedItems() const { return m_paintController->m_numIndexedItems; } | 43 int numIndexedItems() const { return m_paintController->m_numIndexedItems; } |
44 #endif | 44 #endif |
45 | 45 |
46 void TearDown() override | 46 void TearDown() override |
47 { | 47 { |
48 m_featuresBackup.restore(); | 48 m_featuresBackup.restore(); |
49 } | 49 } |
50 | 50 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 | 97 |
98 void drawClippedRect(GraphicsContext& context, const FakeDisplayItemClient& clie
nt, DisplayItem::Type clipType, DisplayItem::Type drawingType, const FloatRect&
bound) | 98 void drawClippedRect(GraphicsContext& context, const FakeDisplayItemClient& clie
nt, DisplayItem::Type clipType, DisplayItem::Type drawingType, const FloatRect&
bound) |
99 { | 99 { |
100 ClipRecorder clipRecorder(context, client, clipType, IntRect(1, 1, 9, 9)); | 100 ClipRecorder clipRecorder(context, client, clipType, IntRect(1, 1, 9, 9)); |
101 drawRect(context, client, drawingType, bound); | 101 drawRect(context, client, drawingType, bound); |
102 } | 102 } |
103 | 103 |
104 enum TestConfigurations { | 104 enum TestConfigurations { |
105 SPv1, | 105 SPv1, |
106 SPv2, | 106 SPv2, |
107 #if DCHECK_IS_ON() | |
108 UnderInvalidationCheckingSPv1, | 107 UnderInvalidationCheckingSPv1, |
109 UnderInvalidationCheckingSPv2, | 108 UnderInvalidationCheckingSPv2, |
110 #endif | |
111 }; | 109 }; |
112 | 110 |
113 // Tests using this class will be tested with under-invalidation-checking enable
d and disabled. | 111 // Tests using this class will be tested with under-invalidation-checking enable
d and disabled. |
114 class PaintControllerTest : public PaintControllerTestBase, public testing::With
ParamInterface<TestConfigurations> { | 112 class PaintControllerTest : public PaintControllerTestBase, public testing::With
ParamInterface<TestConfigurations> { |
115 public: | 113 public: |
116 PaintControllerTest() | 114 PaintControllerTest() |
117 : m_rootPaintPropertyClient("root") | 115 : m_rootPaintPropertyClient("root") |
118 , m_rootPaintChunkId(m_rootPaintPropertyClient, DisplayItem::kUninitiali
zedType) | 116 , m_rootPaintChunkId(m_rootPaintPropertyClient, DisplayItem::kUninitiali
zedType) |
119 { } | 117 { } |
120 | 118 |
121 protected: | 119 protected: |
122 void SetUp() override | 120 void SetUp() override |
123 { | 121 { |
124 switch (GetParam()) { | 122 switch (GetParam()) { |
125 case SPv1: | 123 case SPv1: |
126 break; | 124 break; |
127 case SPv2: | 125 case SPv2: |
128 RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(true); | 126 RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(true); |
129 break; | 127 break; |
130 #if DCHECK_IS_ON() | |
131 case UnderInvalidationCheckingSPv1: | 128 case UnderInvalidationCheckingSPv1: |
132 RuntimeEnabledFeatures::setSlimmingPaintUnderInvalidationCheckingEna
bled(true); | 129 RuntimeEnabledFeatures::setPaintUnderInvalidationCheckingEnabled(tru
e); |
133 break; | 130 break; |
134 case UnderInvalidationCheckingSPv2: | 131 case UnderInvalidationCheckingSPv2: |
135 RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(true); | 132 RuntimeEnabledFeatures::setSlimmingPaintV2Enabled(true); |
136 RuntimeEnabledFeatures::setSlimmingPaintUnderInvalidationCheckingEna
bled(true); | 133 RuntimeEnabledFeatures::setPaintUnderInvalidationCheckingEnabled(tru
e); |
137 break; | 134 break; |
138 #endif | |
139 } | 135 } |
140 } | 136 } |
141 | 137 |
142 FakeDisplayItemClient m_rootPaintPropertyClient; | 138 FakeDisplayItemClient m_rootPaintPropertyClient; |
143 PaintChunk::Id m_rootPaintChunkId; | 139 PaintChunk::Id m_rootPaintChunkId; |
144 }; | 140 }; |
145 | 141 |
146 #if DCHECK_IS_ON() | |
147 INSTANTIATE_TEST_CASE_P(All, PaintControllerTest, ::testing::Values(SPv1, SPv2,
UnderInvalidationCheckingSPv1, UnderInvalidationCheckingSPv2)); | 142 INSTANTIATE_TEST_CASE_P(All, PaintControllerTest, ::testing::Values(SPv1, SPv2,
UnderInvalidationCheckingSPv1, UnderInvalidationCheckingSPv2)); |
148 #else | |
149 INSTANTIATE_TEST_CASE_P(All, PaintControllerTest, ::testing::Values(SPv1, SPv2))
; | |
150 #endif | |
151 | 143 |
152 TEST_P(PaintControllerTest, NestedRecorders) | 144 TEST_P(PaintControllerTest, NestedRecorders) |
153 { | 145 { |
154 GraphicsContext context(getPaintController()); | 146 GraphicsContext context(getPaintController()); |
155 FakeDisplayItemClient client("client", LayoutRect(100, 100, 200, 200)); | 147 FakeDisplayItemClient client("client", LayoutRect(100, 100, 200, 200)); |
156 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) | 148 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) |
157 getPaintController().updateCurrentPaintChunkProperties(&m_rootPaintChunk
Id, PaintChunkProperties()); | 149 getPaintController().updateCurrentPaintChunkProperties(&m_rootPaintChunk
Id, PaintChunkProperties()); |
158 | 150 |
159 drawClippedRect(context, client, clipType, backgroundDrawingType, FloatRect(
100, 100, 200, 200)); | 151 drawClippedRect(context, client, clipType, backgroundDrawingType, FloatRect(
100, 100, 200, 200)); |
160 getPaintController().commitNewDisplayItems(); | 152 getPaintController().commitNewDisplayItems(); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 EXPECT_THAT(getPaintController().paintChunks()[0].rasterInvalidationRect
s, UnorderedElementsAre( | 189 EXPECT_THAT(getPaintController().paintChunks()[0].rasterInvalidationRect
s, UnorderedElementsAre( |
198 FloatRect(LayoutRect::infiniteIntRect()))); | 190 FloatRect(LayoutRect::infiniteIntRect()))); |
199 | 191 |
200 getPaintController().updateCurrentPaintChunkProperties(&m_rootPaintChunk
Id, PaintChunkProperties()); | 192 getPaintController().updateCurrentPaintChunkProperties(&m_rootPaintChunk
Id, PaintChunkProperties()); |
201 } | 193 } |
202 | 194 |
203 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300, 300
)); | 195 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300, 300
)); |
204 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300, 300
)); | 196 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300, 300
)); |
205 | 197 |
206 EXPECT_EQ(2, numCachedNewItems()); | 198 EXPECT_EQ(2, numCachedNewItems()); |
207 #if DCHECK_IS_ON() | 199 #ifndef NDEBUG |
208 EXPECT_EQ(2, numSequentialMatches()); | 200 EXPECT_EQ(2, numSequentialMatches()); |
209 EXPECT_EQ(0, numOutOfOrderMatches()); | 201 EXPECT_EQ(0, numOutOfOrderMatches()); |
210 EXPECT_EQ(1, numIndexedItems()); | 202 EXPECT_EQ(1, numIndexedItems()); |
211 #endif | 203 #endif |
212 | 204 |
213 getPaintController().commitNewDisplayItems(); | 205 getPaintController().commitNewDisplayItems(); |
214 | 206 |
215 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2, | 207 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2, |
216 TestDisplayItem(first, backgroundDrawingType), | 208 TestDisplayItem(first, backgroundDrawingType), |
217 TestDisplayItem(first, foregroundDrawingType)); | 209 TestDisplayItem(first, foregroundDrawingType)); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 TestDisplayItem(unaffected, foregroundDrawingType)); | 243 TestDisplayItem(unaffected, foregroundDrawingType)); |
252 | 244 |
253 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200
)); | 245 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200
)); |
254 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200
)); | 246 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200
)); |
255 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100
)); | 247 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100
)); |
256 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100
)); | 248 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100
)); |
257 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10,
10)); | 249 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10,
10)); |
258 drawRect(context, unaffected, foregroundDrawingType, FloatRect(300, 300, 10,
10)); | 250 drawRect(context, unaffected, foregroundDrawingType, FloatRect(300, 300, 10,
10)); |
259 | 251 |
260 EXPECT_EQ(6, numCachedNewItems()); | 252 EXPECT_EQ(6, numCachedNewItems()); |
261 #if DCHECK_IS_ON() | 253 #ifndef NDEBUG |
262 EXPECT_EQ(5, numSequentialMatches()); // second, first foreground, unaffecte
d | 254 EXPECT_EQ(5, numSequentialMatches()); // second, first foreground, unaffecte
d |
263 EXPECT_EQ(1, numOutOfOrderMatches()); // first | 255 EXPECT_EQ(1, numOutOfOrderMatches()); // first |
264 EXPECT_EQ(2, numIndexedItems()); // first | 256 EXPECT_EQ(2, numIndexedItems()); // first |
265 #endif | 257 #endif |
266 | 258 |
267 getPaintController().commitNewDisplayItems(); | 259 getPaintController().commitNewDisplayItems(); |
268 | 260 |
269 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 6, | 261 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 6, |
270 TestDisplayItem(second, backgroundDrawingType), | 262 TestDisplayItem(second, backgroundDrawingType), |
271 TestDisplayItem(second, foregroundDrawingType), | 263 TestDisplayItem(second, foregroundDrawingType), |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 | 304 |
313 first.setDisplayItemsUncached(); | 305 first.setDisplayItemsUncached(); |
314 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200
)); | 306 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200
)); |
315 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200
)); | 307 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200
)); |
316 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100
)); | 308 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100
)); |
317 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100
)); | 309 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100
)); |
318 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10,
10)); | 310 drawRect(context, unaffected, backgroundDrawingType, FloatRect(300, 300, 10,
10)); |
319 drawRect(context, unaffected, foregroundDrawingType, FloatRect(300, 300, 10,
10)); | 311 drawRect(context, unaffected, foregroundDrawingType, FloatRect(300, 300, 10,
10)); |
320 | 312 |
321 EXPECT_EQ(4, numCachedNewItems()); | 313 EXPECT_EQ(4, numCachedNewItems()); |
322 #if DCHECK_IS_ON() | 314 #ifndef NDEBUG |
323 EXPECT_EQ(4, numSequentialMatches()); // second, unaffected | 315 EXPECT_EQ(4, numSequentialMatches()); // second, unaffected |
324 EXPECT_EQ(0, numOutOfOrderMatches()); | 316 EXPECT_EQ(0, numOutOfOrderMatches()); |
325 EXPECT_EQ(2, numIndexedItems()); | 317 EXPECT_EQ(2, numIndexedItems()); |
326 #endif | 318 #endif |
327 | 319 |
328 getPaintController().commitNewDisplayItems(); | 320 getPaintController().commitNewDisplayItems(); |
329 | 321 |
330 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 6, | 322 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 6, |
331 TestDisplayItem(second, backgroundDrawingType), | 323 TestDisplayItem(second, backgroundDrawingType), |
332 TestDisplayItem(second, foregroundDrawingType), | 324 TestDisplayItem(second, foregroundDrawingType), |
(...skipping 28 matching lines...) Expand all Loading... |
361 TestDisplayItem(second, backgroundDrawingType)); | 353 TestDisplayItem(second, backgroundDrawingType)); |
362 | 354 |
363 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) | 355 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) |
364 getPaintController().updateCurrentPaintChunkProperties(&m_rootPaintChunk
Id, PaintChunkProperties()); | 356 getPaintController().updateCurrentPaintChunkProperties(&m_rootPaintChunk
Id, PaintChunkProperties()); |
365 | 357 |
366 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100
)); | 358 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100
)); |
367 drawRect(context, third, backgroundDrawingType, FloatRect(125, 100, 200, 50)
); | 359 drawRect(context, third, backgroundDrawingType, FloatRect(125, 100, 200, 50)
); |
368 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200
)); | 360 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200
)); |
369 | 361 |
370 EXPECT_EQ(2, numCachedNewItems()); | 362 EXPECT_EQ(2, numCachedNewItems()); |
371 #if DCHECK_IS_ON() | 363 #ifndef NDEBUG |
372 EXPECT_EQ(2, numSequentialMatches()); // first, second | 364 EXPECT_EQ(2, numSequentialMatches()); // first, second |
373 EXPECT_EQ(0, numOutOfOrderMatches()); | 365 EXPECT_EQ(0, numOutOfOrderMatches()); |
374 EXPECT_EQ(0, numIndexedItems()); | 366 EXPECT_EQ(0, numIndexedItems()); |
375 #endif | 367 #endif |
376 | 368 |
377 getPaintController().commitNewDisplayItems(); | 369 getPaintController().commitNewDisplayItems(); |
378 | 370 |
379 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3, | 371 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3, |
380 TestDisplayItem(first, backgroundDrawingType), | 372 TestDisplayItem(first, backgroundDrawingType), |
381 TestDisplayItem(third, backgroundDrawingType), | 373 TestDisplayItem(third, backgroundDrawingType), |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
418 | 410 |
419 second.setDisplayItemsUncached(); | 411 second.setDisplayItemsUncached(); |
420 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100
)); | 412 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 100, 100
)); |
421 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200
)); | 413 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 50, 200
)); |
422 drawRect(context, third, backgroundDrawingType, FloatRect(300, 100, 50, 50))
; | 414 drawRect(context, third, backgroundDrawingType, FloatRect(300, 100, 50, 50))
; |
423 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100
)); | 415 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 100, 100
)); |
424 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200
)); | 416 drawRect(context, second, foregroundDrawingType, FloatRect(100, 100, 50, 200
)); |
425 drawRect(context, third, foregroundDrawingType, FloatRect(300, 100, 50, 50))
; | 417 drawRect(context, third, foregroundDrawingType, FloatRect(300, 100, 50, 50))
; |
426 | 418 |
427 EXPECT_EQ(4, numCachedNewItems()); | 419 EXPECT_EQ(4, numCachedNewItems()); |
428 #if DCHECK_IS_ON() | 420 #ifndef NDEBUG |
429 EXPECT_EQ(4, numSequentialMatches()); | 421 EXPECT_EQ(4, numSequentialMatches()); |
430 EXPECT_EQ(0, numOutOfOrderMatches()); | 422 EXPECT_EQ(0, numOutOfOrderMatches()); |
431 EXPECT_EQ(2, numIndexedItems()); | 423 EXPECT_EQ(2, numIndexedItems()); |
432 #endif | 424 #endif |
433 | 425 |
434 getPaintController().commitNewDisplayItems(); | 426 getPaintController().commitNewDisplayItems(); |
435 | 427 |
436 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 6, | 428 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 6, |
437 TestDisplayItem(first, backgroundDrawingType), | 429 TestDisplayItem(first, backgroundDrawingType), |
438 TestDisplayItem(second, backgroundDrawingType), | 430 TestDisplayItem(second, backgroundDrawingType), |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 FloatRect(200, 200, 50, 50), // Old bounds of |second|. | 483 FloatRect(200, 200, 50, 50), // Old bounds of |second|. |
492 FloatRect(150, 150, 100, 100))); // New bounds of |second|. | 484 FloatRect(150, 150, 100, 100))); // New bounds of |second|. |
493 | 485 |
494 getPaintController().updateCurrentPaintChunkProperties(&m_rootPaintChunk
Id, PaintChunkProperties()); | 486 getPaintController().updateCurrentPaintChunkProperties(&m_rootPaintChunk
Id, PaintChunkProperties()); |
495 } | 487 } |
496 | 488 |
497 drawRect(context, second, backgroundDrawingType, FloatRect(150, 150, 100, 10
0)); | 489 drawRect(context, second, backgroundDrawingType, FloatRect(150, 150, 100, 10
0)); |
498 drawRect(context, second, foregroundDrawingType, FloatRect(150, 150, 100, 10
0)); | 490 drawRect(context, second, foregroundDrawingType, FloatRect(150, 150, 100, 10
0)); |
499 | 491 |
500 EXPECT_EQ(2, numCachedNewItems()); | 492 EXPECT_EQ(2, numCachedNewItems()); |
501 #if DCHECK_IS_ON() | 493 #ifndef NDEBUG |
502 EXPECT_EQ(2, numSequentialMatches()); | 494 EXPECT_EQ(2, numSequentialMatches()); |
503 EXPECT_EQ(0, numOutOfOrderMatches()); | 495 EXPECT_EQ(0, numOutOfOrderMatches()); |
504 EXPECT_EQ(2, numIndexedItems()); | 496 EXPECT_EQ(2, numIndexedItems()); |
505 #endif | 497 #endif |
506 | 498 |
507 getPaintController().commitNewDisplayItems(); | 499 getPaintController().commitNewDisplayItems(); |
508 | 500 |
509 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2, | 501 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2, |
510 TestDisplayItem(second, backgroundDrawingType), | 502 TestDisplayItem(second, backgroundDrawingType), |
511 TestDisplayItem(second, foregroundDrawingType)); | 503 TestDisplayItem(second, foregroundDrawingType)); |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 TestDisplayItem(first, DisplayItem::clipTypeToEndClipType(clipType))); | 601 TestDisplayItem(first, DisplayItem::clipTypeToEndClipType(clipType))); |
610 | 602 |
611 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) | 603 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) |
612 getPaintController().updateCurrentPaintChunkProperties(&m_rootPaintChunk
Id, PaintChunkProperties()); | 604 getPaintController().updateCurrentPaintChunkProperties(&m_rootPaintChunk
Id, PaintChunkProperties()); |
613 | 605 |
614 first.setDisplayItemsUncached(); | 606 first.setDisplayItemsUncached(); |
615 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150
)); | 607 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150
)); |
616 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 200, 20
0)); | 608 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 200, 20
0)); |
617 | 609 |
618 EXPECT_EQ(1, numCachedNewItems()); | 610 EXPECT_EQ(1, numCachedNewItems()); |
619 #if DCHECK_IS_ON() | 611 #ifndef NDEBUG |
620 EXPECT_EQ(1, numSequentialMatches()); | 612 EXPECT_EQ(1, numSequentialMatches()); |
621 EXPECT_EQ(0, numOutOfOrderMatches()); | 613 EXPECT_EQ(0, numOutOfOrderMatches()); |
622 EXPECT_EQ(1, numIndexedItems()); | 614 EXPECT_EQ(1, numIndexedItems()); |
623 #endif | 615 #endif |
624 | 616 |
625 getPaintController().commitNewDisplayItems(); | 617 getPaintController().commitNewDisplayItems(); |
626 | 618 |
627 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2, | 619 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2, |
628 TestDisplayItem(first, backgroundDrawingType), | 620 TestDisplayItem(first, backgroundDrawingType), |
629 TestDisplayItem(second, backgroundDrawingType)); | 621 TestDisplayItem(second, backgroundDrawingType)); |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
690 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150
)); | 682 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 150, 150
)); |
691 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15
0)); | 683 drawRect(context, second, backgroundDrawingType, FloatRect(100, 100, 150, 15
0)); |
692 getPaintController().commitNewDisplayItems(); | 684 getPaintController().commitNewDisplayItems(); |
693 | 685 |
694 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2, | 686 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 2, |
695 TestDisplayItem(first, backgroundDrawingType), | 687 TestDisplayItem(first, backgroundDrawingType), |
696 TestDisplayItem(second, backgroundDrawingType)); | 688 TestDisplayItem(second, backgroundDrawingType)); |
697 // The first display item should be updated. | 689 // The first display item should be updated. |
698 EXPECT_NE(firstPicture, static_cast<const DrawingDisplayItem&>(getPaintContr
oller().getDisplayItemList()[0]).picture()); | 690 EXPECT_NE(firstPicture, static_cast<const DrawingDisplayItem&>(getPaintContr
oller().getDisplayItemList()[0]).picture()); |
699 // The second display item should be cached. | 691 // The second display item should be cached. |
700 if (!RuntimeEnabledFeatures::slimmingPaintUnderInvalidationCheckingEnabled()
) | 692 if (!RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled()) |
701 EXPECT_EQ(secondPicture, static_cast<const DrawingDisplayItem&>(getPaint
Controller().getDisplayItemList()[1]).picture()); | 693 EXPECT_EQ(secondPicture, static_cast<const DrawingDisplayItem&>(getPaint
Controller().getDisplayItemList()[1]).picture()); |
702 EXPECT_TRUE(getPaintController().clientCacheIsValid(first)); | 694 EXPECT_TRUE(getPaintController().clientCacheIsValid(first)); |
703 EXPECT_TRUE(getPaintController().clientCacheIsValid(second)); | 695 EXPECT_TRUE(getPaintController().clientCacheIsValid(second)); |
704 | 696 |
705 getPaintController().invalidateAll(); | 697 getPaintController().invalidateAll(); |
706 EXPECT_FALSE(getPaintController().clientCacheIsValid(first)); | 698 EXPECT_FALSE(getPaintController().clientCacheIsValid(first)); |
707 EXPECT_FALSE(getPaintController().clientCacheIsValid(second)); | 699 EXPECT_FALSE(getPaintController().clientCacheIsValid(second)); |
708 } | 700 } |
709 | 701 |
710 TEST_P(PaintControllerTest, ComplexUpdateSwapOrder) | 702 TEST_P(PaintControllerTest, ComplexUpdateSwapOrder) |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 EXPECT_EQ(2u, getPaintController().paintChunks().size()); | 820 EXPECT_EQ(2u, getPaintController().paintChunks().size()); |
829 EXPECT_EQ(PaintChunk::Id(container1, backgroundDrawingType), getPaintCon
troller().paintChunks()[0].id); | 821 EXPECT_EQ(PaintChunk::Id(container1, backgroundDrawingType), getPaintCon
troller().paintChunks()[0].id); |
830 EXPECT_EQ(PaintChunk::Id(container2, backgroundDrawingType), getPaintCon
troller().paintChunks()[1].id); | 822 EXPECT_EQ(PaintChunk::Id(container2, backgroundDrawingType), getPaintCon
troller().paintChunks()[1].id); |
831 EXPECT_THAT(getPaintController().paintChunks()[0].rasterInvalidationRect
s, UnorderedElementsAre( | 823 EXPECT_THAT(getPaintController().paintChunks()[0].rasterInvalidationRect
s, UnorderedElementsAre( |
832 FloatRect(LayoutRect::infiniteIntRect()))); | 824 FloatRect(LayoutRect::infiniteIntRect()))); |
833 EXPECT_THAT(getPaintController().paintChunks()[1].rasterInvalidationRect
s, UnorderedElementsAre( | 825 EXPECT_THAT(getPaintController().paintChunks()[1].rasterInvalidationRect
s, UnorderedElementsAre( |
834 FloatRect(LayoutRect::infiniteIntRect()))); | 826 FloatRect(LayoutRect::infiniteIntRect()))); |
835 } | 827 } |
836 | 828 |
837 // Simulate the situation when container1 e.g. gets a z-index that is now gr
eater than container2. | 829 // Simulate the situation when container1 e.g. gets a z-index that is now gr
eater than container2. |
838 if (RuntimeEnabledFeatures::slimmingPaintUnderInvalidationCheckingEnabled())
{ | 830 if (RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled()) { |
839 // When under-invalidation-checking is enabled, useCachedSubsequenceIfPo
ssible is forced off, | 831 // When under-invalidation-checking is enabled, useCachedSubsequenceIfPo
ssible is forced off, |
840 // and the client is expected to create the same painting as in the prev
ious paint. | 832 // and the client is expected to create the same painting as in the prev
ious paint. |
841 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context
, container2)); | 833 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context
, container2)); |
842 { | 834 { |
843 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { | 835 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { |
844 PaintChunk::Id id(container2, backgroundDrawingType); | 836 PaintChunk::Id id(container2, backgroundDrawingType); |
845 getPaintController().updateCurrentPaintChunkProperties(&id, cont
ainer2Properties); | 837 getPaintController().updateCurrentPaintChunkProperties(&id, cont
ainer2Properties); |
846 } | 838 } |
847 SubsequenceRecorder r(context, container2); | 839 SubsequenceRecorder r(context, container2); |
848 drawRect(context, container2, backgroundDrawingType, FloatRect(100,
200, 100, 100)); | 840 drawRect(context, container2, backgroundDrawingType, FloatRect(100,
200, 100, 100)); |
(...skipping 12 matching lines...) Expand all Loading... |
861 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 10
0, 50, 200)); | 853 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 10
0, 50, 200)); |
862 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 10
0, 50, 200)); | 854 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 10
0, 50, 200)); |
863 drawRect(context, container1, foregroundDrawingType, FloatRect(100,
100, 100, 100)); | 855 drawRect(context, container1, foregroundDrawingType, FloatRect(100,
100, 100, 100)); |
864 } | 856 } |
865 } else { | 857 } else { |
866 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context,
container2)); | 858 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context,
container2)); |
867 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context,
container1)); | 859 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context,
container1)); |
868 } | 860 } |
869 | 861 |
870 EXPECT_EQ(12, numCachedNewItems()); | 862 EXPECT_EQ(12, numCachedNewItems()); |
871 #if DCHECK_IS_ON() | 863 #ifndef NDEBUG |
872 EXPECT_EQ(1, numSequentialMatches()); | 864 EXPECT_EQ(1, numSequentialMatches()); |
873 EXPECT_EQ(1, numOutOfOrderMatches()); | 865 EXPECT_EQ(1, numOutOfOrderMatches()); |
874 EXPECT_EQ(5, numIndexedItems()); | 866 EXPECT_EQ(5, numIndexedItems()); |
875 #endif | 867 #endif |
876 | 868 |
877 getPaintController().commitNewDisplayItems(); | 869 getPaintController().commitNewDisplayItems(); |
878 | 870 |
879 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 12, | 871 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 12, |
880 TestDisplayItem(container2, DisplayItem::kSubsequence), | 872 TestDisplayItem(container2, DisplayItem::kSubsequence), |
881 TestDisplayItem(container2, backgroundDrawingType), | 873 TestDisplayItem(container2, backgroundDrawingType), |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1037 getPaintController().updateCurrentPaintChunkProperties(&id, content2
Properties); | 1029 getPaintController().updateCurrentPaintChunkProperties(&id, content2
Properties); |
1038 } | 1030 } |
1039 SubsequenceRecorder r(context, content2); | 1031 SubsequenceRecorder r(context, content2); |
1040 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 5
0, 200)); | 1032 drawRect(context, content2, foregroundDrawingType, FloatRect(100, 200, 5
0, 200)); |
1041 } | 1033 } |
1042 // Repaint container1 with foreground only. | 1034 // Repaint container1 with foreground only. |
1043 { | 1035 { |
1044 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context
, container1)); | 1036 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(context
, container1)); |
1045 SubsequenceRecorder r(context, container1); | 1037 SubsequenceRecorder r(context, container1); |
1046 // Use cached subsequence of content1. | 1038 // Use cached subsequence of content1. |
1047 if (RuntimeEnabledFeatures::slimmingPaintUnderInvalidationCheckingEnable
d()) { | 1039 if (RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled()) { |
1048 // When under-invalidation-checking is enabled, useCachedSubsequence
IfPossible is forced off, | 1040 // When under-invalidation-checking is enabled, useCachedSubsequence
IfPossible is forced off, |
1049 // and the client is expected to create the same painting as in the
previous paint. | 1041 // and the client is expected to create the same painting as in the
previous paint. |
1050 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(con
text, content1)); | 1042 EXPECT_FALSE(SubsequenceRecorder::useCachedSubsequenceIfPossible(con
text, content1)); |
1051 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { | 1043 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { |
1052 PaintChunk::Id id(content1, backgroundDrawingType); | 1044 PaintChunk::Id id(content1, backgroundDrawingType); |
1053 getPaintController().updateCurrentPaintChunkProperties(&id, cont
ent1Properties); | 1045 getPaintController().updateCurrentPaintChunkProperties(&id, cont
ent1Properties); |
1054 } | 1046 } |
1055 SubsequenceRecorder r(context, content1); | 1047 SubsequenceRecorder r(context, content1); |
1056 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 10
0, 50, 200)); | 1048 drawRect(context, content1, backgroundDrawingType, FloatRect(100, 10
0, 50, 200)); |
1057 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 10
0, 50, 200)); | 1049 drawRect(context, content1, foregroundDrawingType, FloatRect(100, 10
0, 50, 200)); |
1058 } else { | 1050 } else { |
1059 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(cont
ext, content1)); | 1051 EXPECT_TRUE(SubsequenceRecorder::useCachedSubsequenceIfPossible(cont
ext, content1)); |
1060 } | 1052 } |
1061 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { | 1053 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { |
1062 PaintChunk::Id id(container1, foregroundDrawingType); | 1054 PaintChunk::Id id(container1, foregroundDrawingType); |
1063 getPaintController().updateCurrentPaintChunkProperties(&id, containe
r1ForegroundProperties); | 1055 getPaintController().updateCurrentPaintChunkProperties(&id, containe
r1ForegroundProperties); |
1064 } | 1056 } |
1065 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100,
100, 100)); | 1057 drawRect(context, container1, foregroundDrawingType, FloatRect(100, 100,
100, 100)); |
1066 } | 1058 } |
1067 | 1059 |
1068 EXPECT_EQ(4, numCachedNewItems()); | 1060 EXPECT_EQ(4, numCachedNewItems()); |
1069 #if DCHECK_IS_ON() | 1061 #ifndef NDEBUG |
1070 EXPECT_EQ(1, numSequentialMatches()); | 1062 EXPECT_EQ(1, numSequentialMatches()); |
1071 EXPECT_EQ(0, numOutOfOrderMatches()); | 1063 EXPECT_EQ(0, numOutOfOrderMatches()); |
1072 EXPECT_EQ(2, numIndexedItems()); | 1064 EXPECT_EQ(2, numIndexedItems()); |
1073 #endif | 1065 #endif |
1074 | 1066 |
1075 getPaintController().commitNewDisplayItems(); | 1067 getPaintController().commitNewDisplayItems(); |
1076 | 1068 |
1077 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 10, | 1069 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 10, |
1078 TestDisplayItem(content2, DisplayItem::kSubsequence), | 1070 TestDisplayItem(content2, DisplayItem::kSubsequence), |
1079 TestDisplayItem(content2, foregroundDrawingType), | 1071 TestDisplayItem(content2, foregroundDrawingType), |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1147 // Draw again with nothing invalidated. | 1139 // Draw again with nothing invalidated. |
1148 EXPECT_TRUE(getPaintController().clientCacheIsValid(multicol)); | 1140 EXPECT_TRUE(getPaintController().clientCacheIsValid(multicol)); |
1149 drawRect(context, multicol, backgroundDrawingType, FloatRect(100, 200, 100,
100)); | 1141 drawRect(context, multicol, backgroundDrawingType, FloatRect(100, 200, 100,
100)); |
1150 | 1142 |
1151 getPaintController().beginSkippingCache(); | 1143 getPaintController().beginSkippingCache(); |
1152 drawRect(context, content, foregroundDrawingType, rect1); | 1144 drawRect(context, content, foregroundDrawingType, rect1); |
1153 drawRect(context, content, foregroundDrawingType, rect2); | 1145 drawRect(context, content, foregroundDrawingType, rect2); |
1154 getPaintController().endSkippingCache(); | 1146 getPaintController().endSkippingCache(); |
1155 | 1147 |
1156 EXPECT_EQ(1, numCachedNewItems()); | 1148 EXPECT_EQ(1, numCachedNewItems()); |
1157 #if DCHECK_IS_ON() | 1149 #ifndef NDEBUG |
1158 EXPECT_EQ(1, numSequentialMatches()); | 1150 EXPECT_EQ(1, numSequentialMatches()); |
1159 EXPECT_EQ(0, numOutOfOrderMatches()); | 1151 EXPECT_EQ(0, numOutOfOrderMatches()); |
1160 EXPECT_EQ(0, numIndexedItems()); | 1152 EXPECT_EQ(0, numIndexedItems()); |
1161 #endif | 1153 #endif |
1162 | 1154 |
1163 getPaintController().commitNewDisplayItems(); | 1155 getPaintController().commitNewDisplayItems(); |
1164 | 1156 |
1165 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3, | 1157 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3, |
1166 TestDisplayItem(multicol, backgroundDrawingType), | 1158 TestDisplayItem(multicol, backgroundDrawingType), |
1167 TestDisplayItem(content, foregroundDrawingType), | 1159 TestDisplayItem(content, foregroundDrawingType), |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1240 EXPECT_EQ(PaintInvalidationFull, content.getPaintInvalidationReason()); | 1232 EXPECT_EQ(PaintInvalidationFull, content.getPaintInvalidationReason()); |
1241 | 1233 |
1242 // Draw again with nothing invalidated. | 1234 // Draw again with nothing invalidated. |
1243 drawRect(context, content, backgroundDrawingType, rect1); | 1235 drawRect(context, content, backgroundDrawingType, rect1); |
1244 getPaintController().beginSkippingCache(); | 1236 getPaintController().beginSkippingCache(); |
1245 drawRect(context, content, foregroundDrawingType, rect2); | 1237 drawRect(context, content, foregroundDrawingType, rect2); |
1246 getPaintController().endSkippingCache(); | 1238 getPaintController().endSkippingCache(); |
1247 drawRect(context, content, foregroundDrawingType, rect3); | 1239 drawRect(context, content, foregroundDrawingType, rect3); |
1248 | 1240 |
1249 EXPECT_EQ(0, numCachedNewItems()); | 1241 EXPECT_EQ(0, numCachedNewItems()); |
1250 #if DCHECK_IS_ON() | 1242 #ifndef NDEBUG |
1251 EXPECT_EQ(0, numSequentialMatches()); | 1243 EXPECT_EQ(0, numSequentialMatches()); |
1252 EXPECT_EQ(0, numOutOfOrderMatches()); | 1244 EXPECT_EQ(0, numOutOfOrderMatches()); |
1253 EXPECT_EQ(0, numIndexedItems()); | 1245 EXPECT_EQ(0, numIndexedItems()); |
1254 #endif | 1246 #endif |
1255 | 1247 |
1256 getPaintController().commitNewDisplayItems(); | 1248 getPaintController().commitNewDisplayItems(); |
1257 | 1249 |
1258 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3, | 1250 EXPECT_DISPLAY_LIST(getPaintController().getDisplayItemList(), 3, |
1259 TestDisplayItem(content, backgroundDrawingType), | 1251 TestDisplayItem(content, backgroundDrawingType), |
1260 TestDisplayItem(content, foregroundDrawingType), | 1252 TestDisplayItem(content, foregroundDrawingType), |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1476 for (int j = 0; j < 50; ++j) | 1468 for (int j = 0; j < 50; ++j) |
1477 getPaintController().createAndAppend<BeginClipPathDisplayItem>(clien
t, path); | 1469 getPaintController().createAndAppend<BeginClipPathDisplayItem>(clien
t, path); |
1478 drawRect(context, client, backgroundDrawingType, FloatRect(0, 0, 100, 10
0)); | 1470 drawRect(context, client, backgroundDrawingType, FloatRect(0, 0, 100, 10
0)); |
1479 for (int j = 0; j < 50; ++j) | 1471 for (int j = 0; j < 50; ++j) |
1480 getPaintController().createAndAppend<EndClipPathDisplayItem>(client)
; | 1472 getPaintController().createAndAppend<EndClipPathDisplayItem>(client)
; |
1481 getPaintController().commitNewDisplayItems(LayoutSize()); | 1473 getPaintController().commitNewDisplayItems(LayoutSize()); |
1482 EXPECT_FALSE(getPaintController().paintArtifact().isSuitableForGpuRaster
ization()); | 1474 EXPECT_FALSE(getPaintController().paintArtifact().isSuitableForGpuRaster
ization()); |
1483 } | 1475 } |
1484 } | 1476 } |
1485 | 1477 |
1486 // Under-invalidation checking is only available when DCHECK_IS_ON(). | |
1487 // Death tests don't work properly on Android. | 1478 // Death tests don't work properly on Android. |
1488 #if DCHECK_IS_ON() && defined(GTEST_HAS_DEATH_TEST) && !OS(ANDROID) | 1479 #if defined(GTEST_HAS_DEATH_TEST) && !OS(ANDROID) |
1489 | 1480 |
1490 class PaintControllerUnderInvalidationTest : public PaintControllerTestBase { | 1481 class PaintControllerUnderInvalidationTest : public PaintControllerTestBase { |
1491 protected: | 1482 protected: |
1492 void SetUp() override | 1483 void SetUp() override |
1493 { | 1484 { |
1494 PaintControllerTestBase::SetUp(); | 1485 PaintControllerTestBase::SetUp(); |
1495 RuntimeEnabledFeatures::setSlimmingPaintUnderInvalidationCheckingEnabled
(true); | 1486 RuntimeEnabledFeatures::setPaintUnderInvalidationCheckingEnabled(true); |
1496 } | 1487 } |
1497 | 1488 |
1498 void testChangeDrawing() | 1489 void testChangeDrawing() |
1499 { | 1490 { |
1500 FakeDisplayItemClient first("first"); | 1491 FakeDisplayItemClient first("first"); |
1501 GraphicsContext context(getPaintController()); | 1492 GraphicsContext context(getPaintController()); |
1502 | 1493 |
1503 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300,
300)); | 1494 drawRect(context, first, backgroundDrawingType, FloatRect(100, 100, 300,
300)); |
1504 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300,
300)); | 1495 drawRect(context, first, foregroundDrawingType, FloatRect(100, 100, 300,
300)); |
1505 getPaintController().commitNewDisplayItems(); | 1496 getPaintController().commitNewDisplayItems(); |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1754 // We allow invalidated display item clients as long as they would produce t
he same display items. | 1745 // We allow invalidated display item clients as long as they would produce t
he same display items. |
1755 // The cases of changed display items are tested by other test cases. | 1746 // The cases of changed display items are tested by other test cases. |
1756 testInvalidationInSubsequence(); | 1747 testInvalidationInSubsequence(); |
1757 } | 1748 } |
1758 | 1749 |
1759 TEST_F(PaintControllerUnderInvalidationTest, FoldCompositingDrawingInSubsequence
) | 1750 TEST_F(PaintControllerUnderInvalidationTest, FoldCompositingDrawingInSubsequence
) |
1760 { | 1751 { |
1761 testFoldCompositingDrawingInSubsequence(); | 1752 testFoldCompositingDrawingInSubsequence(); |
1762 } | 1753 } |
1763 | 1754 |
1764 #endif // DCHECK_IS_ON() && defined(GTEST_HAS_DEATH_TEST) && !OS(ANDROID) | 1755 #endif // defined(GTEST_HAS_DEATH_TEST) && !OS(ANDROID) |
1765 | 1756 |
1766 } // namespace blink | 1757 } // namespace blink |
OLD | NEW |