Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: de4580fe7eeedb0b8582ce8ea85919b788e1d58b
      
https://github.com/WebKit/WebKit/commit/de4580fe7eeedb0b8582ce8ea85919b788e1d58b
  Author: Antti Koivisto <[email protected]>
  Date:   2025-06-30 (Mon, 30 Jun 2025)

  Changed paths:
    M LayoutTests/TestExpectations
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-006-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-002-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-004-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-005-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-006-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-007-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-008-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-009-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-010-expected.txt
    M Source/WebCore/page/LocalFrameView.cpp
    M Source/WebCore/page/LocalFrameView.h
    M Source/WebCore/platform/ScrollableArea.cpp
    M Source/WebCore/platform/ScrollableArea.h
    M Source/WebCore/rendering/RenderBox.cpp
    M Source/WebCore/rendering/RenderLayerScrollableArea.cpp
    M Source/WebCore/rendering/RenderLayerScrollableArea.h
    M Source/WebCore/style/AnchorPositionEvaluator.cpp
    M Source/WebCore/style/AnchorPositionEvaluator.h

  Log Message:
  -----------
  [css-anchor-position-1] Scroll adjustment not applied for position:fixed 
anchored boxes
https://bugs.webkit.org/show_bug.cgi?id=295002
rdar://154348421

Reviewed by Simon Fraser.

Compute scroll adjustment correctly for fixed positioned anchored boxes.

* LayoutTests/TestExpectations:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-006-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-002-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-004-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-005-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-006-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-007-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-008-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-009-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-scroll-position-try-010-expected.txt:
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::addViewportConstrainedObject):
(WebCore::LocalFrameView::removeViewportConstrainedObject):
(WebCore::LocalFrameView::hasAnchorPositionedViewportConstrainedObjects const):

See if any of the viewport constrained objects are anchor positioned.

(WebCore::LocalFrameView::clearCachedHasAnchorPositionedViewportConstrainedObjects):
(WebCore::LocalFrameView::shouldUpdateCompositingLayersAfterScrolling const):

We need to update compositing layers on every frame if there are fixed anchor 
positioned boxes.

(WebCore::LocalFrameView::updateAnchorPositionedAfterScroll):

We need to update anchor positions after document scroll too.

* Source/WebCore/page/LocalFrameView.h:
* Source/WebCore/platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scrollPositionChanged):
* Source/WebCore/platform/ScrollableArea.h:
(WebCore::ScrollableArea::updateAnchorPositionedAfterScroll):

Factor into a separate virtual function, invoked from 
ScrollableArea::scrollPositionChanged.

* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::styleWillChange):

Clear the cached fixed-with-anchor bit if anchor positioned style changes.

* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterOverflowScroll):
(WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll):
* Source/WebCore/rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollTo):

Move to RenderLayer::updateLayerPositionsAfterOverflowScroll.

* Source/WebCore/style/AnchorPositionEvaluator.cpp:
(WebCore::Style::scrollOffsetFromAnchor):

Take fixed position into account when computing scroll offset.

(WebCore::Style::AnchorPositionEvaluator::updateSnapshottedScrollOffsets):

Use defaultAnchorForBox() to figure out if we need scroll compensation.

(WebCore::Style::AnchorPositionEvaluator::updatePositionsAfterScroll):
(WebCore::Style::AnchorPositionEvaluator::isAnchorPositioned):
(WebCore::Style::scrollOffsetFromAncestorContainer): Deleted.
(WebCore::Style::AnchorPositionEvaluator::updateAfterOverflowScroll): Deleted.
* Source/WebCore/style/AnchorPositionEvaluator.h:

Canonical link: https://commits.webkit.org/296811@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to