Index: ui/views/widget/widget_unittest.cc |
diff --git a/ui/views/widget/widget_unittest.cc b/ui/views/widget/widget_unittest.cc |
index 84d660088a45c44340de4b6d93a242b0b274cfe5..a716fc3559c92c190fc2e597f26ea9cb3c23ff60 100644 |
--- a/ui/views/widget/widget_unittest.cc |
+++ b/ui/views/widget/widget_unittest.cc |
@@ -1315,6 +1315,26 @@ class DesktopAuraTestValidPaintWidget : public views::Widget { |
void InitForTest(Widget::InitParams create_params); |
+ bool ReadReceivedPaintAndReset() { |
+ bool result = received_paint_; |
+ received_paint_ = false; |
+ return result; |
+ } |
+ |
+ bool received_paint_while_hidden() const { |
+ return received_paint_while_hidden_; |
+ } |
+ |
+ void WaitUntilPaint() { |
+ if (received_paint_) |
+ return; |
+ base::RunLoop runloop; |
+ quit_closure_ = runloop.QuitClosure(); |
+ runloop.Run(); |
+ quit_closure_ = base::Closure(); |
+ } |
+ |
+ // views::Widget: |
void Show() override { |
expect_paint_ = true; |
views::Widget::Show(); |
@@ -1336,22 +1356,15 @@ class DesktopAuraTestValidPaintWidget : public views::Widget { |
if (!expect_paint_) |
received_paint_while_hidden_ = true; |
views::Widget::OnNativeWidgetPaint(context); |
- } |
- |
- bool ReadReceivedPaintAndReset() { |
- bool result = received_paint_; |
- received_paint_ = false; |
- return result; |
- } |
- |
- bool received_paint_while_hidden() const { |
- return received_paint_while_hidden_; |
+ if (!quit_closure_.is_null()) |
+ quit_closure_.Run(); |
} |
private: |
bool received_paint_; |
bool expect_paint_; |
bool received_paint_while_hidden_; |
+ base::Closure quit_closure_; |
DISALLOW_COPY_AND_ASSIGN(DesktopAuraTestValidPaintWidget); |
}; |
@@ -1371,17 +1384,13 @@ void DesktopAuraTestValidPaintWidget::InitForTest(InitParams init_params) { |
Activate(); |
} |
-#if defined(OS_LINUX) || defined(OS_WIN) |
-// Flaky on Linux rel ng: https://crbug.com/596039. |
-#define MAYBE_DesktopNativeWidgetNoPaintAfterCloseTest DISABLED_DesktopNativeWidgetNoPaintAfterCloseTest |
-#else |
-#define MAYBE_DesktopNativeWidgetNoPaintAfterCloseTest DesktopNativeWidgetNoPaintAfterCloseTest |
-#endif |
- |
-TEST_F(WidgetTest, MAYBE_DesktopNativeWidgetNoPaintAfterCloseTest) { |
+TEST_F(WidgetTest, DesktopNativeWidgetNoPaintAfterCloseTest) { |
+ // TODO(sad): Desktop widgets do not work well in mus https://crbug.com/616551 |
+ if (IsMus()) |
+ return; |
DesktopAuraTestValidPaintWidget widget; |
widget.InitForTest(CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS)); |
- RunPendingMessages(); |
+ widget.WaitUntilPaint(); |
EXPECT_TRUE(widget.ReadReceivedPaintAndReset()); |
widget.SchedulePaintInRect(widget.GetRestoredBounds()); |
widget.Close(); |
@@ -1390,16 +1399,13 @@ TEST_F(WidgetTest, MAYBE_DesktopNativeWidgetNoPaintAfterCloseTest) { |
EXPECT_FALSE(widget.received_paint_while_hidden()); |
} |
-// Flaky; see https://crbug.com/596039. |
-#if defined(OS_LINUX) || defined(OS_WIN) |
-#define MAYBE_DesktopNativeWidgetNoPaintAfterHideTest DISABLED_DesktopNativeWidgetNoPaintAfterHideTest |
-#else |
-#define MAYBE_DesktopNativeWidgetNoPaintAfterHideTest DesktopNativeWidgetNoPaintAfterHideTest |
-#endif |
-TEST_F(WidgetTest, MAYBE_DesktopNativeWidgetNoPaintAfterHideTest) { |
+TEST_F(WidgetTest, DesktopNativeWidgetNoPaintAfterHideTest) { |
+ // TODO(sad): Desktop widgets do not work well in mus https://crbug.com/616551 |
+ if (IsMus()) |
+ return; |
DesktopAuraTestValidPaintWidget widget; |
widget.InitForTest(CreateParams(Widget::InitParams::TYPE_WINDOW_FRAMELESS)); |
- RunPendingMessages(); |
+ widget.WaitUntilPaint(); |
EXPECT_TRUE(widget.ReadReceivedPaintAndReset()); |
widget.SchedulePaintInRect(widget.GetRestoredBounds()); |
widget.Hide(); |
@@ -3644,6 +3650,9 @@ private: |
// under the currently active modal top-level window. In this instance, the |
// remaining top-level windows should be re-enabled. |
TEST_F(WidgetTest, WindowModalOwnerDestroyedEnabledTest) { |
+ // Modality etc. are controlled by mus. |
+ if (IsMus()) |
+ return; |
// top_level_widget owns owner_dialog_widget which owns owned_dialog_widget. |
Widget top_level_widget; |
Widget owner_dialog_widget; |