| Index: third_party/WebKit/Source/core/frame/FrameView.cpp
|
| diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| index ac7978e78fec30f3f694024d68cc30ae2103d1bd..d37c506630a9dfdfef1d643462d78d2143eec193 100644
|
| --- a/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| +++ b/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| @@ -136,6 +136,7 @@ FrameView::FrameView(LocalFrame* frame)
|
| , m_safeToPropagateScrollToParent(true)
|
| , m_isTrackingPaintInvalidations(false)
|
| , m_scrollCorner(nullptr)
|
| + , m_stickyPositionObjectCount(0)
|
| , m_inputEventsScaleFactorForEmulation(1)
|
| , m_layoutSizeFixedToFrameSize(true)
|
| , m_didScrollTimer(this, &FrameView::didScrollTimerFired)
|
| @@ -1601,6 +1602,14 @@ void FrameView::updateLayersAndCompositingAfterScrollIfNeeded()
|
| if (!hasViewportConstrainedObjects())
|
| return;
|
|
|
| + // Update sticky position objects which are stuck to the viewport.
|
| + for (const auto& viewportConstrainedObject : *m_viewportConstrainedObjects) {
|
| + LayoutObject* layoutObject = viewportConstrainedObject;
|
| + PaintLayer* layer = toLayoutBoxModelObject(layoutObject)->layer();
|
| + if (layoutObject->style()->position() == StickyPosition)
|
| + layer->updateLayerPosition();
|
| + }
|
| +
|
| // If there fixed position elements, scrolling may cause compositing layers to change.
|
| // Update widget and layer positions after scrolling, but only if we're not inside of
|
| // layout.
|
|
|