summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-25 01:54:03 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-25 01:54:03 +0000
commit67a54912d23c2a0c87065e9a876971fda54edf70 (patch)
tree0cb01248777f61bba238c52dc30152a0245174c1 /chrome/browser/automation
parent8c414fb2b7a662540fb8f7f67802fec788347ac4 (diff)
downloadchromium_src-67a54912d23c2a0c87065e9a876971fda54edf70.zip
chromium_src-67a54912d23c2a0c87065e9a876971fda54edf70.tar.gz
chromium_src-67a54912d23c2a0c87065e9a876971fda54edf70.tar.bz2
AppModalDialogQueue shouldn't depend on views.
Add a simple test, too. Review URL: http://codereview.chromium.org/27080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10320 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation')
-rw-r--r--chrome/browser/automation/automation_provider.cc29
1 files changed, 17 insertions, 12 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc
index d5a13d1..29e59b4 100644
--- a/chrome/browser/automation/automation_provider.cc
+++ b/chrome/browser/automation/automation_provider.cc
@@ -8,6 +8,7 @@
#include "base/path_service.h"
#include "base/thread.h"
#include "chrome/app/chrome_dll_resource.h"
+#include "chrome/browser/app_modal_dialog_delegate.h"
#include "chrome/browser/app_modal_dialog_queue.h"
#include "chrome/browser/automation/automation_provider_list.h"
#include "chrome/browser/automation/ui_controls.h"
@@ -33,7 +34,7 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/notification_registrar.h"
#include "chrome/common/pref_service.h"
-#include "chrome/views/app_modal_dialog_delegate.h"
+#include "chrome/views/dialog_delegate.h"
#include "chrome/views/window.h"
#include "chrome/test/automation/automation_messages.h"
#include "net/base/cookie_monster.h"
@@ -1162,22 +1163,26 @@ void AutomationProvider::GetBrowserWindowCount(int* window_count) {
void AutomationProvider::GetShowingAppModalDialog(bool* showing_dialog,
int* dialog_button) {
- views::AppModalDialogDelegate* dialog_delegate =
- AppModalDialogQueue::active_dialog();
- *showing_dialog = (dialog_delegate != NULL);
- if (*showing_dialog)
- *dialog_button = dialog_delegate->GetDialogButtons();
- else
- *dialog_button = views::DialogDelegate::DIALOGBUTTON_NONE;
+ *showing_dialog = AppModalDialogQueue::HasActiveDialog();
+ *dialog_button = views::DialogDelegate::DIALOGBUTTON_NONE;
+ if (!*showing_dialog)
+ return;
+
+ views::DialogDelegate* dialog_delegate =
+ AppModalDialogQueue::active_dialog()->GetTestingInterface()->
+ GetDialogDelegate();
+ *dialog_button = dialog_delegate->GetDialogButtons();
}
void AutomationProvider::ClickAppModalDialogButton(int button, bool* success) {
*success = false;
+ if (!AppModalDialogQueue::HasActiveDialog())
+ return;
- views::AppModalDialogDelegate* dialog_delegate =
- AppModalDialogQueue::active_dialog();
- if (dialog_delegate &&
- (dialog_delegate->GetDialogButtons() & button) == button) {
+ views::DialogDelegate* dialog_delegate =
+ AppModalDialogQueue::active_dialog()->GetTestingInterface()->
+ GetDialogDelegate();
+ if ((dialog_delegate->GetDialogButtons() & button) == button) {
views::DialogClientView* client_view =
dialog_delegate->window()->client_view()->AsDialogClientView();
if ((button & views::DialogDelegate::DIALOGBUTTON_OK) ==