| Index: third_party/WebKit/Source/core/layout/compositing/CompositedLayerMappingTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMappingTest.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMappingTest.cpp
|
| index 45d65c050b8fe16887cb9cba07653e41c14699ea..2328a074e1ea273a7cefc507a184623829d9ce95 100644
|
| --- a/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMappingTest.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/compositing/CompositedLayerMappingTest.cpp
|
| @@ -45,6 +45,12 @@ protected:
|
| return graphicsLayer->m_previousInterestRect;
|
| }
|
|
|
| + bool shouldPaintBackgroundOntoScrollingContentsLayer(const char* elementId)
|
| + {
|
| + CompositedLayerMapping* mapping = toLayoutBlock(getLayoutObjectByElementId(elementId))->layer()->compositedLayerMapping();
|
| + return mapping->shouldPaintBackgroundOntoScrollingContentsLayer();
|
| + }
|
| +
|
| private:
|
| void SetUp() override
|
| {
|
| @@ -626,4 +632,31 @@ TEST_F(CompositedLayerMappingTest, ScrollingContentsAndForegroundLayerPaintingPh
|
| EXPECT_FALSE(mapping->foregroundLayer());
|
| }
|
|
|
| +TEST_F(CompositedLayerMappingTest, ShouldPaintBackgroundOntoScrollingContentsLayer)
|
| +{
|
| + document().frame()->settings()->setPreferCompositingToLCDTextEnabled(true);
|
| + setBodyInnerHTML(
|
| + "<style>.scroller { overflow: scroll; will-change: transform; width: 300px; height: 300px;} .spacer { height: 1000px; }</style>"
|
| + "<div id='scroller1' class='scroller' style='background: white local;'>"
|
| + " <div id='negative-composited-child' style='background-color: red; width: 1px; height: 1px; position: absolute; backface-visibility: hidden; z-index: -1'></div>"
|
| + " <div class='spacer'></div>"
|
| + "</div>"
|
| + "<div id='scroller2' class='scroller' style='background: white content-box; padding: 10px;'>"
|
| + " <div class='spacer'></div>"
|
| + "</div>"
|
| + "<div id='scroller3' class='scroller' style='background: white local content-box; padding: 10px;'>"
|
| + " <div class='spacer'></div>"
|
| + "</div>"
|
| + );
|
| +
|
| + // First scroller cannot paint background into scrolling contents layer because it has a negative z-index child.
|
| + EXPECT_FALSE(shouldPaintBackgroundOntoScrollingContentsLayer("scroller1"));
|
| +
|
| + // Second scroller cannot paint background into scrolling contents layer because it has a content-box clip without local attachment.
|
| + EXPECT_FALSE(shouldPaintBackgroundOntoScrollingContentsLayer("scroller2"));
|
| +
|
| + // Third scroller can paint background into scrolling contents layer.
|
| + EXPECT_TRUE(shouldPaintBackgroundOntoScrollingContentsLayer("scroller3"));
|
| +}
|
| +
|
| } // namespace blink
|
|
|