Changeset 285893 in webkit
- Timestamp:
- Nov 16, 2021, 3:53:48 PM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 11 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/page/FrameView.cpp (modified) (1 diff)
-
WebCore/page/FrameView.h (modified) (1 diff)
-
WebCore/page/scrolling/AsyncScrollingCoordinator.cpp (modified) (1 diff)
-
WebCore/page/scrolling/ScrollingCoordinatorTypes.h (modified) (2 diffs)
-
WebCore/platform/ScrollableArea.h (modified) (1 diff)
-
WebCore/rendering/RenderLayerScrollableArea.cpp (modified) (1 diff)
-
WebCore/rendering/RenderLayerScrollableArea.h (modified) (1 diff)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/Shared/WebCoreArgumentCoders.cpp (modified) (2 diffs)
-
WebKit/Shared/WebCoreArgumentCoders.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r285885 r285893 1 2021-11-16 Nikolaos Mouchtaris <nmouchtaris@apple.com> 2 3 Add overscroll behavior to ScrollableAreaParameters 4 https://bugs.webkit.org/show_bug.cgi?id=233159 5 6 Reviewed by Simon Fraser. 7 8 Split patch by Cathie Chen and Frederic Wang. This patch lands the addition of 9 horizontalOverscrollBehavior and verticalOverscrollBehavior to ScrollableAreaParameters 10 to track value of over scroll behavior for particular scroll node. Patches for synchronous/ 11 asynchronous scrolling on Mac and on iOS to come. 12 13 * page/scrolling/AsyncScrollingCoordinator.cpp: 14 (WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry): 15 * page/scrolling/ScrollingCoordinatorTypes.h: 16 (WebCore::ScrollableAreaParameters::operator== const): 17 * page/scrolling/ScrollingTreeScrollingNode.h: 18 * platform/ScrollableArea.h: 19 (WebCore::ScrollableArea::horizontalOverscrollBehavior const): 20 (WebCore::ScrollableArea::verticalOverscrollBehavior const): 21 * rendering/RenderLayerScrollableArea.cpp: 22 (WebCore::RenderLayerScrollableArea::horizontalOverscrollBehavior const): 23 (WebCore::RenderLayerScrollableArea::verticalOverscrollBehavior const): 24 * rendering/RenderLayerScrollableArea.h: 25 1 26 2021-11-16 Rob Buis <rbuis@igalia.com> 2 27 -
trunk/Source/WebCore/page/FrameView.cpp
r285885 r285893 5740 5740 } 5741 5741 } 5742 5743 OverscrollBehavior FrameView::horizontalOverscrollBehavior() const 5744 { 5745 auto* document = frame().document(); 5746 auto scrollingObject = document && document->documentElement() ? document->documentElement()->renderer() : nullptr; 5747 if (scrollingObject && renderView() && renderView()->canBeScrolledAndHasScrollableArea()) 5748 return scrollingObject->style().overscrollBehaviorX(); 5749 return OverscrollBehavior::Auto; 5750 } 5751 5752 OverscrollBehavior FrameView::verticalOverscrollBehavior() const 5753 { 5754 auto* document = frame().document(); 5755 auto scrollingObject = document && document->documentElement() ? document->documentElement()->renderer() : nullptr; 5756 if (scrollingObject && renderView() && renderView()->canBeScrolledAndHasScrollableArea()) 5757 return scrollingObject->style().overscrollBehaviorY(); 5758 return OverscrollBehavior::Auto; 5759 } 5742 5760 } // namespace WebCore 5743 5761 -
trunk/Source/WebCore/page/FrameView.h
r285345 r285893 700 700 // ScrollView 701 701 void updateScrollbarSteps() override; 702 703 OverscrollBehavior horizontalOverscrollBehavior() const final; 704 OverscrollBehavior verticalOverscrollBehavior() const final; 702 705 703 706 private: -
trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
r285526 r285893 793 793 scrollParameters.allowsHorizontalScrolling = scrollableArea.allowsHorizontalScrolling(); 794 794 scrollParameters.allowsVerticalScrolling = scrollableArea.allowsVerticalScrolling(); 795 scrollParameters.horizontalOverscrollBehavior = scrollableArea.horizontalOverscrollBehavior(); 796 scrollParameters.verticalOverscrollBehavior = scrollableArea.verticalOverscrollBehavior(); 795 797 scrollParameters.horizontalScrollbarMode = scrollableArea.horizontalScrollbarMode(); 796 798 scrollParameters.verticalScrollbarMode = scrollableArea.verticalScrollbarMode(); -
trunk/Source/WebCore/page/scrolling/ScrollingCoordinatorTypes.h
r285357 r285893 77 77 ScrollbarMode horizontalScrollbarMode { ScrollbarMode::Auto }; 78 78 ScrollbarMode verticalScrollbarMode { ScrollbarMode::Auto }; 79 80 OverscrollBehavior horizontalOverscrollBehavior { OverscrollBehavior::Auto }; 81 OverscrollBehavior verticalOverscrollBehavior { OverscrollBehavior::Auto }; 79 82 80 83 bool allowsHorizontalScrolling { false }; … … 92 95 && horizontalScrollbarMode == other.horizontalScrollbarMode 93 96 && verticalScrollbarMode == other.verticalScrollbarMode 97 && horizontalOverscrollBehavior == other.horizontalOverscrollBehavior 98 && verticalOverscrollBehavior == other.verticalOverscrollBehavior 94 99 && allowsHorizontalScrolling == other.allowsHorizontalScrolling 95 100 && allowsVerticalScrolling == other.allowsVerticalScrolling -
trunk/Source/WebCore/platform/ScrollableArea.h
r285357 r285893 128 128 virtual bool horizontalScrollbarHiddenByStyle() const { return false; } 129 129 virtual bool verticalScrollbarHiddenByStyle() const { return false; } 130 131 virtual OverscrollBehavior horizontalOverscrollBehavior() const { return OverscrollBehavior::Auto; } 132 virtual OverscrollBehavior verticalOverscrollBehavior() const { return OverscrollBehavior::Auto; } 130 133 131 134 bool allowsHorizontalScrolling() const; -
trunk/Source/WebCore/rendering/RenderLayerScrollableArea.cpp
r285347 r285893 948 948 } 949 949 950 OverscrollBehavior RenderLayerScrollableArea::horizontalOverscrollBehavior() const 951 { 952 if (m_layer.renderBox() && m_layer.renderBox()->canBeScrolledAndHasScrollableArea()) 953 return m_layer.renderer().style().overscrollBehaviorX(); 954 return OverscrollBehavior::Auto; 955 } 956 957 OverscrollBehavior RenderLayerScrollableArea::verticalOverscrollBehavior() const 958 { 959 if (m_layer.renderBox() && m_layer.renderBox()->canBeScrolledAndHasScrollableArea()) 960 return m_layer.renderer().style().overscrollBehaviorY(); 961 return OverscrollBehavior::Auto; 962 } 963 950 964 bool RenderLayerScrollableArea::hasOverflowControls() const 951 965 { -
trunk/Source/WebCore/rendering/RenderLayerScrollableArea.h
r285205 r285893 104 104 void setHasHorizontalScrollbar(bool); 105 105 void setHasVerticalScrollbar(bool); 106 107 OverscrollBehavior horizontalOverscrollBehavior() const final; 108 OverscrollBehavior verticalOverscrollBehavior() const final; 106 109 107 110 bool requiresScrollPositionReconciliation() const { return m_requiresScrollPositionReconciliation; } -
trunk/Source/WebKit/ChangeLog
r285889 r285893 1 2021-11-16 Nikolaos Mouchtaris <nmouchtaris@apple.com> 2 3 Add overscroll behavior to ScrollableAreaParameters 4 https://bugs.webkit.org/show_bug.cgi?id=233159 5 6 Reviewed by Simon Fraser. 7 8 * Shared/WebCoreArgumentCoders.cpp: 9 (IPC::ArgumentCoder<ScrollableAreaParameters>::encode): 10 (IPC::ArgumentCoder<ScrollableAreaParameters>::decode): 11 * Shared/WebCoreArgumentCoders.h: 12 1 13 2021-11-16 Per Arne Vollan <pvollan@apple.com> 2 14 -
trunk/Source/WebKit/Shared/WebCoreArgumentCoders.cpp
r285709 r285893 2022 2022 encoder << parameters.horizontalScrollbarMode; 2023 2023 encoder << parameters.verticalScrollbarMode; 2024 2025 encoder << parameters.horizontalOverscrollBehavior; 2026 encoder << parameters.verticalOverscrollBehavior; 2024 2027 2025 2028 encoder << parameters.allowsHorizontalScrolling; … … 2042 2045 return false; 2043 2046 if (!decoder.decode(params.verticalScrollbarMode)) 2047 return false; 2048 2049 if (!decoder.decode(params.horizontalOverscrollBehavior)) 2050 return false; 2051 if (!decoder.decode(params.verticalOverscrollBehavior)) 2044 2052 return false; 2045 2053 -
trunk/Source/WebKit/Shared/WebCoreArgumentCoders.h
r284075 r285893 53 53 #include <WebCore/RenderingMode.h> 54 54 #include <WebCore/ScrollSnapOffsetsInfo.h> 55 #include <WebCore/ScrollTypes.h> 55 56 #include <WebCore/SerializedPlatformDataCueValue.h> 56 57 #include <WebCore/ServiceWorkerTypes.h> … … 1028 1029 }; 1029 1030 1031 template<> struct EnumTraits<WebCore::OverscrollBehavior> { 1032 using values = EnumValues< 1033 WebCore::OverscrollBehavior, 1034 WebCore::OverscrollBehavior::Auto, 1035 WebCore::OverscrollBehavior::Contain, 1036 WebCore::OverscrollBehavior::None 1037 >; 1038 }; 1039 1030 1040 } // namespace WTF
Note:
See TracChangeset
for help on using the changeset viewer.