bug 1316789 - UncacheChildren should not go between documents r=davidb

This commit is contained in:
Trevor Saunders 2016-08-31 16:14:30 -04:00
Родитель 684cad415c
Коммит 85af4870f3
1 изменённых файлов: 9 добавлений и 2 удалений

Просмотреть файл

@ -2273,8 +2273,15 @@ DocAccessible::UncacheChildrenInSubtree(Accessible* aRoot)
RemoveDependentIDsFor(aRoot);
uint32_t count = aRoot->ContentChildCount();
for (uint32_t idx = 0; idx < count; idx++)
UncacheChildrenInSubtree(aRoot->ContentChildAt(idx));
for (uint32_t idx = 0; idx < count; idx++) {
Accessible* child = aRoot->ContentChildAt(idx);
// Removing this accessible from the document doesn't mean anything about
// accessibles for subdocuments, so skip removing those from the tree.
if (!child->IsDoc()) {
UncacheChildrenInSubtree(child);
}
}
if (aRoot->IsNodeMapEntry() &&
mNodeToAccessibleMap.Get(aRoot->GetNode()) == aRoot)