Index: third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp b/third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp |
index 9904efebe90c1d1137e7c3922762ffbd90d109f1..c497fbade374abd3a0165c90ecbbc8c069607c1f 100644 |
--- a/third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp |
@@ -2273,6 +2273,40 @@ |
DisplayItemClient::EndShouldKeepAliveAllClients(); |
#endif |
} |
+ |
+ void TestFoldCompositingDrawingInSubsequence() { |
+ FakeDisplayItemClient container("container"); |
+ FakeDisplayItemClient content("content"); |
+ GraphicsContext context(GetPaintController()); |
+ |
+ { |
+ SubsequenceRecorder subsequence(context, container); |
+ CompositingRecorder compositing(context, content, SkBlendMode::kSrc, 0.5); |
+ DrawRect(context, content, kBackgroundDrawingType, |
+ FloatRect(100, 100, 300, 300)); |
+ } |
+ GetPaintController().CommitNewDisplayItems(); |
+ EXPECT_EQ( |
+ 1u, |
+ GetPaintController().GetPaintArtifact().GetDisplayItemList().size()); |
+ |
+ { |
+ EXPECT_FALSE(SubsequenceRecorder::UseCachedSubsequenceIfPossible( |
+ context, container)); |
+ SubsequenceRecorder subsequence(context, container); |
+ CompositingRecorder compositing(context, content, SkBlendMode::kSrc, 0.5); |
+ DrawRect(context, content, kBackgroundDrawingType, |
+ FloatRect(100, 100, 300, 300)); |
+ } |
+ GetPaintController().CommitNewDisplayItems(); |
+ EXPECT_EQ( |
+ 1u, |
+ GetPaintController().GetPaintArtifact().GetDisplayItemList().size()); |
+ |
+#if CHECK_DISPLAY_ITEM_CLIENT_ALIVENESS |
+ DisplayItemClient::EndShouldKeepAliveAllClients(); |
+#endif |
+ } |
}; |
TEST_F(PaintControllerUnderInvalidationTest, ChangeDrawing) { |
@@ -2322,6 +2356,11 @@ |
TestInvalidationInSubsequence(); |
} |
+TEST_F(PaintControllerUnderInvalidationTest, |
+ FoldCompositingDrawingInSubsequence) { |
+ TestFoldCompositingDrawingInSubsequence(); |
+} |
+ |
#endif // defined(GTEST_HAS_DEATH_TEST) && !OS(ANDROID) |
} // namespace blink |