Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 13cc83ffe56b9e76b41564b9dbafc8ffcdbf9744
      
https://github.com/WebKit/WebKit/commit/13cc83ffe56b9e76b41564b9dbafc8ffcdbf9744
  Author: Fujii Hironori <[email protected]>
  Date:   2026-08-31 (Mon, 31 Aug 2026)

  Changed paths:
    M 
Source/WebCore/page/scrolling/coordinated/ScrollingTreeScrollingNodeDelegateCoordinated.cpp
    M 
Source/WebCore/page/scrolling/coordinated/ScrollingTreeScrollingNodeDelegateCoordinated.h
    M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
    M Source/WebKit/WPEPlatform/wpe/WPEGestureDetector.cpp

  Log Message:
  -----------
  REGRESSION(309315@main): [WPE][GTK] position:fixed layers are unnecessarily 
repainted by scrolling
https://bugs.webkit.org/show_bug.cgi?id=321908

Reviewed by Carlos Garcia Campos.

After 309315@main stopped rounding the scroll position of layers,
viewport-constrained layers are unnecessarily repainted while scrolling.

LocalFrameView::updateLayoutViewport has this condition:

>    if (newLayoutViewportOrigin != m_layoutViewportOrigin) {
>        setBaseLayoutViewportOrigin(newLayoutViewportOrigin);

m_layoutViewportOrigin of LocalFrameView is a LayoutPoint, but
newLayoutViewportOrigin comes from ScrollView::m_scrollPosition, which is
an IntPoint and thus already rounded. As a result, whenever the scroll
position had a fractional part, this condition was true and triggered an
unnecessary layout.

309315@main solved a problem of accumulated rounding error for touch gesture
scrolling <https://webkit.org/b/309252>. This can be solved in UI process.
Reverted 309315@main, and rounded the touch event positions to calculate
deltas.

* 
Source/WebCore/page/scrolling/coordinated/ScrollingTreeScrollingNodeDelegateCoordinated.cpp:
(WebCore::ScrollingTreeScrollingNodeDelegateCoordinated::adjustedScrollPosition 
const): Deleted.
* 
Source/WebCore/page/scrolling/coordinated/ScrollingTreeScrollingNodeDelegateCoordinated.h:
* Source/WebKit/WPEPlatform/wpe/WPEGestureDetector.cpp:
(WPE::GestureDetector::handleEvent):
* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseTouchDragUpdate):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to