Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 85527e6041aa05a38a48f372ce749dc7214236ed
https://github.com/WebKit/WebKit/commit/85527e6041aa05a38a48f372ce749dc7214236ed
Author: Brady Eidson <[email protected]>
Date: 2026-10-02 (Fri, 02 Oct 2026)
Changed paths:
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/mac/WebViewImpl.h
M Source/WebKit/UIProcess/mac/WebViewImpl.mm
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
A Tools/TestWebKitAPI/Helpers/mac/LocalEventMonitorSwizzler.h
A Tools/TestWebKitAPI/Helpers/mac/LocalEventMonitorSwizzler.mm
M Tools/TestWebKitAPI/SourcesCocoa.txt
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation-1.mm
M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/UIDelegate.mm
Log Message:
-----------
[Site Isolation] Pressing a modifier key over a link in a cross-origin iframe
loses the link's hover information
rdar://189032513
https://bugs.webkit.org/show_bug.cgi?id=326118
Reviewed by Alex Christensen and Zak Ridouh.
Rename some mouse event handling methods/messages to make it clear they're only
about when modifier keys change.
Then, make sure they message to the correct process for hit testing.
This probably fixes more than just the link hover case, but that's the most
obvious user visible symptom to be tested.
Tests: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation-1.mm
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/UIDelegate.mm
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dispatchMouseDidMoveOverElementForModifierFlagsChange):
(WebKit::WebPageProxy::performHitTestForModifierFlagsChangeInFrame):
(WebKit::WebPageProxy::dispatchMouseDidMoveOverElementAsynchronously): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/mac/WebViewImpl.h:
* Source/WebKit/UIProcess/mac/WebViewImpl.mm:
(WebKit::WebViewImpl::scheduleMouseDidMoveOverElementForModifierFlagsChange):
(WebKit::WebViewImpl::createFlagsChangedEventMonitor):
(WebKit::WebViewImpl::scheduleMouseDidMoveOverElement): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performHitTestForModifierFlagsChangeOnMouseEvent):
(WebKit::WebPage::performHitTestForMouseEvent): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Tools/TestWebKitAPI/Helpers/mac/LocalEventMonitorSwizzler.h: Added.
* Tools/TestWebKitAPI/Helpers/mac/LocalEventMonitorSwizzler.mm: Added.
(+[TestLocalEventObserver initialize]):
(-[TestLocalEventObserver initMatchingEvents:handler:]):
(-[TestLocalEventObserver dealloc]):
(-[TestLocalEventObserver invalidate]):
(-[TestLocalEventObserver recomputeObserverMask]):
(+[TestEventMonitor addLocalMonitorForEventsMatchingMask:handler:]):
(TestWebKitAPI::LocalEventMonitorSwizzler::LocalEventMonitorSwizzler):
(TestWebKitAPI::LocalEventMonitorSwizzler::sendEventToMonitor):
* Tools/TestWebKitAPI/SourcesCocoa.txt:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation-1.mm:
(-[SiteIsolationMouseMoveOverElementDelegate
_webView:mouseDidMoveOverElement:withFlags:userInfo:]):
(TestWebKitAPI::TEST(SiteIsolation,
ModifierKeyChangeOverLinkInCrossOriginIframe)):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/UIDelegate.mm:
((WebKit, MouseMoveOverElementWithClosedWebView)):
(+[TestLocalEventObserver initialize]): Deleted.
(-[TestLocalEventObserver initMatchingEvents:handler:]): Deleted.
(-[TestLocalEventObserver dealloc]): Deleted.
(-[TestLocalEventObserver invalidate]): Deleted.
(-[TestLocalEventObserver recomputeObserverMask]): Deleted.
(+[TestEventMonitor addLocalMonitorForEventsMatchingMask:handler:]): Deleted.
Canonical link: https://commits.webkit.org/322582@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications