Title: [261625] trunk/Source/WebCore
Revision
261625
Author
andresg...@apple.com
Date
2020-05-13 10:29:34 -0700 (Wed, 13 May 2020)

Log Message

Check for accessibilityEnabled() before posting notifications asynchronously.
https://bugs.webkit.org/show_bug.cgi?id=211848

Reviewed by Chris Fleizach.

Covered by multiple tests. Fixes crashes in LayoutTests in isolated tree mode.

During LayoutTests, accessibility may be disabled between the time the
notifications are queued and the timer fires. Thus it is necessary to
check for accessibilityEnabled() before posting the notifications
asynchronously. Not doing so was causing crashes in isolated mode.

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::notificationPostTimerFired):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (261624 => 261625)


--- trunk/Source/WebCore/ChangeLog	2020-05-13 17:29:14 UTC (rev 261624)
+++ trunk/Source/WebCore/ChangeLog	2020-05-13 17:29:34 UTC (rev 261625)
@@ -1,3 +1,20 @@
+2020-05-13  Andres Gonzalez  <andresg...@apple.com>
+
+        Check for accessibilityEnabled() before posting notifications asynchronously.
+        https://bugs.webkit.org/show_bug.cgi?id=211848
+
+        Reviewed by Chris Fleizach.
+
+        Covered by multiple tests. Fixes crashes in LayoutTests in isolated tree mode.
+
+        During LayoutTests, accessibility may be disabled between the time the
+        notifications are queued and the timer fires. Thus it is necessary to
+        check for accessibilityEnabled() before posting the notifications
+        asynchronously. Not doing so was causing crashes in isolated mode.
+
+        * accessibility/AXObjectCache.cpp:
+        (WebCore::AXObjectCache::notificationPostTimerFired):
+
 2020-05-13  Simon Fraser  <simon.fra...@apple.com>
 
         The perspective matrix is affected by overflow:hidden on a box with borders

Modified: trunk/Source/WebCore/accessibility/AXObjectCache.cpp (261624 => 261625)


--- trunk/Source/WebCore/accessibility/AXObjectCache.cpp	2020-05-13 17:29:14 UTC (rev 261624)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.cpp	2020-05-13 17:29:34 UTC (rev 261625)
@@ -1006,14 +1006,20 @@
 
     m_deferredChildrenChangedList.add(obj);
 }
-    
+
 void AXObjectCache::notificationPostTimerFired()
 {
+    // During LayoutTests, accessibility may be disabled between the time the notifications are queued and the timer fires.
+    // Thus check here and return if accessibility is disabled.
+    if (!accessibilityEnabled())
+        return;
+
     Ref<Document> protectorForCacheOwner(m_document);
     m_notificationPostTimer.stop();
+
     if (!m_document.hasLivingRenderTree())
         return;
-    
+
     // In tests, posting notifications has a tendency to immediately queue up other notifications, which can lead to unexpected behavior
     // when the notification list is cleared at the end. Instead copy this list at the start.
     auto notifications = WTFMove(m_notificationsToPost);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to