[webkit-changes] [WebKit/WebKit] 059da5: AX: VoiceOver hangs in Safari when selecting "Sign...
Tyler Wilcock
noreply at github.com
Fri Jan 20 10:27:30 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 059da518e6c00d18d6305e7864251f16eeefac87
https://github.com/WebKit/WebKit/commit/059da518e6c00d18d6305e7864251f16eeefac87
Author: Tyler Wilcock <tyler_w at apple.com>
Date: 2023-01-20 (Fri, 20 Jan 2023)
Changed paths:
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
Log Message:
-----------
AX: VoiceOver hangs in Safari when selecting "Sign in with Apple" on kickstarter.com and elsewhere
https://bugs.webkit.org/show_bug.cgi?id=250867
rdar://problem/104449619
Reviewed by Chris Fleizach.
"Sign in with Apple" on kickstarter.com triggers sync IPC through
WebChromeClient::createWindow. Depending on how the client handles this
request, this IPC may not return for an arbitrary amount of time. In
this case, Safari opens a native dialog, and the sync IPC does not
return until the dialog is closed.
This causes web content to become unresponsive to VoiceOver because the
main-thread is hung. This patch fixes this by using IPC::SendSyncOption::InformPlatformProcessWillSuspend
to tell VoiceOver we will become unresponsive until the IPC completes.
I couldn't find a good way to test this in an automated fashion.
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
Canonical link: https://commits.webkit.org/259147@main
More information about the webkit-changes
mailing list