Index: Source/core/accessibility/AXObjectCache.cpp |
diff --git a/Source/core/accessibility/AXObjectCache.cpp b/Source/core/accessibility/AXObjectCache.cpp |
index 950b465e1631fe9d9d3ef2f458929255275033e8..c97e2334c5590eaf86064a33aa4b764a5aa3a441 100644 |
--- a/Source/core/accessibility/AXObjectCache.cpp |
+++ b/Source/core/accessibility/AXObjectCache.cpp |
@@ -650,6 +650,22 @@ void AXObjectCache::updateCacheAfterNodeIsAttached(Node* node) |
get(node); |
} |
+static void updateAfterInertSubtreesChanged(AXObject* object) |
+{ |
+ if (object->notifyIfIgnoredValueChanged()) |
+ return; |
+ AXObject::AccessibilityChildrenVector children = object->children(); |
+ size_t count = children.size(); |
+ for (size_t i = 0; i < count; ++i) |
+ updateAfterInertSubtreesChanged(children[i].get()); |
+} |
+ |
+void AXObjectCache::updateCacheAfterInertSubtreesChanged() |
+{ |
+ m_computedObjectAttributeCache->clear(); |
+ updateAfterInertSubtreesChanged(rootObject()); |
+} |
+ |
void AXObjectCache::childrenChanged(Node* node) |
{ |
childrenChanged(get(node)); |