| Index: ui/views/accessibility/ax_aura_obj_cache.cc
|
| diff --git a/ui/views/accessibility/ax_aura_obj_cache.cc b/ui/views/accessibility/ax_aura_obj_cache.cc
|
| index 8d5937b39c1b702d1a927af9cf1f82d05c738015..1b09df379ac6ff3c4837a6c3cbccf9cdad0aad32 100644
|
| --- a/ui/views/accessibility/ax_aura_obj_cache.cc
|
| +++ b/ui/views/accessibility/ax_aura_obj_cache.cc
|
| @@ -49,8 +49,19 @@ void AXAuraObjCache::Remove(View* view) {
|
| RemoveInternal(view, view_to_id_map_);
|
| }
|
|
|
| +void AXAuraObjCache::RemoveViewSubtree(View* view) {
|
| + Remove(view);
|
| + for (int i = 0; i < view->child_count(); ++i)
|
| + RemoveViewSubtree(view->child_at(i));
|
| +}
|
| +
|
| void AXAuraObjCache::Remove(Widget* widget) {
|
| RemoveInternal(widget, widget_to_id_map_);
|
| +
|
| + // When an entire widget is deleted, it doesn't always send a notification
|
| + // on each of its views, so we need to explore them recursively.
|
| + if (widget->GetRootView())
|
| + RemoveViewSubtree(widget->GetRootView());
|
| }
|
|
|
| void AXAuraObjCache::Remove(aura::Window* window) {
|
|
|