RESOLVED FIXED 233018
WebKit should pipe mouse hover events on iOS to the UI delegate
https://bugs.webkit.org/show_bug.cgi?id=233018
Summary WebKit should pipe mouse hover events on iOS to the UI delegate
Kevin Turner
Reported 2021-11-11 15:20:41 PST
WebKit should allow `mouseDidMoveOverElement` delegate callbacks on iOS. These callbacks are currently guarded to be macOS only in WKUIDelegatePrivate.h.
Attachments
Patch (12.03 KB, patch)
2022-02-09 18:25 PST, Kevin Turner
ews-feeder: commit-queue-
Patch (12.01 KB, patch)
2022-02-09 18:58 PST, Kevin Turner
no flags
Simple test case example (2.71 KB, patch)
2022-02-09 23:14 PST, Wenson Hsieh
no flags
Patch (15.68 KB, patch)
2022-02-10 18:57 PST, Kevin Turner
no flags
Patch (15.67 KB, patch)
2022-02-11 17:41 PST, Kevin Turner
no flags
Patch (15.64 KB, patch)
2022-02-11 18:05 PST, Kevin Turner
no flags
Radar WebKit Bug Importer
Comment 1 2021-11-11 15:22:13 PST
Simon Fraser (smfr)
Comment 2 2021-11-12 17:33:08 PST
Do you have a reason for wanting them?
Kevin Turner
Comment 3 2022-02-09 18:25:05 PST
Wenson Hsieh
Comment 4 2022-02-09 18:27:50 PST
We should be able to write a quick API test to exercise this codepath.
Darin Adler
Comment 5 2022-02-09 18:55:10 PST
Comment on attachment 451476 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=451476&action=review > Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.h:28 > +#if PLATFORM(MAC) || HAVE(UIKIT_WITH_MOUSE_SUPPORT) This header is used outside WebKIt, and thus it can’t use PLATFORM() and HAVE() includes.
Darin Adler
Comment 6 2022-02-09 18:55:29 PST
Comment on attachment 451476 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=451476&action=review >> Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.h:28 >> +#if PLATFORM(MAC) || HAVE(UIKIT_WITH_MOUSE_SUPPORT) > > This header is used outside WebKIt, and thus it can’t use PLATFORM() and HAVE() includes. Can’t use PLATFORM() and HAVE() macros.
Kevin Turner
Comment 7 2022-02-09 18:58:33 PST
Wenson Hsieh
Comment 8 2022-02-09 23:14:28 PST
Created attachment 451495 [details] Simple test case example (Example of an API test case that could be used to exercise the new API on iOS)
Tim Horton
Comment 9 2022-02-09 23:15:49 PST
Comment on attachment 451480 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=451480&action=review > Source/WebKit/Shared/API/Cocoa/_WKHitTestResult.h:28 > +#if TARGET_OS_OSX || TARGET_OS_IPHONE I'm pretty sure this condition is true everywhere that this file exists (IPHONE includes all of the iOS-derivatives), so maybe you can just delete it instead? Or maybe you meant TARGET_OS_IOS > Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:74 > +#if !PLATFORM(MAC) Why the inverted condition? Should be PLATFORM(IOS_FAMILY) or maybe the HAVE
Tim Horton
Comment 10 2022-02-09 23:16:15 PST
(and yes, a test would be lovely)
Kevin Turner
Comment 11 2022-02-10 18:57:20 PST
Wenson Hsieh
Comment 12 2022-02-11 17:37:16 PST
Comment on attachment 451628 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=451628&action=review > Tools/TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:356 > + EXPECT_TRUE(hitTestResult != nullptr); Nit - ideally, this would be `EXPECT_NOT_NULL(hitTestResult);`
Kevin Turner
Comment 13 2022-02-11 17:41:42 PST
Kevin Turner
Comment 14 2022-02-11 18:05:46 PST
EWS
Comment 15 2022-02-12 07:43:22 PST
Committed r289694 (247179@main): <https://commits.webkit.org/247179@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 451765 [details].
Note You need to log in before you can comment on or make changes to this bug.