Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2f1345fa776aa3938daeea03bb4c214e56513ad3
      
https://github.com/WebKit/WebKit/commit/2f1345fa776aa3938daeea03bb4c214e56513ad3
  Author: Fujii Hironori <[email protected]>
  Date:   2026-01-28 (Wed, 28 Jan 2026)

  Changed paths:
    M Source/WebCore/page/scrolling/ScrollingCoordinator.cpp
    M Source/WebCore/page/scrolling/ThreadedScrollingTree.h
    R 
Source/WebCore/page/scrolling/coordinated/ScrollingCoordinatorCoordinated.cpp
    R 
Source/WebCore/page/scrolling/coordinated/ScrollingCoordinatorCoordinated.h
    M Source/WebCore/page/scrolling/coordinated/ScrollingTreeCoordinated.cpp
    M Source/WebCore/page/scrolling/coordinated/ScrollingTreeCoordinated.h
    M Source/WebCore/platform/TextureMapper.cmake
    M Source/WebKit/SourcesGTK.txt
    M Source/WebKit/SourcesWPE.txt
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
    A 
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ScrollingCoordinatorCoordinated.cpp
    A 
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ScrollingCoordinatorCoordinated.h

  Log Message:
  -----------
  [GTK][WPE][Coordinated Graphics] wheel event async scrolling doesn't start 
while the main thread is blocked
https://bugs.webkit.org/show_bug.cgi?id=305451

Reviewed by Carlos Garcia Campos.

The async scrolling animation is using DisplayRefreshMonitor class.
WebDisplayRefreshMonitor class is the implementation of it for WebKit. It sends
messages to UI process to monitor the display refresh. However,
WebDisplayRefreshMonitor is the main thread specific class. Thus, while the
main thread is blocked, it can't send a message.

Moved ScrollingCoordinatorCoordinated from WebCore to WebKit. Changed it to
send a message to UI process to start monitoring the display refresh. Added a
new Messages::WebPageProxy::SetHasActiveAnimatedScrollsForAsyncScrolling.

The main thread is still painting the scrollbar layers. The scrollbars aren't
updated while the main thread is blocked. This is another problem tracked by
bug#305561.

* Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:
* Source/WebCore/page/scrolling/ThreadedScrollingTree.h:
* Source/WebCore/page/scrolling/coordinated/ScrollingTreeCoordinated.cpp:
(WebCore::ScrollingTreeCoordinated::hasNodeWithAnimatedScrollChanged):
* Source/WebCore/page/scrolling/coordinated/ScrollingTreeCoordinated.h:
* Source/WebCore/platform/TextureMapper.cmake:
* Source/WebKit/SourcesGTK.txt:
* Source/WebKit/SourcesWPE.txt:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setHasActiveAnimatedScrollsForAsyncScrolling):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createScrollingCoordinator const):
* 
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ScrollingCoordinatorCoordinated.cpp:
 Renamed from 
Source/WebCore/page/scrolling/coordinated/ScrollingCoordinatorCoordinated.cpp.
(WebKit::ScrollingCoordinatorCoordinated::ScrollingCoordinatorCoordinated):
(WebKit::ScrollingCoordinatorCoordinated::~ScrollingCoordinatorCoordinated):
(WebKit::ScrollingCoordinatorCoordinated::pageDestroyed):
(WebKit::ScrollingCoordinatorCoordinated::hasNodeWithAnimatedScrollChanged):
(WebKit::ScrollingCoordinatorCoordinated::didCompletePlatformRenderingUpdate):
* 
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ScrollingCoordinatorCoordinated.h:
 Renamed from 
Source/WebCore/page/scrolling/coordinated/ScrollingCoordinatorCoordinated.h.

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



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

Reply via email to