[webkit-changes] [WebKit/WebKit] b940c0: [scroll-anchoring] Scroll anchoring and Shadow DOM...

Nikos Mouchtaris noreply at github.com
Fri Jan 19 19:03:53 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b940c0441af5d96ddd5bb8b5ac87217f7087a5ca
      https://github.com/WebKit/WebKit/commit/b940c0441af5d96ddd5bb8b5ac87217f7087a5ca
  Author: Nikolaos Mouchtaris <nmouchtaris at apple.com>
  Date:   2024-01-19 (Fri, 19 Jan 2024)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-anchoring/shadow-dom-subscroller-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-anchoring/shadow-dom-subscroller.html
    M Source/WebCore/page/scrolling/ScrollAnchoringController.cpp

  Log Message:
  -----------
  [scroll-anchoring] Scroll anchoring and Shadow DOM result in weird scrolling behavior
https://bugs.webkit.org/show_bug.cgi?id=267733
rdar://121165484

Reviewed by Tim Nguyen.

After https://commits.webkit.org/272277@main we descend subscrollers that are not maintaining a
scroll anchor. In the logic added to ScrollAnchoringController::invalidateAnchorElement we
look to see if the current scroller is in a scroll anchoring chain, if it is not currently
maintaining an anchor element. When the owning scroller is in the shadow dom, the element walk would
not include it, so it wouldn't notify the parent scroller to invalidate its anchor element. To fix this,
do the parent walk via parentElementInComposedTree to include the elements in the shadow dom.

* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-anchoring/shadow-dom-subscroller-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-scroll-anchoring/shadow-dom-subscroller.html: Added.
* Source/WebCore/page/scrolling/ScrollAnchoringController.cpp:
(WebCore::ScrollAnchoringController::isInScrollAnchoringAncestorChain):

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




More information about the webkit-changes mailing list