Index: ui/views/widget/widget.cc |
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc |
index 68c339ab9509a76ffe0781efddfed1f461f8a699..6be502d8b1e8fbb8dc9f492782f28193de8c7688 100644 |
--- a/ui/views/widget/widget.cc |
+++ b/ui/views/widget/widget.cc |
@@ -427,6 +427,13 @@ void Widget::ViewHierarchyChanged( |
focus_manager->ViewRemoved(details.child); |
ViewStorage::GetInstance()->ViewRemoved(details.child); |
native_widget_->ViewRemoved(details.child); |
+ |
+ // Many observers do not remove themselves during destruction, so we must |
+ // not notify once we destroy our |root_view_|. |
+ if (root_view_.get()) { |
+ FOR_EACH_OBSERVER( |
+ WidgetObserver, observers_, OnViewRemoved(this, details.child)); |
+ } |
} |
} |