Index: content/browser/accessibility/browser_accessibility_manager.cc |
diff --git a/content/browser/accessibility/browser_accessibility_manager.cc b/content/browser/accessibility/browser_accessibility_manager.cc |
index 52fcc2b1579a0446e2f04416a0576de585e3efba..781eadda4f1a7da7cf1077179e6409848ba5dc7d 100644 |
--- a/content/browser/accessibility/browser_accessibility_manager.cc |
+++ b/content/browser/accessibility/browser_accessibility_manager.cc |
@@ -414,6 +414,9 @@ void BrowserAccessibilityManager::OnNodeWillBeDeleted(ui::AXNode* node) { |
} |
void BrowserAccessibilityManager::OnSubtreeWillBeDeleted(ui::AXNode* node) { |
+ BrowserAccessibility* obj = GetFromAXNode(node); |
+ if (obj) |
+ obj->OnSubtreeWillBeDeleted(); |
} |
void BrowserAccessibilityManager::OnNodeCreated(ui::AXNode* node) { |
@@ -428,9 +431,17 @@ void BrowserAccessibilityManager::OnNodeChanged(ui::AXNode* node) { |
} |
void BrowserAccessibilityManager::OnAtomicUpdateFinished( |
- bool root_changed, const std::vector<ui::AXTreeDelegate::Change>& changes) { |
- for (size_t i = 0; i < changes.size(); ++i) |
- GetFromAXNode(changes[i].node)->OnUpdateFinished(); |
+ bool root_changed, |
+ const std::vector<ui::AXTreeDelegate::Change>& changes) { |
+ for (size_t i = 0; i < changes.size(); ++i) { |
+ BrowserAccessibility* obj = GetFromAXNode(changes[i].node); |
+ if (!obj) |
+ continue; |
+ |
+ obj->OnUpdateFinished(); |
+ if (changes[i].type == AXTreeDelegate::SUBTREE_CREATED) |
+ GetFromAXNode(changes[i].node)->OnSubtreeCreationFinished(); |
+ } |
} |
BrowserAccessibilityDelegate* |