Branch: refs/heads/webkitglib/2.52
  Home:   https://github.com/WebKit/WebKit
  Commit: 33ed93a580f39fedd69dbba39a15913e11943fa3
      
https://github.com/WebKit/WebKit/commit/33ed93a580f39fedd69dbba39a15913e11943fa3
  Author: Vitaly Dyachkov <[email protected]>
  Date:   2026-02-16 (Mon, 16 Feb 2026)

  Changed paths:
    M Source/WebKit/UIProcess/API/C/WKPage.cpp
    M Source/WebKit/UIProcess/API/C/WKPagePrivate.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Tools/WebKitTestRunner/gtk/EventSenderProxyGtk.cpp
    M Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp
    M Tools/WebKitTestRunner/libwpe/EventSenderProxyLibWPE.cpp
    M Tools/WebKitTestRunner/win/EventSenderProxyWin.cpp
    M Tools/WebKitTestRunner/wpe/TestControllerWPE.cpp

  Log Message:
  -----------
  Cherry-pick 307370@main (548162624138). 
https://bugs.webkit.org/show_bug.cgi?id=306766

    REGRESSION(266411@main): [GLib] `mousemove` events are not throttle to one 
per rendering update
    https://bugs.webkit.org/show_bug.cgi?id=306766

    Reviewed by Wenson Hsieh and Darin Adler.

    Starting from 266411@main, it is required for a `DrawingArea` subclass
    to override `scheduleRenderingUpdate()` and return `true` in order to
    enable throttling of `mousemove` events to one per rendering update.
    This method is currently only implemented by `RemoteLayerTreeDrawingArea`
    which is used by Apple ports. The main purpose of it is to schedule next
    rendering update to process deferred `mousemove` events. But it is
    possible to schedule next rendering update by calling
    `RenderingUpdateScheduler::scheduleRenderingUpdate()` which is driven by
    the display refresh monitor.

    This patch also implements `EventSenderProxy::waitForPendingMouseEvents()`
    on GTK, WPE, and Windows by calling a new private
    `WKPageDoAfterProcessingAllPendingMouseEvents()` function, which is
    required to pass layout tests that use asynchronous mouse events.

    Because `EventSenderProxy::waitForPendingMouseEvents()` internally calls
    `m_testController->runUntil()`, `TestController::platformRunUntil()` now
    explicitly iterates the main context instead of running and stopping the
    main run loop to avoid completely stopping the TestController after
    processing pending mouse events, which would cause tests to time out.

    * Source/WebKit/UIProcess/API/C/WKPage.cpp:
    (WKPageDoAfterProcessingAllPendingMouseEvents):
    * Source/WebKit/UIProcess/API/C/WKPagePrivate.h:
    * Source/WebKit/WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::mouseEvent):
    * Tools/WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
    (WTR::doAfterProcessingAllPendingMouseEventsCallback):
    (WTR::EventSenderProxy::waitForPendingMouseEvents):
    * Tools/WebKitTestRunner/gtk/TestControllerGtk.cpp:
    (WTR::TestController::notifyDone):
    (WTR::TestController::platformRunUntil):
    * Tools/WebKitTestRunner/libwpe/EventSenderProxyLibWPE.cpp:
    (WTR::doAfterProcessingAllPendingMouseEventsCallback):
    (WTR::EventSenderProxy::waitForPendingMouseEvents):
    * Tools/WebKitTestRunner/win/EventSenderProxyWin.cpp:
    (WTR::doAfterProcessingAllPendingMouseEventsCallback):
    (WTR::EventSenderProxy::waitForPendingMouseEvents):
    * Tools/WebKitTestRunner/wpe/TestControllerWPE.cpp:
    (WTR::TestController::notifyDone):
    (WTR::TestController::platformRunUntil):

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

Canonical link: https://commits.webkit.org/305877.75@webkitglib/2.52



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

Reply via email to