Index: chrome/browser/ui/views/first_run_dialog.cc |
diff --git a/chrome/browser/ui/views/first_run_dialog.cc b/chrome/browser/ui/views/first_run_dialog.cc |
index 15a1169ce08a521e026d583117c8a6e41b20be83..76671638ad550c0bbdc49bae8ffbec5c17f6dac5 100644 |
--- a/chrome/browser/ui/views/first_run_dialog.cc |
+++ b/chrome/browser/ui/views/first_run_dialog.cc |
@@ -66,7 +66,9 @@ bool FirstRunDialog::Show(Profile* profile) { |
aura::Window* anchor = dialog->GetWidget()->GetNativeWindow(); |
aura::client::DispatcherClient* client = |
aura::client::GetDispatcherClient(anchor->GetRootWindow()); |
- client->RunWithDispatcher(NULL); |
+ aura::client::DispatcherRunLoop run_loop(client, NULL); |
+ dialog->quit_runloop_ = run_loop.QuitClosure(); |
+ run_loop.Run(); |
dialog_shown = true; |
} |
#endif // defined(GOOGLE_CHROME_BUILD) |
@@ -103,10 +105,8 @@ FirstRunDialog::~FirstRunDialog() { |
} |
void FirstRunDialog::Done() { |
- aura::Window* window = GetWidget()->GetNativeView(); |
- aura::client::DispatcherClient* client = |
- aura::client::GetDispatcherClient(window->GetRootWindow()); |
- client->QuitNestedMessageLoop(); |
+ CHECK(!quit_runloop_.is_null()); |
+ quit_runloop_.Run(); |
} |
views::View* FirstRunDialog::CreateExtraView() { |