Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 20bc8fb08d58bc9419c555d941a0ed5d8b152bd6
      
https://github.com/WebKit/WebKit/commit/20bc8fb08d58bc9419c555d941a0ed5d8b152bd6
  Author: Ben Nham <[email protected]>
  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@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@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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to