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

Unified Diff: Source/core/paint/ViewDisplayListTest.cpp

Issue 860563003: Disable display item caching (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove beginNewPaints and m_doingNewPaints Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/paint/LayerClipRecorderTest.cpp ('k') | Source/platform/RuntimeEnabledFeatures.in » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/paint/ViewDisplayListTest.cpp
diff --git a/Source/core/paint/ViewDisplayListTest.cpp b/Source/core/paint/ViewDisplayListTest.cpp
index eeca86223ee7deccbdb8d45deb4a35316b5dc2ca..b095b4e06cbc4f6d77b82ebb3e5b2cab37aa7682 100644
--- a/Source/core/paint/ViewDisplayListTest.cpp
+++ b/Source/core/paint/ViewDisplayListTest.cpp
@@ -38,6 +38,12 @@ private:
ASSERT_TRUE(m_renderView);
}
+ virtual void TearDown() override
+ {
+ RuntimeEnabledFeatures::setSlimmingPaintEnabled(false);
+ RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(false);
+ }
+
RenderView* m_renderView;
};
@@ -63,7 +69,7 @@ public:
#define EXPECT_DISPLAY_LIST(actual, expectedSize, ...) { \
EXPECT_EQ((size_t)expectedSize, actual.size()); \
const TestDisplayItem expected[] = { __VA_ARGS__ }; \
- for (size_t index = 0; index < expectedSize; index++) { \
+ for (size_t index = 0; index < std::min<size_t>(actual.size(), expectedSize); index++) { \
TRACE_DISPLAY_ITEMS(expected[index], *actual[index]); \
EXPECT_EQ(expected[index].client(), actual[index]->client()); \
EXPECT_EQ(expected[index].type(), actual[index]->type()); \
@@ -93,6 +99,7 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_NestedRecorders)
FloatRect bound = renderView()->viewRect();
drawClippedRect(&context, renderView(), PaintPhaseForeground, bound);
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
TestDisplayItem(renderView(), DisplayItem::ClipLayerForeground),
@@ -110,6 +117,7 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateBasic)
drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 300, 300));
drawRect(&context, second, PaintPhaseChildBlockBackground, FloatRect(100, 100, 200, 200));
drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 300, 300));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
TestDisplayItem(first, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -119,6 +127,7 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateBasic)
rootDisplayItemList().invalidate(second->displayItemClient());
drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 300, 300));
drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 300, 300));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
TestDisplayItem(first, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -136,6 +145,7 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateSwapOrder)
drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100, 100));
drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50, 200));
drawRect(&context, unaffected, PaintPhaseBlockBackground, FloatRect(300, 300, 10, 10));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
TestDisplayItem(first, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -145,6 +155,8 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateSwapOrder)
rootDisplayItemList().invalidate(second->displayItemClient());
drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50, 200));
drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100, 100));
+ drawRect(&context, unaffected, PaintPhaseBlockBackground, FloatRect(300, 300, 10, 10));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
TestDisplayItem(second, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -162,6 +174,7 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateNewItemInMiddle)
drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100, 100));
drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50, 200));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
TestDisplayItem(first, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -171,6 +184,7 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateNewItemInMiddle)
drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100, 100));
drawRect(&context, third, PaintPhaseBlockBackground, FloatRect(125, 100, 200, 50));
drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50, 200));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
TestDisplayItem(first, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -195,6 +209,7 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateInvalidationWithPhases)
drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 100, 100));
drawRect(&context, second, PaintPhaseOutline, FloatRect(100, 100, 50, 200));
drawRect(&context, third, PaintPhaseOutline, FloatRect(300, 100, 50, 50));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 9,
TestDisplayItem(first, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -210,10 +225,14 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateInvalidationWithPhases)
rootDisplayItemList().invalidate(second->displayItemClient());
drawRect(&context, first, PaintPhaseBlockBackground, FloatRect(100, 100, 100, 100));
drawRect(&context, second, PaintPhaseBlockBackground, FloatRect(100, 100, 50, 200));
+ drawRect(&context, third, PaintPhaseBlockBackground, FloatRect(300, 100, 50, 50));
drawRect(&context, first, PaintPhaseForeground, FloatRect(100, 100, 100, 100));
drawRect(&context, second, PaintPhaseForeground, FloatRect(100, 100, 50, 200));
+ drawRect(&context, third, PaintPhaseForeground, FloatRect(300, 100, 50, 50));
drawRect(&context, first, PaintPhaseOutline, FloatRect(100, 100, 100, 100));
drawRect(&context, second, PaintPhaseOutline, FloatRect(100, 100, 50, 200));
+ drawRect(&context, third, PaintPhaseOutline, FloatRect(300, 100, 50, 50));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 9,
TestDisplayItem(first, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -226,6 +245,8 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateInvalidationWithPhases)
TestDisplayItem(second, DisplayItem::DrawingPaintPhaseOutline),
TestDisplayItem(third, DisplayItem::DrawingPaintPhaseOutline));
+ // The following is only applicable when we support incremental paint.
+#if 0
rootDisplayItemList().invalidate(second->displayItemClient());
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 6,
@@ -235,9 +256,11 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateInvalidationWithPhases)
TestDisplayItem(third, DisplayItem::DrawingPaintPhaseForeground),
TestDisplayItem(first, DisplayItem::DrawingPaintPhaseOutline),
TestDisplayItem(third, DisplayItem::DrawingPaintPhaseOutline));
+#endif
}
-TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateAddFirstNoOverlap)
+// This test is only applicable when we support incremental paint.
+TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddFirstNoOverlap)
{
setBodyInnerHTML("<div id='first'></div><div id='second'></div>");
RenderObject* first = document().body()->firstChild()->renderer();
@@ -268,7 +291,8 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateAddFirstNoOverlap)
TestDisplayItem(second, DisplayItem::DrawingPaintPhaseOutline));
}
-TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateAddFirstOverlap)
+// This test is only applicable when we support incremental paint.
+TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddFirstOverlap)
{
setBodyInnerHTML("<div id='first'></div><div id='second'></div>");
RenderObject* first = document().body()->firstChild()->renderer();
@@ -304,7 +328,8 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateAddFirstOverlap)
TestDisplayItem(second, DisplayItem::DrawingPaintPhaseOutline));
}
-TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateAddLastNoOverlap)
+// This test is only applicable when we support incremental paint.
+TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddLastNoOverlap)
{
setBodyInnerHTML("<div id='first'></div><div id='second'></div>");
RenderObject* first = document().body()->firstChild()->renderer();
@@ -335,7 +360,8 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateAddLastNoOverlap)
TestDisplayItem(first, DisplayItem::DrawingPaintPhaseOutline));
}
-TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateAddLastOverlap)
+// This test is only applicable when we support incremental paint.
+TEST_F(ViewDisplayListTest, DISABLED_ViewDisplayListTest_UpdateAddLastOverlap)
{
setBodyInnerHTML("<div id='first'></div><div id='second'></div>");
RenderObject* first = document().body()->firstChild()->renderer();
@@ -385,6 +411,7 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateClip)
drawRect(&context, firstRenderer, PaintPhaseBlockBackground, FloatRect(100, 100, 150, 150));
drawRect(&context, secondRenderer, PaintPhaseBlockBackground, FloatRect(100, 100, 150, 150));
}
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 4,
TestDisplayItem(firstRenderer, DisplayItem::ClipLayerForeground),
@@ -395,6 +422,7 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateClip)
rootDisplayItemList().invalidate(firstRenderer->displayItemClient());
drawRect(&context, firstRenderer, PaintPhaseBlockBackground, FloatRect(100, 100, 150, 150));
drawRect(&context, secondRenderer, PaintPhaseBlockBackground, FloatRect(100, 100, 150, 150));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
TestDisplayItem(firstRenderer, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -407,6 +435,7 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateClip)
LayerClipRecorder layerClipRecorder(secondRenderer, &context, DisplayItem::ClipLayerForeground, secondClipRect, 0, LayoutPoint(), PaintLayerFlags());
drawRect(&context, secondRenderer, PaintPhaseBlockBackground, FloatRect(100, 100, 150, 150));
}
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 4,
TestDisplayItem(firstRenderer, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -417,6 +446,8 @@ TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateClip)
TEST_F(ViewDisplayListTest, CachedDisplayItems)
{
+ RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(true);
+
setBodyInnerHTML("<div id='first'><div id='second'></div></div>");
RenderLayerModelObject* firstRenderer = toRenderLayerModelObject(document().body()->firstChild()->renderer());
RenderLayerModelObject* secondRenderer = toRenderLayerModelObject(document().body()->firstChild()->firstChild()->renderer());
@@ -424,6 +455,7 @@ TEST_F(ViewDisplayListTest, CachedDisplayItems)
drawRect(&context, firstRenderer, PaintPhaseBlockBackground, FloatRect(100, 100, 150, 150));
drawRect(&context, secondRenderer, PaintPhaseBlockBackground, FloatRect(100, 100, 150, 150));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
TestDisplayItem(firstRenderer, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -439,6 +471,7 @@ TEST_F(ViewDisplayListTest, CachedDisplayItems)
drawRect(&context, firstRenderer, PaintPhaseBlockBackground, FloatRect(100, 100, 150, 150));
drawRect(&context, secondRenderer, PaintPhaseBlockBackground, FloatRect(100, 100, 150, 150));
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
TestDisplayItem(firstRenderer, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -469,6 +502,7 @@ TEST_F(ViewDisplayListTest, FullDocumentPaintingWithCaret)
GraphicsContext context(&canvas, &rootDisplayItemList());
LayerPaintingInfo paintingInfo(rootLayer, LayoutRect(0, 0, 800, 600), PaintBehaviorNormal, LayoutSize());
LayerPainter(*rootLayer).paintLayerContents(&context, paintingInfo, PaintLayerPaintingCompositingAllPhases);
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 2,
TestDisplayItem(htmlRenderer, DisplayItem::DrawingPaintPhaseBlockBackground),
@@ -477,6 +511,7 @@ TEST_F(ViewDisplayListTest, FullDocumentPaintingWithCaret)
div->focus();
document().view()->updateLayoutAndStyleForPainting();
LayerPainter(*rootLayer).paintLayerContents(&context, paintingInfo, PaintLayerPaintingCompositingAllPhases);
+ rootDisplayItemList().endNewPaints();
EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 3,
TestDisplayItem(htmlRenderer, DisplayItem::DrawingPaintPhaseBlockBackground),
« no previous file with comments | « Source/core/paint/LayerClipRecorderTest.cpp ('k') | Source/platform/RuntimeEnabledFeatures.in » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698