Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 231d6768da287cf5c43dab04722adaed9324d343
https://github.com/WebKit/WebKit/commit/231d6768da287cf5c43dab04722adaed9324d343
Author: Simon Fraser <[email protected]>
Date: 2026-07-18 (Sat, 18 Jul 2026)
Changed paths:
M LayoutTests/TestExpectations
M
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-001.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-002.html
M Source/WebCore/dom/Element.cpp
M Source/WebCore/page/LocalFrameView.cpp
M Source/WebCore/page/ScrollIntoViewOptions.h
M Source/WebCore/page/ScrollIntoViewOptions.idl
M Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp
M Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.h
Log Message:
-----------
[Scroll snap] Respect scroll-snap-align for `scrollToAnchor()` and
`scrollIntoView()`
https://bugs.webkit.org/show_bug.cgi?id=319703
rdar://182544180
Reviewed by Tim Nguyen.
`scroll-snap-align`[1] should impact scrolling to anchors, and scrollIntoView
per spec.
Add `adjustScrollAlignmentForScrollSnapAlign()` which computes alignment, and
call it
from `LocalFrameView::scrollToAnchor()` and `Element::scrollIntoView()`. In the
latter
case, it should only override the chosen alignment if the `options` dict
doesn't already
contain alignment data.
[1] https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-align
[2] https://drafts.csswg.org/css-scroll-snap-1/#choosing
This fixes css/css-scroll-snap/scroll-target-align-001.html and
css/css-scroll-snap/scroll-target-align-002.html
* LayoutTests/TestExpectations:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-001.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-align-002.html:
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::scrollIntoView):
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::scrollToAnchor):
* Source/WebCore/page/ScrollIntoViewOptions.h:
(): Deleted.
* Source/WebCore/page/ScrollIntoViewOptions.idl:
* Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:
(WebCore::adjustScrollAlignmentForScrollSnapAlign):
(WebCore::updateSnapOffsetsForScrollableArea):
* Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.h:
Canonical link: https://commits.webkit.org/317495@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications