Move synchronousScrollingReasons to ScrollingTreeScrollingNode
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 6 Mar 2020 19:28:35 +0000 (19:28 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 6 Mar 2020 19:28:35 +0000 (19:28 +0000)
https://bugs.webkit.org/show_bug.cgi?id=208721

Reviewed by Antti Koivisto.

Source/WebCore:

synchronousScrollingReasons was on Scrolling*FrameScrollingNode, but with async overflow
scrolling, some overflow scrolls will need to scroll synchronously if they paint any
background-attachment:fixed, so move synchronousScrollingReasons down to Scrolling*ScrollingNode.

Also wrap the scrolling tree parts in #if ENABLE(SCROLLING_THREAD) since synchronous scrolling
is only a thing if you use threaded scrolling. Ideally more of the ScrollingCoordinator code
would also have #if ENABLE(SCROLLING_THREAD) but that can be done later.

* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
* page/scrolling/ScrollingStateFrameScrollingNode.cpp:
(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setPropertyChangedBitsAfterReattach):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):
(WebCore::ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons): Deleted.
* page/scrolling/ScrollingStateFrameScrollingNode.h:
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setPropertyChangedBitsAfterReattach):
(WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateScrollingNode::dumpProperties const):
* page/scrolling/ScrollingStateScrollingNode.h:
(WebCore::ScrollingStateScrollingNode::synchronousScrollingReasons const):
* page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNode::dumpProperties const):
* page/scrolling/ScrollingTreeFrameScrollingNode.h:
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeScrollingNode::dumpProperties const):
* page/scrolling/ScrollingTreeScrollingNode.h:

Source/WebKit:

No need to send synchronousScrollingReasons to the UI process; it makes no sense there.

* Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
(WebKit::dump):

LayoutTests:

Rebaselined.

* tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@258012 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 files changed:
LayoutTests/ChangeLog
LayoutTests/tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.cpp
Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.h
Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp
Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h
Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp
Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h
Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp
Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h
Source/WebKit/ChangeLog
Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp

index 5ab4137..59efb5c 100644 (file)
@@ -1,3 +1,14 @@
+2020-03-06  Simon Fraser  <simon.fraser@apple.com>
+
+        Move synchronousScrollingReasons to ScrollingTreeScrollingNode
+        https://bugs.webkit.org/show_bug.cgi?id=208721
+
+        Reviewed by Antti Koivisto.
+
+               Rebaselined.
+
+        * tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
+
 2020-03-06  Jason Lawrence  <lawrence.j@apple.com>
 
         [ Mac ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-max-value.htm is flaky failing.
index 1a9a252..d3fd318 100644 (file)
@@ -7,10 +7,10 @@
     (vertical scroll elasticity 2)
     (horizontal scrollbar mode 0)
     (vertical scrollbar mode 0))
+  (Scrolling on main thread because: Has slow repaint objects)
   (layout viewport at (0,0) size 800x600)
   (min layout viewport origin (0,0))
   (max layout viewport origin (0,0))
-  (Scrolling on main thread because: Has slow repaint objects)
   (behavior for fixed 0)
 )
 
index cde426d..8941edd 100644 (file)
@@ -1,5 +1,44 @@
 2020-03-06  Simon Fraser  <simon.fraser@apple.com>
 
+        Move synchronousScrollingReasons to ScrollingTreeScrollingNode
+        https://bugs.webkit.org/show_bug.cgi?id=208721
+
+        Reviewed by Antti Koivisto.
+
+        synchronousScrollingReasons was on Scrolling*FrameScrollingNode, but with async overflow
+        scrolling, some overflow scrolls will need to scroll synchronously if they paint any
+        background-attachment:fixed, so move synchronousScrollingReasons down to Scrolling*ScrollingNode.
+
+        Also wrap the scrolling tree parts in #if ENABLE(SCROLLING_THREAD) since synchronous scrolling
+        is only a thing if you use threaded scrolling. Ideally more of the ScrollingCoordinator code
+        would also have #if ENABLE(SCROLLING_THREAD) but that can be done later.
+
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
+        * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
+        (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
+        (WebCore::ScrollingStateFrameScrollingNode::setPropertyChangedBitsAfterReattach):
+        (WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):
+        (WebCore::ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons): Deleted.
+        * page/scrolling/ScrollingStateFrameScrollingNode.h:
+        * page/scrolling/ScrollingStateScrollingNode.cpp:
+        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
+        (WebCore::ScrollingStateScrollingNode::setPropertyChangedBitsAfterReattach):
+        (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
+        (WebCore::ScrollingStateScrollingNode::dumpProperties const):
+        * page/scrolling/ScrollingStateScrollingNode.h:
+        (WebCore::ScrollingStateScrollingNode::synchronousScrollingReasons const):
+        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+        (WebCore::ScrollingTreeFrameScrollingNode::commitStateBeforeChildren):
+        (WebCore::ScrollingTreeFrameScrollingNode::dumpProperties const):
+        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+        * page/scrolling/ScrollingTreeScrollingNode.cpp:
+        (WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
+        (WebCore::ScrollingTreeScrollingNode::dumpProperties const):
+        * page/scrolling/ScrollingTreeScrollingNode.h:
+
+2020-03-06  Simon Fraser  <simon.fraser@apple.com>
+
         Make it possible to safely access CALayers and PlatformCALayerCocoa objects on the scrolling thread
         https://bugs.webkit.org/show_bug.cgi?id=208672
 
index 7130e6b..c5e55ea 100644 (file)
@@ -743,7 +743,11 @@ void AsyncScrollingCoordinator::setSynchronousScrollingReasons(FrameView& frameV
     // in order to avoid layer positioning bugs.
     if (reasons)
         reconcileScrollPosition(frameView, ScrollingLayerPositionAction::Set);
+
+    // FIXME: Ideally all the "synchronousScrollingReasons" functions should be #ifdeffed.
+#if ENABLE(SCROLLING_THREAD)
     scrollingStateNode->setSynchronousScrollingReasons(reasons);
+#endif
 }
 
 bool AsyncScrollingCoordinator::isRubberBandInProgress() const
index dbc5951..aff43b5 100644 (file)
@@ -55,7 +55,6 @@ ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode(const Scrolli
     , m_topContentInset(stateNode.topContentInset())
     , m_headerHeight(stateNode.headerHeight())
     , m_footerHeight(stateNode.footerHeight())
-    , m_synchronousScrollingReasons(stateNode.synchronousScrollingReasons())
     , m_behaviorForFixed(stateNode.scrollBehaviorForFixedElements())
     , m_fixedElementsLayoutRelativeToFrame(stateNode.fixedElementsLayoutRelativeToFrame())
     , m_visualViewportIsSmallerThanLayoutViewport(stateNode.visualViewportIsSmallerThanLayoutViewport())
@@ -91,7 +90,6 @@ void ScrollingStateFrameScrollingNode::setPropertyChangedBitsAfterReattach()
 {
     setPropertyChangedBit(FrameScaleFactor);
     setPropertyChangedBit(EventTrackingRegion);
-    setPropertyChangedBit(ReasonsForSynchronousScrolling);
     setPropertyChangedBit(RootContentsLayer);
     setPropertyChangedBit(ScrolledContentsLayer);
     setPropertyChangedBit(CounterScrollingLayer);
@@ -133,15 +131,6 @@ void ScrollingStateFrameScrollingNode::setEventTrackingRegions(const EventTracki
     setPropertyChanged(EventTrackingRegion);
 }
 
-void ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons(OptionSet<SynchronousScrollingReason> reasons)
-{
-    if (m_synchronousScrollingReasons == reasons)
-        return;
-
-    m_synchronousScrollingReasons = reasons;
-    setPropertyChanged(ReasonsForSynchronousScrolling);
-}
-
 void ScrollingStateFrameScrollingNode::setScrollBehaviorForFixedElements(ScrollBehaviorForFixedElements behaviorForFixed)
 {
     if (m_behaviorForFixed == behaviorForFixed)
@@ -353,9 +342,6 @@ void ScrollingStateFrameScrollingNode::dumpProperties(TextStream& ts, ScrollingS
         }
     }
 
-    if (!m_synchronousScrollingReasons.isEmpty())
-        ts.dumpProperty("Scrolling on main thread because:", ScrollingCoordinator::synchronousScrollingReasonsAsText(m_synchronousScrollingReasons));
-    
     ts.dumpProperty("behavior for fixed", m_behaviorForFixed);
 
     if (m_visualViewportIsSmallerThanLayoutViewport)
index 5bbdf0b..1098f29 100644 (file)
@@ -48,7 +48,6 @@ public:
     enum ChangedProperty {
         FrameScaleFactor = NumScrollingStateNodeBits,
         EventTrackingRegion,
-        ReasonsForSynchronousScrolling,
         RootContentsLayer,
         ScrolledContentsLayer,
         CounterScrollingLayer,
@@ -75,9 +74,6 @@ public:
     const EventTrackingRegions& eventTrackingRegions() const { return m_eventTrackingRegions; }
     WEBCORE_EXPORT void setEventTrackingRegions(const EventTrackingRegions&);
 
-    OptionSet<SynchronousScrollingReason> synchronousScrollingReasons() const { return m_synchronousScrollingReasons; }
-    WEBCORE_EXPORT void setSynchronousScrollingReasons(OptionSet<SynchronousScrollingReason>);
-
     ScrollBehaviorForFixedElements scrollBehaviorForFixedElements() const { return m_behaviorForFixed; }
     WEBCORE_EXPORT void setScrollBehaviorForFixedElements(ScrollBehaviorForFixedElements);
 
@@ -164,7 +160,6 @@ private:
     float m_topContentInset { 0 };
     int m_headerHeight { 0 };
     int m_footerHeight { 0 };
-    OptionSet<SynchronousScrollingReason> m_synchronousScrollingReasons;
     ScrollBehaviorForFixedElements m_behaviorForFixed { StickToDocumentBounds };
     bool m_fixedElementsLayoutRelativeToFrame { false };
     bool m_visualViewportIsSmallerThanLayoutViewport { false };
index 2968969..1c9796f 100644 (file)
@@ -54,6 +54,9 @@ ScrollingStateScrollingNode::ScrollingStateScrollingNode(const ScrollingStateScr
 #endif
     , m_scrollableAreaParameters(stateNode.scrollableAreaParameters())
     , m_requestedScrollData(stateNode.requestedScrollData())
+#if ENABLE(SCROLLING_THREAD)
+    , m_synchronousScrollingReasons(stateNode.synchronousScrollingReasons())
+#endif
     , m_isMonitoringWheelEvents(stateNode.isMonitoringWheelEvents())
 {
     if (hasChangedProperty(ScrollContainerLayer))
@@ -79,6 +82,9 @@ void ScrollingStateScrollingNode::setPropertyChangedBitsAfterReattach()
     setPropertyChangedBit(ScrollPosition);
     setPropertyChangedBit(ScrollOrigin);
     setPropertyChangedBit(ScrollableAreaParams);
+#if ENABLE(SCROLLING_THREAD)
+    setPropertyChangedBit(ReasonsForSynchronousScrolling);
+#endif
 #if ENABLE(CSS_SCROLL_SNAP)
     setPropertyChangedBit(HorizontalSnapOffsets);
     setPropertyChangedBit(VerticalSnapOffsets);
@@ -207,6 +213,17 @@ void ScrollingStateScrollingNode::setScrollableAreaParameters(const ScrollableAr
     setPropertyChanged(ScrollableAreaParams);
 }
 
+#if ENABLE(SCROLLING_THREAD)
+void ScrollingStateScrollingNode::setSynchronousScrollingReasons(OptionSet<SynchronousScrollingReason> reasons)
+{
+    if (m_synchronousScrollingReasons == reasons)
+        return;
+
+    m_synchronousScrollingReasons = reasons;
+    setPropertyChanged(ReasonsForSynchronousScrolling);
+}
+#endif
+
 void ScrollingStateScrollingNode::setRequestedScrollData(const RequestedScrollData& scrollData)
 {
     // Scroll position requests are imperative, not stateful, so we can't early return here.
@@ -324,6 +341,11 @@ void ScrollingStateScrollingNode::dumpProperties(TextStream& ts, ScrollingStateT
 
     ts.dumpProperty("scrollable area parameters", m_scrollableAreaParameters);
 
+#if ENABLE(SCROLLING_THREAD)
+    if (!m_synchronousScrollingReasons.isEmpty())
+        ts.dumpProperty("Scrolling on main thread because:", ScrollingCoordinator::synchronousScrollingReasonsAsText(m_synchronousScrollingReasons));
+#endif
+
     if (m_isMonitoringWheelEvents)
         ts.dumpProperty("expects wheel event test trigger", m_isMonitoringWheelEvents);
 
index 8df7be8..e3d768b 100644 (file)
@@ -62,6 +62,9 @@ public:
         ScrollPosition,
         ScrollOrigin,
         ScrollableAreaParams,
+#if ENABLE(SCROLLING_THREAD)
+        ReasonsForSynchronousScrolling,
+#endif
         RequestedScrollPosition,
 #if ENABLE(CSS_SCROLL_SNAP)
         HorizontalSnapOffsets,
@@ -118,6 +121,11 @@ public:
     const ScrollableAreaParameters& scrollableAreaParameters() const { return m_scrollableAreaParameters; }
     WEBCORE_EXPORT void setScrollableAreaParameters(const ScrollableAreaParameters& params);
 
+#if ENABLE(SCROLLING_THREAD)
+    OptionSet<SynchronousScrollingReason> synchronousScrollingReasons() const { return m_synchronousScrollingReasons; }
+    WEBCORE_EXPORT void setSynchronousScrollingReasons(OptionSet<SynchronousScrollingReason>);
+#endif
+
     const RequestedScrollData& requestedScrollData() const { return m_requestedScrollData; }
     WEBCORE_EXPORT void setRequestedScrollData(const RequestedScrollData&);
 
@@ -176,7 +184,9 @@ private:
 
     ScrollableAreaParameters m_scrollableAreaParameters;
     RequestedScrollData m_requestedScrollData;
-
+#if ENABLE(SCROLLING_THREAD)
+    OptionSet<SynchronousScrollingReason> m_synchronousScrollingReasons;
+#endif
     bool m_isMonitoringWheelEvents { false };
 };
 
index e0ffee0..58cefec 100644 (file)
@@ -54,9 +54,6 @@ void ScrollingTreeFrameScrollingNode::commitStateBeforeChildren(const ScrollingS
     if (state.hasChangedProperty(ScrollingStateFrameScrollingNode::FrameScaleFactor))
         m_frameScaleFactor = state.frameScaleFactor();
 
-    if (state.hasChangedProperty(ScrollingStateFrameScrollingNode::ReasonsForSynchronousScrolling))
-        m_synchronousScrollingReasons = state.synchronousScrollingReasons();
-
     if (state.hasChangedProperty(ScrollingStateFrameScrollingNode::HeaderHeight))
         m_headerHeight = state.headerHeight();
 
@@ -156,8 +153,6 @@ void ScrollingTreeFrameScrollingNode::dumpProperties(TextStream& ts, ScrollingSt
         ts.dumpProperty("header height", m_headerHeight);
     if (m_footerHeight)
         ts.dumpProperty("footer height", m_footerHeight);
-    if (!m_synchronousScrollingReasons.isEmpty())
-        ts.dumpProperty("synchronous scrolling reasons", ScrollingCoordinator::synchronousScrollingReasonsAsText(m_synchronousScrollingReasons));
 
     ts.dumpProperty("behavior for fixed", m_behaviorForFixed);
     if (m_fixedElementsLayoutRelativeToFrame)
index 22f3c2c..7179b2e 100644 (file)
@@ -41,8 +41,6 @@ public:
 
     void commitStateBeforeChildren(const ScrollingStateNode&) override;
     
-    OptionSet<SynchronousScrollingReason> synchronousScrollingReasons() const { return m_synchronousScrollingReasons; }
-    bool shouldUpdateScrollLayerPositionSynchronously() const { return !m_synchronousScrollingReasons.isEmpty(); }
     bool fixedElementsLayoutRelativeToFrame() const { return m_fixedElementsLayoutRelativeToFrame; }
     bool visualViewportIsSmallerThanLayoutViewport() const { return m_visualViewportIsSmallerThanLayoutViewport; }
 
@@ -85,7 +83,6 @@ private:
     int m_headerHeight { 0 };
     int m_footerHeight { 0 };
     
-    OptionSet<SynchronousScrollingReason> m_synchronousScrollingReasons;
     ScrollBehaviorForFixedElements m_behaviorForFixed { StickToDocumentBounds };
     
     bool m_fixedElementsLayoutRelativeToFrame { false };
index 7b64dba..6b7f774 100644 (file)
@@ -94,6 +94,11 @@ void ScrollingTreeScrollingNode::commitStateBeforeChildren(const ScrollingStateN
     if (state.hasChangedProperty(ScrollingStateScrollingNode::ScrollableAreaParams))
         m_scrollableAreaParameters = state.scrollableAreaParameters();
 
+#if ENABLE(SCROLLING_THREAD)
+    if (state.hasChangedProperty(ScrollingStateFrameScrollingNode::ReasonsForSynchronousScrolling))
+        m_synchronousScrollingReasons = state.synchronousScrollingReasons();
+#endif
+
     if (state.hasChangedProperty(ScrollingStateScrollingNode::ScrollContainerLayer))
         m_scrollContainerLayer = state.scrollContainerLayer();
 
@@ -239,6 +244,11 @@ void ScrollingTreeScrollingNode::dumpProperties(TextStream& ts, ScrollingStateTr
 #endif
 
     ts.dumpProperty("scrollable area parameters", m_scrollableAreaParameters);
+
+#if ENABLE(SCROLLING_THREAD)
+    if (!m_synchronousScrollingReasons.isEmpty())
+        ts.dumpProperty("synchronous scrolling reasons", ScrollingCoordinator::synchronousScrollingReasonsAsText(m_synchronousScrollingReasons));
+#endif
 }
 
 } // namespace WebCore
index 4ea6b32..2b42e43 100644 (file)
@@ -65,6 +65,11 @@ public:
 
     void wasScrolledByDelegatedScrolling(const FloatPoint& position, Optional<FloatRect> overrideLayoutViewport = { }, ScrollingLayerPositionAction = ScrollingLayerPositionAction::Sync);
     
+#if ENABLE(SCROLLING_THREAD)
+    OptionSet<SynchronousScrollingReason> synchronousScrollingReasons() const { return m_synchronousScrollingReasons; }
+    bool shouldUpdateScrollLayerPositionSynchronously() const { return !m_synchronousScrollingReasons.isEmpty(); }
+#endif
+
     const FloatSize& scrollableAreaSize() const { return m_scrollableAreaSize; }
     const FloatSize& totalContentsSize() const { return m_totalContentsSize; }
 
@@ -140,6 +145,9 @@ private:
     unsigned m_currentVerticalSnapPointIndex { 0 };
 #endif
     ScrollableAreaParameters m_scrollableAreaParameters;
+#if ENABLE(SCROLLING_THREAD)
+    OptionSet<SynchronousScrollingReason> m_synchronousScrollingReasons;
+#endif
     bool m_isFirstCommit { true };
 
     LayerRepresentation m_scrollContainerLayer;
index 651e850..baacbc9 100644 (file)
@@ -1,3 +1,18 @@
+2020-03-06  Simon Fraser  <simon.fraser@apple.com>
+
+        Move synchronousScrollingReasons to ScrollingTreeScrollingNode
+        https://bugs.webkit.org/show_bug.cgi?id=208721
+
+        Reviewed by Antti Koivisto.
+
+        No need to send synchronousScrollingReasons to the UI process; it makes no sense there.
+
+        * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
+        (ArgumentCoder<ScrollingStateScrollingNode>::encode):
+        (ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
+        (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
+        (WebKit::dump):
+
 2020-03-06  Sihui Liu  <sihui_liu@apple.com>
 
         UIProcess crash after using _prepareForMoveToWindow, then deallocating the WKWebView before moving to the window
index 797c73b..d5956c6 100644 (file)
@@ -157,6 +157,7 @@ void ArgumentCoder<ScrollingStateScrollingNode>::encode(Encoder& encoder, const
     SCROLLING_NODE_ENCODE(ScrollingStateScrollingNode::CurrentVerticalSnapOffsetIndex, currentVerticalSnapPointIndex)
 #endif
     SCROLLING_NODE_ENCODE(ScrollingStateScrollingNode::ScrollableAreaParams, scrollableAreaParameters)
+    // UI-side compositing can't do synchronous scrolling so don't encode synchronousScrollingReasons.
     SCROLLING_NODE_ENCODE(ScrollingStateScrollingNode::RequestedScrollPosition, requestedScrollData)
 
     if (node.hasChangedProperty(ScrollingStateScrollingNode::ScrollContainerLayer))
@@ -178,7 +179,6 @@ void ArgumentCoder<ScrollingStateFrameScrollingNode>::encode(Encoder& encoder, c
 
     SCROLLING_NODE_ENCODE(ScrollingStateFrameScrollingNode::FrameScaleFactor, frameScaleFactor)
     SCROLLING_NODE_ENCODE(ScrollingStateFrameScrollingNode::EventTrackingRegion, eventTrackingRegions)
-    SCROLLING_NODE_ENCODE(ScrollingStateFrameScrollingNode::ReasonsForSynchronousScrolling, synchronousScrollingReasons)
     SCROLLING_NODE_ENCODE_ENUM(ScrollingStateFrameScrollingNode::BehaviorForFixedElements, scrollBehaviorForFixedElements)
     SCROLLING_NODE_ENCODE(ScrollingStateFrameScrollingNode::HeaderHeight, headerHeight)
     SCROLLING_NODE_ENCODE(ScrollingStateFrameScrollingNode::FooterHeight, footerHeight)
@@ -295,7 +295,6 @@ bool ArgumentCoder<ScrollingStateFrameScrollingNode>::decode(Decoder& decoder, S
 
     SCROLLING_NODE_DECODE(ScrollingStateFrameScrollingNode::FrameScaleFactor, float, setFrameScaleFactor);
     SCROLLING_NODE_DECODE(ScrollingStateFrameScrollingNode::EventTrackingRegion, EventTrackingRegions, setEventTrackingRegions);
-    SCROLLING_NODE_DECODE(ScrollingStateFrameScrollingNode::ReasonsForSynchronousScrolling, OptionSet<SynchronousScrollingReason>, setSynchronousScrollingReasons);
     SCROLLING_NODE_DECODE_ENUM(ScrollingStateFrameScrollingNode::BehaviorForFixedElements, ScrollBehaviorForFixedElements, setScrollBehaviorForFixedElements);
 
     SCROLLING_NODE_DECODE(ScrollingStateFrameScrollingNode::HeaderHeight, int, setHeaderHeight);
@@ -668,7 +667,6 @@ static void dump(TextStream& ts, const ScrollingStateFrameScrollingNode& node, b
         }
     }
 
-    // FIXME: dump synchronousScrollingReasons
     // FIXME: dump scrollableAreaParameters
     // FIXME: dump scrollBehaviorForFixedElements