diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-25 01:54:03 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-25 01:54:03 +0000 |
commit | 67a54912d23c2a0c87065e9a876971fda54edf70 (patch) | |
tree | 0cb01248777f61bba238c52dc30152a0245174c1 /chrome/browser/automation | |
parent | 8c414fb2b7a662540fb8f7f67802fec788347ac4 (diff) | |
download | chromium_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.cc | 29 |
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) == |