Index: components/app_modal_dialogs/app_modal_dialog.cc |
diff --git a/chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc b/components/app_modal_dialogs/app_modal_dialog.cc |
similarity index 73% |
rename from chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc |
rename to components/app_modal_dialogs/app_modal_dialog.cc |
index edd94572dd7e4cb87150d0d69fcf67383d021962..408dfc4de09a935ce10df88af2d4d198a6b3a5a0 100644 |
--- a/chrome/browser/ui/app_modal_dialogs/app_modal_dialog.cc |
+++ b/components/app_modal_dialogs/app_modal_dialog.cc |
@@ -2,18 +2,33 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog.h" |
+#include "components/app_modal_dialogs/app_modal_dialog.h" |
#include "base/logging.h" |
-#include "chrome/browser/chrome_notification_types.h" |
-#include "chrome/browser/ui/app_modal_dialogs/app_modal_dialog_queue.h" |
-#include "chrome/browser/ui/app_modal_dialogs/native_app_modal_dialog.h" |
-#include "content/public/browser/notification_service.h" |
+#include "base/run_loop.h" |
+#include "components/app_modal_dialogs/app_modal_dialog_queue.h" |
+#include "components/app_modal_dialogs/native_app_modal_dialog.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/browser/web_contents_delegate.h" |
using content::WebContents; |
+namespace { |
+ |
+AppModalDialogWaiter* waiter_ = NULL; |
+ |
+} // namespace |
+ |
+AppModalDialogWaiter::AppModalDialogWaiter() { |
+ DCHECK(!waiter_); |
+ waiter_ = this; |
+} |
+ |
+AppModalDialogWaiter::~AppModalDialogWaiter() { |
+ DCHECK(waiter_); |
+ waiter_ = NULL; |
+} |
+ |
AppModalDialog::AppModalDialog(WebContents* web_contents, |
const base::string16& title) |
: title_(title), |
@@ -30,11 +45,8 @@ AppModalDialog::~AppModalDialog() { |
void AppModalDialog::ShowModalDialog() { |
web_contents_->GetDelegate()->ActivateContents(web_contents_); |
CreateAndShowDialog(); |
- |
- content::NotificationService::current()->Notify( |
- chrome::NOTIFICATION_APP_MODAL_DIALOG_SHOWN, |
- content::Source<AppModalDialog>(this), |
- content::NotificationService::NoDetails()); |
+ if (waiter_) |
+ waiter_->Notify(this); |
} |
void AppModalDialog::CreateAndShowDialog() { |