Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinderTest.cpp |
| diff --git a/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinderTest.cpp b/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinderTest.cpp |
| index ce5ddb73319dffff4ac917288477a1df61a414b2..4a1872909b8dfe97a77c175b53900734422b3edc 100644 |
| --- a/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinderTest.cpp |
| +++ b/third_party/WebKit/Source/core/layout/compositing/CompositingReasonFinderTest.cpp |
| @@ -61,6 +61,56 @@ TEST_F(CompositingReasonFinderTest, PromoteOpaqueFixedPosition) { |
| EXPECT_EQ(NotComposited, paintLayer->compositingState()); |
| } |
| +TEST_F(CompositingReasonFinderTest, OnlyAnchoredStickyPositionPromoted) { |
| + document().frame()->settings()->setPreferCompositingToLCDTextEnabled(true); |
| + setBodyInnerHTML( |
| + "<style>" |
| + ".scroller {contain: paint; width: 400px; height: 400px; overflow: auto;}" |
| + ".sticky { position: sticky; width: 10px; height: 10px;}</style>" |
| + "<div class='scroller'>" |
| + " <div id='sticky-top' class='sticky' style='top: 0px;'></div>" |
| + " <div id='sticky-no-anchor' class='sticky'></div>" |
| + " <div style='height: 2000px;'></div>" |
| + "</div>"); |
| + document().view()->updateAllLifecyclePhases(); |
| + |
| + EXPECT_EQ(PaintsIntoOwnBacking, |
| + toLayoutBoxModelObject(getLayoutObjectByElementId("sticky-top")) |
| + ->layer() |
| + ->compositingState()); |
| + EXPECT_EQ(NotComposited, toLayoutBoxModelObject( |
| + getLayoutObjectByElementId("sticky-no-anchor")) |
| + ->layer() |
| + ->compositingState()); |
| +} |
| + |
| +TEST_F(CompositingReasonFinderTest, OnlyScrollingStickyPositionPromoted) { |
| + document().frame()->settings()->setPreferCompositingToLCDTextEnabled(true); |
|
chrishtr
2017/03/16 00:24:04
Does this just composite the class='scroller' elem
flackr
2017/03/20 21:04:59
Done.
|
| + setBodyInnerHTML( |
| + "<style>.scroller {width: 400px; height: 400px; overflow: auto;}" |
| + ".sticky { position: sticky; top: 0; width: 10px; height: 10px;}" |
| + "</style>" |
| + "<div class='scroller'>" |
| + " <div id='sticky-scrolling' class='sticky'></div>" |
| + " <div style='height: 2000px;'></div>" |
| + "</div>" |
| + "<div class='scroller'>" |
| + " <div id='sticky-no-scrolling' class='sticky'></div>" |
| + "</div>"); |
| + document().view()->updateAllLifecyclePhases(); |
| + |
| + EXPECT_EQ( |
| + PaintsIntoOwnBacking, |
| + toLayoutBoxModelObject(getLayoutObjectByElementId("sticky-scrolling")) |
| + ->layer() |
| + ->compositingState()); |
| + EXPECT_EQ( |
| + NotComposited, |
| + toLayoutBoxModelObject(getLayoutObjectByElementId("sticky-no-scrolling")) |
| + ->layer() |
| + ->compositingState()); |
| +} |
| + |
| // Tests that a transform on the fixed or an ancestor will prevent promotion |
| // TODO(flackr): Allow integer transforms as long as all of the ancestor |
| // transforms are also integer. |