Bug 195575

Summary: [Synthetic Click] Dispatch mouseout soon after mouseup
Product: WebKit Reporter: zalan <zalan>
Component: Layout and RenderingAssignee: zalan <zalan>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, commit-queue, dbates, ryanhaddad, simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 195932    
Attachments:
Description Flags
Patch
none
Patch
none
Patch none

Description zalan 2019-03-11 15:09:02 PDT
to dismiss the hover state.
Comment 1 Radar WebKit Bug Importer 2019-03-11 15:11:06 PDT
<rdar://problem/48784946>
Comment 2 zalan 2019-03-11 15:16:39 PDT
Created attachment 364296 [details]
Patch
Comment 3 Simon Fraser (smfr) 2019-03-11 15:42:59 PDT
Comment on attachment 364296 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=364296&action=review

> Source/WebCore/ChangeLog:5
> +        <rdar://problem/48784946>

Use the other radar.

> Source/WebCore/page/ios/EventHandlerIOS.mm:518
> +void EventHandler::dispatchFakeMouseOut(const PlatformMouseEvent& platformMouseEvent)

We should use a standard term: fake or synthetic

> Source/WebCore/page/ios/EventHandlerIOS.mm:520
> +    updateMouseEventTargetNode(nullptr, platformMouseEvent, true);

Maybe an enum instead of 'true'
Comment 4 zalan 2019-03-11 18:01:49 PDT
Created attachment 364324 [details]
Patch
Comment 5 WebKit Commit Bot 2019-03-11 18:58:24 PDT
Comment on attachment 364324 [details]
Patch

Clearing flags on attachment: 364324

Committed r242763: <https://trac.webkit.org/changeset/242763>
Comment 6 WebKit Commit Bot 2019-03-11 18:58:27 PDT
All reviewed patches have been landed.  Closing bug.
Comment 7 Ryan Haddad 2019-03-11 22:02:27 PDT
This change may have caused layout test crashes on iOS Simulator:
https://build.webkit.org/results/Apple%20iOS%2012%20Simulator%20Release%20WK2%20(Tests)/r242763%20(3076)/fast/events/change-frame-focus-crash-log.txt

Application Specific Information:
CRASHING TEST: fast/events/can-click-element-on-page-with-active-pseudo-class-and-search-field.html
CoreSimulator 581.2 - Device: Managed 7 - Runtime: iOS 12.1 (16B91) - DeviceType: iPhone SE

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebKit              	0x000000010d958a8c WebKit::WebPage::completeSyntheticClick(WebCore::Node&, WebCore::FloatPoint const&, WTF::OptionSet<WebKit::WebEvent::Modifier>, WebCore::SyntheticClickType) + 706 (WebPageIOS.mm:643)
1   com.apple.WebKit              	0x000000010d9587a3 WebKit::WebPage::handleSyntheticClick(WebCore::Node&, WebCore::FloatPoint const&, WTF::OptionSet<WebKit::WebEvent::Modifier>) + 491 (WebPageIOS.mm:586)
2   com.apple.WebKit              	0x000000010d95b3c1 WebKit::WebPage::commitPotentialTap(WTF::OptionSet<WebKit::WebEvent::Modifier>, unsigned long long) + 327
3   com.apple.WebKit              	0x000000010da4256b WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&, IPC::Decoder&) + 6473 (WebPageMessageReceiver.cpp:422)
4   com.apple.WebKit              	0x000000010d67cb71 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) + 127 (MessageReceiverMap.cpp:123)
5   com.apple.WebKit              	0x000000010d972706 WebKit::WebProcess::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 28 (WebProcess.cpp:729)
6   com.apple.WebKit              	0x000000010d66f622 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 108 (Connection.cpp:1012)
7   com.apple.WebKit              	0x000000010d672cb4 IPC::Connection::dispatchOneIncomingMessage() + 180 (Connection.cpp:1079)
8   JavaScriptCore                	0x0000000113ac61a7 WTF::RunLoop::performWork() + 231 (RunLoop.cpp:106)
9   JavaScriptCore                	0x0000000113ac6432 WTF::RunLoop::performWork(void*) + 34 (RunLoopCF.cpp:39)
10  com.apple.CoreFoundation      	0x000000010f6c9721 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
11  com.apple.CoreFoundation      	0x000000010f6c8f93 __CFRunLoopDoSources0 + 243
12  com.apple.CoreFoundation      	0x000000010f6c363f __CFRunLoopRun + 1263
13  com.apple.CoreFoundation      	0x000000010f6c2e11 CFRunLoopRunSpecific + 625
14  com.apple.Foundation          	0x000000010d0e6322 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 277
15  com.apple.Foundation          	0x000000010d0e6492 -[NSRunLoop(NSRunLoop) run] + 76
16  libxpc.dylib                  	0x0000000110eb5812 _xpc_objc_main + 460
17  libxpc.dylib                  	0x0000000110eb7cbd xpc_main + 143
18  com.apple.WebKit              	0x000000010d767bfe WebKit::XPCServiceMain(int, char const**) + 403 (OSObjectPtr.h:69)
19  libdyld.dylib                 	0x0000000110ba2575 start + 1
Comment 8 Ryan Haddad 2019-03-11 22:48:54 PDT
Flakiness dashboard data seems to confirm this suspicion. Rolling out this change because the crash is slowing down EWS.
Comment 9 Ryan Haddad 2019-03-11 22:50:28 PDT
Reverted r242763 for reason:

Causes layout test crashes on iOS simulator

Committed r242777: <https://trac.webkit.org/changeset/242777>
Comment 10 Ryan Haddad 2019-03-11 22:50:41 PDT
(In reply to Ryan Haddad from comment #8)
> Flakiness dashboard data seems to confirm this suspicion. Rolling out this
> change because the crash is slowing down EWS.
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&tests=fast%2Fevents%2Fchange-frame-focus.html
Comment 11 zalan 2019-03-12 09:37:16 PDT
Created attachment 364393 [details]
Patch
Comment 12 WebKit Commit Bot 2019-03-12 10:15:58 PDT
Comment on attachment 364393 [details]
Patch

Clearing flags on attachment: 364393

Committed r242798: <https://trac.webkit.org/changeset/242798>
Comment 13 WebKit Commit Bot 2019-03-12 10:16:00 PDT
All reviewed patches have been landed.  Closing bug.
Comment 14 Daniel Bates 2019-03-19 11:29:50 PDT
(In reply to WebKit Commit Bot from comment #12)
> Comment on attachment 364393 [details]
> Patch
> 
> Clearing flags on attachment: 364393
> 
> Committed r242798: <https://trac.webkit.org/changeset/242798>

This broke tapping to reveal context hyperlinks in Bugzilla patch review. See bug #195932.