| 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 4d0b6ba9a6f89a203b944deb16c160f5449a7548..96b1b27fc38795afb52cf6fcdc046db83ff86d3e 100644
|
| --- a/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| +++ b/third_party/WebKit/Source/core/frame/FrameView.cpp
|
| @@ -135,6 +135,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)
|
| @@ -1616,6 +1617,14 @@ void FrameView::updateLayersAndCompositingAfterScrollIfNeeded()
|
|
|
| RefPtrWillBeRawPtr<FrameView> protect(this);
|
|
|
| + // 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.
|
|
|