Chromium Code Reviews| Index: chrome/browser/ui/views/simple_message_box_views.cc |
| diff --git a/chrome/browser/ui/views/simple_message_box_views.cc b/chrome/browser/ui/views/simple_message_box_views.cc |
| index 4eee13d9bbbd578f364f10bd44db81ef41033ce1..91c219394eff2a5b098cd8d88d6deecae3c9b67b 100644 |
| --- a/chrome/browser/ui/views/simple_message_box_views.cc |
| +++ b/chrome/browser/ui/views/simple_message_box_views.cc |
| @@ -73,6 +73,9 @@ class SimpleMessageBoxViews : public views::DialogDelegate { |
| DISALLOW_COPY_AND_ASSIGN(SimpleMessageBoxViews); |
| }; |
| +// The currently showing message box, if there is one. Used for tests. |
| +SimpleMessageBoxViews* g_current_message_box = nullptr; |
| + |
| //////////////////////////////////////////////////////////////////////////////// |
| // SimpleMessageBoxViews, public: |
| @@ -112,6 +115,7 @@ SimpleMessageBoxViews::~SimpleMessageBoxViews() { |
| } |
| MessageBoxResult SimpleMessageBoxViews::RunDialogAndGetResult() { |
| + g_current_message_box = this; |
|
msw
2016/10/27 21:46:45
Should this care if there's any other dialog alrea
Evan Stade
2016/10/28 17:31:55
Given how it's presently used (only for testing),
|
| MessageBoxResult result = MESSAGE_BOX_RESULT_NO; |
| result_ = &result; |
| // TODO(pkotwicz): Exit message loop when the dialog is closed by some other |
| @@ -121,6 +125,7 @@ MessageBoxResult SimpleMessageBoxViews::RunDialogAndGetResult() { |
| base::RunLoop run_loop; |
| quit_runloop_ = run_loop.QuitClosure(); |
| run_loop.Run(); |
| + g_current_message_box = nullptr; |
| return result; |
| } |
| @@ -247,6 +252,17 @@ MessageBoxResult ShowMessageBoxImpl(gfx::NativeWindow parent, |
| } // namespace |
| +bool CloseMessageBoxForTest(bool accept) { |
| + if (!g_current_message_box) |
| + return false; |
| + |
| + if (accept) |
| + g_current_message_box->Accept(); |
| + else |
| + g_current_message_box->Cancel(); |
| + return true; |
| +} |
| + |
| void ShowWarningMessageBox(gfx::NativeWindow parent, |
| const base::string16& title, |
| const base::string16& message) { |