Index: Source/core/paint/ViewDisplayListTest.cpp |
diff --git a/Source/core/paint/ViewDisplayListTest.cpp b/Source/core/paint/ViewDisplayListTest.cpp |
index b095b4e06cbc4f6d77b82ebb3e5b2cab37aa7682..f62c85ad7ec6d25c9953a924884b7d731e2a0849 100644 |
--- a/Source/core/paint/ViewDisplayListTest.cpp |
+++ b/Source/core/paint/ViewDisplayListTest.cpp |
@@ -41,7 +41,6 @@ private: |
virtual void TearDown() override |
{ |
RuntimeEnabledFeatures::setSlimmingPaintEnabled(false); |
- RuntimeEnabledFeatures::setSlimmingPaintDisplayItemCacheEnabled(false); |
} |
RenderView* m_renderView; |
@@ -446,8 +445,6 @@ 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()); |
@@ -519,5 +516,57 @@ TEST_F(ViewDisplayListTest, FullDocumentPaintingWithCaret) |
TestDisplayItem(divRenderer, DisplayItem::DrawingPaintPhaseCaret)); |
} |
+TEST_F(ViewDisplayListTest, ComplexUpdateSwapOrder) |
+{ |
+ setBodyInnerHTML("<div id='container1'><div id='content1'></div></div>" |
+ "<div id='container2'><div id='content2'></div></div>"); |
+ RenderObject* container1 = document().body()->firstChild()->renderer(); |
+ RenderObject* content1 = document().body()->firstChild()->firstChild()->renderer(); |
+ RenderObject* container2 = document().body()->firstChild()->nextSibling()->renderer(); |
+ RenderObject* content2 = document().body()->firstChild()->nextSibling()->firstChild()->renderer(); |
+ GraphicsContext context(nullptr, &rootDisplayItemList()); |
+ |
+ drawRect(&context, container1, PaintPhaseBlockBackground, FloatRect(100, 100, 100, 100)); |
+ drawRect(&context, content1, PaintPhaseBlockBackground, FloatRect(100, 100, 50, 200)); |
+ drawRect(&context, content1, PaintPhaseForeground, FloatRect(100, 100, 50, 200)); |
+ drawRect(&context, container1, PaintPhaseForeground, FloatRect(100, 100, 100, 100)); |
+ drawRect(&context, container2, PaintPhaseBlockBackground, FloatRect(100, 200, 100, 100)); |
+ drawRect(&context, content2, PaintPhaseBlockBackground, FloatRect(100, 200, 50, 200)); |
+ drawRect(&context, content2, PaintPhaseForeground, FloatRect(100, 200, 50, 200)); |
+ drawRect(&context, container2, PaintPhaseForeground, FloatRect(100, 200, 100, 100)); |
+ rootDisplayItemList().endNewPaints(); |
+ |
+ EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 8, |
+ TestDisplayItem(container1, DisplayItem::DrawingPaintPhaseBlockBackground), |
+ TestDisplayItem(content1, DisplayItem::DrawingPaintPhaseBlockBackground), |
+ TestDisplayItem(content1, DisplayItem::DrawingPaintPhaseForeground), |
+ TestDisplayItem(container1, DisplayItem::DrawingPaintPhaseForeground), |
+ TestDisplayItem(container2, DisplayItem::DrawingPaintPhaseBlockBackground), |
+ TestDisplayItem(content2, DisplayItem::DrawingPaintPhaseBlockBackground), |
+ TestDisplayItem(content2, DisplayItem::DrawingPaintPhaseForeground), |
+ TestDisplayItem(container2, DisplayItem::DrawingPaintPhaseForeground)); |
+ |
+ rootDisplayItemList().invalidate(container1->displayItemClient()); |
chrishtr
2015/01/22 22:17:21
Add a comment that this is simulating the situatio
Xianzhu
2015/01/22 23:50:59
Done.
|
+ drawRect(&context, container2, PaintPhaseBlockBackground, FloatRect(100, 200, 100, 100)); |
+ drawRect(&context, content2, PaintPhaseBlockBackground, FloatRect(100, 200, 50, 200)); |
+ drawRect(&context, content2, PaintPhaseForeground, FloatRect(100, 200, 50, 200)); |
+ drawRect(&context, container2, PaintPhaseForeground, FloatRect(100, 200, 100, 100)); |
+ drawRect(&context, container1, PaintPhaseBlockBackground, FloatRect(100, 100, 100, 100)); |
+ drawRect(&context, content1, PaintPhaseBlockBackground, FloatRect(100, 100, 50, 200)); |
+ drawRect(&context, content1, PaintPhaseForeground, FloatRect(100, 100, 50, 200)); |
+ drawRect(&context, container1, PaintPhaseForeground, FloatRect(100, 100, 100, 100)); |
+ rootDisplayItemList().endNewPaints(); |
+ |
+ EXPECT_DISPLAY_LIST(rootDisplayItemList().paintList(), 8, |
+ TestDisplayItem(container2, DisplayItem::DrawingPaintPhaseBlockBackground), |
+ TestDisplayItem(content2, DisplayItem::DrawingPaintPhaseBlockBackground), |
+ TestDisplayItem(content2, DisplayItem::DrawingPaintPhaseForeground), |
+ TestDisplayItem(container2, DisplayItem::DrawingPaintPhaseForeground), |
+ TestDisplayItem(container1, DisplayItem::DrawingPaintPhaseBlockBackground), |
+ TestDisplayItem(content1, DisplayItem::DrawingPaintPhaseBlockBackground), |
+ TestDisplayItem(content1, DisplayItem::DrawingPaintPhaseForeground), |
+ TestDisplayItem(container1, DisplayItem::DrawingPaintPhaseForeground)); |
+} |
+ |
} // anonymous namespace |
} // namespace blink |