| Index: third_party/WebKit/Source/core/dom/Document.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
|
| index f05f277465d432d8b9a6bc5a7f928ba1b961aeee..5c1f0aa6a81e27e8dab5a4f13959aa809e79dd84 100644
|
| --- a/third_party/WebKit/Source/core/dom/Document.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/Document.cpp
|
| @@ -194,6 +194,7 @@
|
| #include "core/page/PointerLockController.h"
|
| #include "core/page/scrolling/RootScroller.h"
|
| #include "core/page/scrolling/ScrollingCoordinator.h"
|
| +#include "core/page/scrolling/SnapCoordinator.h"
|
| #include "core/svg/SVGDocumentExtensions.h"
|
| #include "core/svg/SVGScriptElement.h"
|
| #include "core/svg/SVGTitleElement.h"
|
| @@ -1625,6 +1626,9 @@ void Document::inheritHtmlAndBodyElementStyles(StyleRecalcChange change)
|
| columnGap = overflowStyle->columnGap();
|
| }
|
|
|
| + ScrollSnapType snapType = overflowStyle->getScrollSnapType();
|
| + const LengthPoint& snapDestination = overflowStyle->scrollSnapDestination();
|
| +
|
| RefPtr<ComputedStyle> documentStyle = layoutView()->mutableStyle();
|
| if (documentStyle->getWritingMode() != rootWritingMode
|
| || documentStyle->direction() != rootDirection
|
| @@ -1633,7 +1637,9 @@ void Document::inheritHtmlAndBodyElementStyles(StyleRecalcChange change)
|
| || documentStyle->imageRendering() != imageRendering
|
| || documentStyle->overflowX() != overflowX
|
| || documentStyle->overflowY() != overflowY
|
| - || documentStyle->columnGap() != columnGap) {
|
| + || documentStyle->columnGap() != columnGap
|
| + || documentStyle->getScrollSnapType() != snapType
|
| + || documentStyle->scrollSnapDestination() != snapDestination) {
|
| RefPtr<ComputedStyle> newStyle = ComputedStyle::clone(*documentStyle);
|
| newStyle->setWritingMode(rootWritingMode);
|
| newStyle->setDirection(rootDirection);
|
| @@ -1643,6 +1649,8 @@ void Document::inheritHtmlAndBodyElementStyles(StyleRecalcChange change)
|
| newStyle->setOverflowX(overflowX);
|
| newStyle->setOverflowY(overflowY);
|
| newStyle->setColumnGap(columnGap);
|
| + newStyle->setScrollSnapType(snapType);
|
| + newStyle->setScrollSnapDestination(snapDestination);
|
| layoutView()->setStyle(newStyle);
|
| setupFontBuilder(*newStyle);
|
| }
|
| @@ -5520,6 +5528,14 @@ bool Document::threadedParsingEnabledForTesting()
|
| return s_threadedParsingEnabledForTesting;
|
| }
|
|
|
| +SnapCoordinator* Document::snapCoordinator()
|
| +{
|
| + if (RuntimeEnabledFeatures::cssScrollSnapPointsEnabled() && !m_snapCoordinator)
|
| + m_snapCoordinator = SnapCoordinator::create();
|
| +
|
| + return m_snapCoordinator.get();
|
| +}
|
| +
|
| void Document::setContextFeatures(ContextFeatures& features)
|
| {
|
| m_contextFeatures = &features;
|
| @@ -5960,6 +5976,7 @@ DEFINE_TRACE(Document)
|
| visitor->trace(m_canvasFontCache);
|
| visitor->trace(m_intersectionObserverController);
|
| visitor->trace(m_intersectionObserverData);
|
| + visitor->trace(m_snapCoordinator);
|
| Supplementable<Document>::trace(visitor);
|
| TreeScope::trace(visitor);
|
| ContainerNode::trace(visitor);
|
|
|