| 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 bfe3fce336326a5a609eb5869dbf5e159675cc07..9a55caf780a3585924218bc5a426d5e8aaf27c0a 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)
|
| @@ -1613,6 +1614,14 @@ void FrameView::updateLayersAndCompositingAfterScrollIfNeeded()
|
|
|
| RawPtr<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.
|
|
|