| Index: ui/views/widget/widget_interactive_uitest.cc
|
| diff --git a/ui/views/widget/widget_interactive_uitest.cc b/ui/views/widget/widget_interactive_uitest.cc
|
| index 6ac9451c124230c589fd5f0c8006babf0cf74f5a..f55c37569a0e8902025d4705bf6a8facbf9235fb 100644
|
| --- a/ui/views/widget/widget_interactive_uitest.cc
|
| +++ b/ui/views/widget/widget_interactive_uitest.cc
|
| @@ -741,7 +741,7 @@ TEST_F(WidgetTestInteractive, WindowModalWindowDestroyedActivationTest) {
|
| init_params.native_widget =
|
| new PlatformDesktopNativeWidget(&top_level_widget);
|
| top_level_widget.Init(init_params);
|
| - top_level_widget.Show();
|
| + ShowSync(&top_level_widget);
|
|
|
| gfx::NativeView top_level_native_view = top_level_widget.GetNativeView();
|
| ASSERT_FALSE(focus_listener.focus_changes().empty());
|
| @@ -756,6 +756,9 @@ TEST_F(WidgetTestInteractive, WindowModalWindowDestroyedActivationTest) {
|
| Widget* modal_dialog_widget = views::DialogDelegate::CreateDialogWidget(
|
| dialog_delegate, NULL, top_level_widget.GetNativeView());
|
| modal_dialog_widget->SetBounds(gfx::Rect(100, 100, 200, 200));
|
| +
|
| + // Note the dialog widget doesn't need a ShowSync. Since it is modal, it gains
|
| + // active status synchronously, even on Mac.
|
| modal_dialog_widget->Show();
|
|
|
| gfx::NativeView modal_native_view = modal_dialog_widget->GetNativeView();
|
| @@ -763,7 +766,15 @@ TEST_F(WidgetTestInteractive, WindowModalWindowDestroyedActivationTest) {
|
| EXPECT_EQ(nullptr, focus_changes[1]);
|
| EXPECT_EQ(modal_native_view, focus_changes[2]);
|
|
|
| +#if defined(OS_MACOSX)
|
| + // Window modal dialogs on Mac are "sheets", which animate to close before
|
| + // activating their parent widget.
|
| + WidgetActivationWaiter waiter(&top_level_widget, true);
|
| + modal_dialog_widget->Close();
|
| + waiter.Wait();
|
| +#else
|
| modal_dialog_widget->CloseNow();
|
| +#endif
|
|
|
| EXPECT_EQ(5u, focus_changes.size());
|
| EXPECT_EQ(nullptr, focus_changes[3]);
|
| @@ -773,8 +784,18 @@ TEST_F(WidgetTestInteractive, WindowModalWindowDestroyedActivationTest) {
|
| WidgetFocusManager::GetInstance()->RemoveFocusChangeListener(&focus_listener);
|
| }
|
|
|
| +// Disabled on Mac. Desktop Mac doesn't have system modal windows since Carbon
|
| +// was deprecated. It does have application modal windows, but only Ash requests
|
| +// those.
|
| +#if defined(OS_MACOSX) && !defined(USE_AURA)
|
| +#define MAYBE_SystemModalWindowReleasesCapture \
|
| + DISABLED_SystemModalWindowReleasesCapture
|
| +#else
|
| +#define MAYBE_SystemModalWindowReleasesCapture SystemModalWindowReleasesCapture
|
| +#endif
|
| +
|
| // Test that when opening a system-modal window, capture is released.
|
| -TEST_F(WidgetTestInteractive, SystemModalWindowReleasesCapture) {
|
| +TEST_F(WidgetTestInteractive, MAYBE_SystemModalWindowReleasesCapture) {
|
| TestWidgetFocusChangeListener focus_listener;
|
| WidgetFocusManager::GetInstance()->AddFocusChangeListener(&focus_listener);
|
|
|
|
|