Title: [224899] trunk/Source/WebCore
Revision
224899
Author
za...@apple.com
Date
2017-11-15 13:50:04 -0800 (Wed, 15 Nov 2017)

Log Message

AX triggers sync layout while building the render tree on www.macrumors.com.
https://bugs.webkit.org/show_bug.cgi?id=179741
rdar://problem/35462531

Reviewed by Antti Koivisto.

It's unsafe to issue layout while mutating the render tree. If a mutation
requires AX to issue a layout, it needs to be issued in a delayed manner (which the render
tree mutation will trigger anyway).

Unable to reproduce.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::updateBackingStore):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (224898 => 224899)


--- trunk/Source/WebCore/ChangeLog	2017-11-15 21:36:19 UTC (rev 224898)
+++ trunk/Source/WebCore/ChangeLog	2017-11-15 21:50:04 UTC (rev 224899)
@@ -1,3 +1,20 @@
+2017-11-15  Zalan Bujtas  <za...@apple.com>
+
+        AX triggers sync layout while building the render tree on www.macrumors.com.
+        https://bugs.webkit.org/show_bug.cgi?id=179741
+        rdar://problem/35462531
+
+        Reviewed by Antti Koivisto.
+
+        It's unsafe to issue layout while mutating the render tree. If a mutation
+        requires AX to issue a layout, it needs to be issued in a delayed manner (which the render
+        tree mutation will trigger anyway). 
+
+        Unable to reproduce.
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::updateBackingStore):
+
 2017-11-15  Antoine Quint  <grao...@apple.com>
 
         [Web Animations] Implement basic to-from animations

Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (224898 => 224899)


--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2017-11-15 21:36:19 UTC (rev 224898)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp	2017-11-15 21:50:04 UTC (rev 224899)
@@ -1771,7 +1771,7 @@
     RefPtr<AccessibilityObject> protectedThis(this);
 
     if (Document* document = this->document()) {
-        if (!document->view()->layoutContext().isInRenderTreeLayout())
+        if (!document->view()->layoutContext().isInRenderTreeLayout() && !document->inRenderTreeUpdate())
             document->updateLayoutIgnorePendingStylesheets();
     }
     
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to