Index: ui/views/test/widget_test.cc |
diff --git a/ui/views/test/widget_test.cc b/ui/views/test/widget_test.cc |
index a96a9db970a7e626486ba275afa1d43365fe2a1d..43072b11d2b22692b920b7decc7f2fe2c56846f9 100644 |
--- a/ui/views/test/widget_test.cc |
+++ b/ui/views/test/widget_test.cc |
@@ -178,6 +178,8 @@ void WidgetActivationWaiter::OnWidgetActivationChanged(Widget* widget, |
} |
WidgetClosingObserver::WidgetClosingObserver(Widget* widget) : widget_(widget) { |
+ if (!widget) |
+ return; |
xiyuan
2017/05/12 22:29:57
DCHECK(widget) or just get rid of it to let it cra
Qiang(Joe) Xu
2017/05/12 22:39:33
done by removing
|
widget_->AddObserver(this); |
} |
@@ -186,10 +188,17 @@ WidgetClosingObserver::~WidgetClosingObserver() { |
widget_->RemoveObserver(this); |
} |
+void WidgetClosingObserver::Wait() { |
+ if (widget_) |
+ run_loop_.Run(); |
+} |
+ |
void WidgetClosingObserver::OnWidgetClosing(Widget* widget) { |
DCHECK_EQ(widget_, widget); |
widget_->RemoveObserver(this); |
widget_ = nullptr; |
+ if (run_loop_.running()) |
+ run_loop_.Quit(); |
} |
} // namespace test |