Index: chrome/browser/app_modal_dialog_queue.cc |
=================================================================== |
--- chrome/browser/app_modal_dialog_queue.cc (revision 17006) |
+++ chrome/browser/app_modal_dialog_queue.cc (working copy) |
@@ -6,47 +6,30 @@ |
#include "chrome/browser/browser_list.h" |
-// static |
-std::queue<AppModalDialog*>* |
- AppModalDialogQueue::app_modal_dialog_queue_ = NULL; |
-AppModalDialog* AppModalDialogQueue::active_dialog_ = NULL; |
- |
-// static |
void AppModalDialogQueue::AddDialog(AppModalDialog* dialog) { |
- if (!app_modal_dialog_queue_) { |
- app_modal_dialog_queue_ = new std::queue<AppModalDialog*>; |
+ if (!active_dialog_) { |
ShowModalDialog(dialog); |
+ return; |
} |
- |
- // ShowModalDialog can wind up calling ShowNextDialog in some cases, which |
- // can then make app_modal_dialog_queue_ NULL. |
- if (app_modal_dialog_queue_) |
- app_modal_dialog_queue_->push(dialog); |
+ app_modal_dialog_queue_.push(dialog); |
} |
-// static |
void AppModalDialogQueue::ShowNextDialog() { |
- app_modal_dialog_queue_->pop(); |
- active_dialog_ = NULL; |
- if (!app_modal_dialog_queue_->empty()) { |
- ShowModalDialog(app_modal_dialog_queue_->front()); |
+ if (!app_modal_dialog_queue_.empty()) { |
+ AppModalDialog* dialog = app_modal_dialog_queue_.front(); |
+ app_modal_dialog_queue_.pop(); |
+ ShowModalDialog(dialog); |
} else { |
- delete app_modal_dialog_queue_; |
- app_modal_dialog_queue_ = NULL; |
+ active_dialog_ = NULL; |
} |
} |
-// static |
void AppModalDialogQueue::ActivateModalDialog() { |
- if (!app_modal_dialog_queue_->empty()) |
- app_modal_dialog_queue_->front()->ActivateModalDialog(); |
+ if (active_dialog_) |
+ active_dialog_->ActivateModalDialog(); |
} |
-// static |
void AppModalDialogQueue::ShowModalDialog(AppModalDialog* dialog) { |
- // ShowModalDialog can wind up calling ShowNextDialog in some cases, |
- // which will wind up calling this method recursively, so active_dialog_ |
- // must be set first. |
- active_dialog_ = dialog; |
dialog->ShowModalDialog(); |
+ active_dialog_ = dialog; |
} |