[webkit-changes] [WebKit/WebKit] 20bc8f: Pressing any modifier key causes many WebContent p...

bnham noreply at github.com
Thu Sep 26 21:59:00 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 20bc8fb08d58bc9419c555d941a0ed5d8b152bd6
      https://github.com/WebKit/WebKit/commit/20bc8fb08d58bc9419c555d941a0ed5d8b152bd6
  Author: Ben Nham <nham at apple.com>
  Date:   2024-09-26 (Thu, 26 Sep 2024)

  Changed paths:
    M Source/WebKit/UIProcess/API/mac/WKWebViewPrivateForTestingMac.h
    M Source/WebKit/UIProcess/API/mac/WKWebViewTestingMac.mm
    M Source/WebKit/UIProcess/mac/WebViewImpl.h
    M Source/WebKit/UIProcess/mac/WebViewImpl.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm

  Log Message:
  -----------
  Pressing any modifier key causes many WebContent processes to briefly unsuspend
https://bugs.webkit.org/show_bug.cgi?id=280435
rdar://136712547

Reviewed by Richard Robinson.

The fix in 279557 at main does not completely work. After that patch, the active tab in a background
window no longer gets modifier key events. However, background tabs in the background window now
unexpectedly get modifier key events. This can cause the associated WebContent processes to
spuriously unsuspend.

What is happening is that when you switch tabs, the view associated with that tab does not get a
-mouseExited: message (which is what removes the modifier flag event listener). Instead, it just
gets removed from the view hierarchy. So we have to remove the modifier flag event listener in
*both* -mouseExited: and when the view is removed from the view hierarchy.

This patch restores the behavior that we had pre-279557 at main where we were removing the modifier
flag event listener after the view was removed from the view hierarchy.

* Source/WebKit/UIProcess/API/mac/WKWebViewPrivateForTestingMac.h:
* Source/WebKit/UIProcess/API/mac/WKWebViewTestingMac.mm:
(-[WKWebView _hasFlagsChangedEventMonitorForTesting]):
(-[WKWebView _removeFlagsChangedEventMonitorForTesting]): Deleted.
* Source/WebKit/UIProcess/mac/WebViewImpl.h:
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::viewDidMoveToWindow):
(WebKit::WebViewImpl::hasFlagsChangedEventMonitor):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
((WebKit, MouseMoveOverElementWithClosedWebView)):

Canonical link: https://commits.webkit.org/284335@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