summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/automation_provider.cc
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-03 16:44:57 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-03 16:44:57 +0000
commit415ad48ad827f0a88645069f2bb731d497f5f23e (patch)
treea9efe67f99ae4625badca6c19848487e27bc5dad /chrome/browser/automation/automation_provider.cc
parentbd745438c31d1646cfb1e99a419e7b17dc2b90d2 (diff)
downloadchromium_src-415ad48ad827f0a88645069f2bb731d497f5f23e.zip
chromium_src-415ad48ad827f0a88645069f2bb731d497f5f23e.tar.gz
chromium_src-415ad48ad827f0a88645069f2bb731d497f5f23e.tar.bz2
This is the first of probably several patches trying to clean up the BlockedPopupContainer into something that can be cross-platform.
- BlokedPopupContainers are no longer ConstrainedWindows. - There is now a cross platform base class that contains most of the model/controller logic. The view now inherits from it. This is an improvement. Review URL: http://codereview.chromium.org/119006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17483 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation/automation_provider.cc')
-rw-r--r--chrome/browser/automation/automation_provider.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc
index c2e0877..fac1b83 100644
--- a/chrome/browser/automation/automation_provider.cc
+++ b/chrome/browser/automation/automation_provider.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/automation/url_request_failed_dns_job.h"
#include "chrome/browser/automation/url_request_mock_http_job.h"
#include "chrome/browser/automation/url_request_slow_download_job.h"
+#include "chrome/browser/blocked_popup_container.h"
#include "chrome/browser/browser_window.h"
#include "chrome/browser/dom_operation_notification_details.h"
#include "chrome/browser/download/download_manager.h"
@@ -1082,6 +1083,7 @@ void AutomationProvider::OnMessageReceived(const IPC::Message& message) {
IPC_MESSAGE_HANDLER(AutomationMsg_WindowTitle, GetWindowTitle)
IPC_MESSAGE_HANDLER(AutomationMsg_SetEnableExtensionAutomation,
SetEnableExtensionAutomation)
+ IPC_MESSAGE_HANDLER(AutomationMsg_BlockedPopupCount, GetBlockedPopupCount)
IPC_END_MESSAGE_MAP()
}
@@ -2986,3 +2988,22 @@ void AutomationProvider::GetWindowTitle(int handle, string16* text) {
gfx::NativeWindow window = window_tracker_->GetResource(handle);
text->assign(platform_util::GetWindowTitle(window));
}
+
+void AutomationProvider::GetBlockedPopupCount(int handle, int* count) {
+ *count = -1; // -1 is the error code
+ if (tab_tracker_->ContainsHandle(handle)) {
+ NavigationController* nav_controller = tab_tracker_->GetResource(handle);
+ TabContents* tab_contents = nav_controller->tab_contents();
+ if (tab_contents) {
+ BlockedPopupContainer* container =
+ tab_contents->blocked_popup_container();
+ if (container) {
+ *count = static_cast<int>(container->GetBlockedPopupCount());
+ } else {
+ // If we don't have a container, we don't have any blocked popups to
+ // contain!
+ *count = 0;
+ }
+ }
+ }
+}