| Index: third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp b/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp
|
| index d0cb1b8e53f0a5ddc75b17cd19446bc846e7de66..c633a7f2d337723e829fa19201af03fdede1adfa 100644
|
| --- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableAreaTest.cpp
|
| @@ -28,7 +28,7 @@ class MockChromeClient : public EmptyChromeClient {
|
| }
|
| };
|
|
|
| -} // namespace {
|
| +} // namespace
|
|
|
| class PaintLayerScrollableAreaTest : public RenderingTest {
|
| public:
|
| @@ -548,4 +548,31 @@ TEST_F(PaintLayerScrollableAreaTest, HideTooltipWhenScrollPositionChanges) {
|
| .Times(0);
|
| scrollableArea->setScrollOffset(ScrollOffset(2, 2), ProgrammaticScroll);
|
| }
|
| +
|
| +TEST_F(PaintLayerScrollableAreaTest,
|
| + StickyPositionConstraintsInvalidatedByLayout) {
|
| + setBodyInnerHTML(
|
| + "<style>#scroller { overflow-y: scroll; height: 100px; }"
|
| + "#sticky { height: 25px; position: sticky; top: 0; }"
|
| + "#padding { height: 500px; }</style>"
|
| + "<div id='scroller'><div id='sticky'></div><div id='padding'></div>"
|
| + "</div>");
|
| +
|
| + LayoutBoxModelObject* scroller =
|
| + toLayoutBoxModelObject(getLayoutObjectByElementId("scroller"));
|
| + LayoutBoxModelObject* sticky =
|
| + toLayoutBoxModelObject(getLayoutObjectByElementId("sticky"));
|
| +
|
| + EXPECT_FALSE(sticky->layer()->needsCompositingInputsUpdate());
|
| +
|
| + PaintLayerScrollableArea* scrollableArea = scroller->getScrollableArea();
|
| + ASSERT_TRUE(scrollableArea);
|
| +
|
| + // Fake layout.
|
| + scrollableArea->updateAfterLayout();
|
| +
|
| + EXPECT_TRUE(sticky->layer()->needsCompositingInputsUpdate());
|
| + EXPECT_EQ(0u, scrollableArea->stickyConstraintsMap().size());
|
| }
|
| +
|
| +} // namespace blink
|
|
|