[webkit-changes] [WebKit/WebKit] fe4ddf: Explicitly clear event queues on a process swap

Charlie Wolfe noreply at github.com
Thu May 9 10:09:48 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fe4ddfdad76fa43c18dffa93649a048e6343a549
      https://github.com/WebKit/WebKit/commit/fe4ddfdad76fa43c18dffa93649a048e6343a549
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2024-05-09 (Thu, 09 May 2024)

  Changed paths:
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  Explicitly clear event queues on a process swap
https://bugs.webkit.org/show_bug.cgi?id=273924
rdar://127788996

Reviewed by Wenson Hsieh and Matt Woodrow.

This is a speculative fix for recent reports that web pages are unresponsive to mouse events.

In 269366 at main, I removed code that explicitly cleared event queues on a process swap because, after
267849 at main, in-flight completion handlers will be called for terminated web processes. However, if the
web process we are navigating away from does not terminate (i.e., if it is hosting another webpage), we
rely on it to dequeue the events in the UI process.

This change makes it so that we once again clear the event queues on a process swap. If the process we
navigated away from has terminated or changed, we do not attempt to dequeue previous events because they
have already been cleared. This way, if the source web process is unresponsive for any reason, it does
not prevent events from being sent to the new page.

* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::sendMouseEvent):
(WebKit::WebPageProxy::sendKeyEvent):
(WebKit::WebPageProxy::resetStateAfterProcessExited):

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



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


More information about the webkit-changes mailing list