summaryrefslogtreecommitdiffstats
path: root/chrome/browser/app_modal_dialog_queue.cc
diff options
context:
space:
mode:
authorjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-28 17:02:07 +0000
committerjcampan@chromium.org <jcampan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-28 17:02:07 +0000
commit1f46007516b8ab87a9089bfab64621595b869e54 (patch)
tree7542b70956c2811c4d3ef6be53c38bbc97dabec4 /chrome/browser/app_modal_dialog_queue.cc
parent2a4fab98a8dd8a65f16d64acb1f51d8a0076a25f (diff)
downloadchromium_src-1f46007516b8ab87a9089bfab64621595b869e54.zip
chromium_src-1f46007516b8ab87a9089bfab64621595b869e54.tar.gz
chromium_src-1f46007516b8ab87a9089bfab64621595b869e54.tar.bz2
This CL is a clean-up of the app_modal_dialog_queue.cc in an attempt to fix a bug 10699.
Not sure what is causing the crasher. Hopefully after this clean-up we'll get a different stack-trace that might help. BUG=10699 TEST=Make sure alert/confirm boxes work properly. make sure a background tab that shows a (delayed) alert box works. Same with a background browser. Review URL: http://codereview.chromium.org/113932 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17078 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/app_modal_dialog_queue.cc')
-rw-r--r--chrome/browser/app_modal_dialog_queue.cc39
1 files changed, 11 insertions, 28 deletions
diff --git a/chrome/browser/app_modal_dialog_queue.cc b/chrome/browser/app_modal_dialog_queue.cc
index e24a7b0..2ab1398 100644
--- a/chrome/browser/app_modal_dialog_queue.cc
+++ b/chrome/browser/app_modal_dialog_queue.cc
@@ -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;
}