Notify accessibility when a node is removed from its ancestor.
https://bugs.webkit.org/show_bug.cgi?id=209819
Reviewed by Chris Fleizach.
Covered by existing tests in LayoutTests/accessibility.
* dom/Node.cpp:
(WebCore::Node::removedFromAncestor):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@259348 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 0d1f414..d8735a8 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2020-04-01 Jack Lee <shihchieh_lee@apple.com>
+
+ Notify accessibility when a node is removed from its ancestor.
+ https://bugs.webkit.org/show_bug.cgi?id=209819
+
+ Reviewed by Chris Fleizach.
+
+ Covered by existing tests in LayoutTests/accessibility.
+
+ * dom/Node.cpp:
+ (WebCore::Node::removedFromAncestor):
+
2020-04-01 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r259282.
diff --git a/Source/WebCore/dom/Node.cpp b/Source/WebCore/dom/Node.cpp
index e85d057..8bfec61 100644
--- a/Source/WebCore/dom/Node.cpp
+++ b/Source/WebCore/dom/Node.cpp
@@ -1297,12 +1297,18 @@
return InsertedIntoAncestorResult::Done;
}
-void Node::removedFromAncestor(RemovalType removalType, ContainerNode&)
+void Node::removedFromAncestor(RemovalType removalType, ContainerNode& oldParentOfRemovedTree)
{
if (removalType.disconnectedFromDocument)
clearFlag(IsConnectedFlag);
if (isInShadowTree() && !treeScope().rootNode().isShadowRoot())
clearFlag(IsInShadowTreeFlag);
+ if (removalType.disconnectedFromDocument) {
+ if (auto* document = &oldParentOfRemovedTree.treeScope().documentScope()) {
+ if (auto* cache = document->existingAXObjectCache())
+ cache->remove(*this);
+ }
+ }
}
bool Node::isRootEditableElement() const