Title: [187530] trunk/Source/WebKit2
- Revision
- 187530
- Author
- [email protected]
- Date
- 2015-07-28 17:44:14 -0700 (Tue, 28 Jul 2015)
Log Message
AX: iOS: VoiceOver hangs indefinitely when an JS alert appears
https://bugs.webkit.org/show_bug.cgi?id=147386
Reviewed by Anders Carlsson.
Support the iOS platform API to notify accessibility clients when the WebProcess is about to suspend (because of some modal dialog).
Luckily, we did all the hardwork for OSX a few years ago to support this paradigm.
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::AccessibilityProcessSuspendedNotification):
(IPC::Connection::willSendSyncMessage):
(IPC::Connection::didReceiveSyncReply):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (187529 => 187530)
--- trunk/Source/WebKit2/ChangeLog 2015-07-29 00:38:29 UTC (rev 187529)
+++ trunk/Source/WebKit2/ChangeLog 2015-07-29 00:44:14 UTC (rev 187530)
@@ -1,3 +1,18 @@
+2015-07-28 Chris Fleizach <[email protected]>
+
+ AX: iOS: VoiceOver hangs indefinitely when an JS alert appears
+ https://bugs.webkit.org/show_bug.cgi?id=147386
+
+ Reviewed by Anders Carlsson.
+
+ Support the iOS platform API to notify accessibility clients when the WebProcess is about to suspend (because of some modal dialog).
+ Luckily, we did all the hardwork for OSX a few years ago to support this paradigm.
+
+ * Platform/IPC/mac/ConnectionMac.mm:
+ (IPC::AccessibilityProcessSuspendedNotification):
+ (IPC::Connection::willSendSyncMessage):
+ (IPC::Connection::didReceiveSyncReply):
+
2015-07-28 Yusuke Suzuki <[email protected]>
[ES6] Add ENABLE_ES6_MODULES compile time flag with the default value "false"
Modified: trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm (187529 => 187530)
--- trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm 2015-07-29 00:38:29 UTC (rev 187529)
+++ trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm 2015-07-29 00:44:14 UTC (rev 187530)
@@ -39,8 +39,16 @@
#if PLATFORM(IOS)
#include "ProcessAssertion.h"
+#include <UIKit/UIAccessibility.h>
+
+#if __has_include(<AXRuntime/AXNotificationConstants.h>)
+#include <AXRuntime/AXNotificationConstants.h>
+#else
+#define kAXPidStatusChangedNotification 0
#endif
+#endif
+
#if __has_include(<HIServices/AccessibilityPriv.h>)
#include <HIServices/AccessibilityPriv.h>
#else
@@ -600,20 +608,27 @@
return false;
}
+static void AccessibilityProcessSuspendedNotification(bool suspended)
+{
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
+ _AXUIElementNotifyProcessSuspendStatus(suspended ? AXSuspendStatusSuspended : AXSuspendStatusRunning);
+#elif PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000
+ UIAccessibilityPostNotification(kAXPidStatusChangedNotification, @{ @"pid" : @(getpid()), @"suspended" : @(suspended) });
+#else
+ UNUSED_PARAM(suspended);
+#endif
+}
+
void Connection::willSendSyncMessage(unsigned flags)
{
-#if !TARGET_OS_IPHONE && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
if ((flags & InformPlatformProcessWillSuspend) && WebCore::AXObjectCache::accessibilityEnabled())
- _AXUIElementNotifyProcessSuspendStatus(AXSuspendStatusSuspended);
-#endif
+ AccessibilityProcessSuspendedNotification(true);
}
void Connection::didReceiveSyncReply(unsigned flags)
{
-#if !TARGET_OS_IPHONE && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
if ((flags & InformPlatformProcessWillSuspend) && WebCore::AXObjectCache::accessibilityEnabled())
- _AXUIElementNotifyProcessSuspendStatus(AXSuspendStatusRunning);
-#endif
+ AccessibilityProcessSuspendedNotification(false);
}
pid_t Connection::remoteProcessID() const
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes