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); |