summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-17 20:26:23 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-17 20:26:23 +0000
commit713df7366b4db6ec956e9cf0fa8378b709e6b552 (patch)
treea4df2da08f8fe5102a2e76ea3c701f387c3b6126 /chrome/browser/automation
parentc4652e96b8dc0b7671ab509706bd95775164ebb0 (diff)
downloadchromium_src-713df7366b4db6ec956e9cf0fa8378b709e6b552.zip
chromium_src-713df7366b4db6ec956e9cf0fa8378b709e6b552.tar.gz
chromium_src-713df7366b4db6ec956e9cf0fa8378b709e6b552.tar.bz2
GTTF: Further separation of testing automation stuff from ChromeFrame
TEST=ui_tests, chrome_frame_tests BUG=52097 Review URL: http://codereview.chromium.org/3186004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56410 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/automation')
-rw-r--r--chrome/browser/automation/automation_provider.cc144
-rw-r--r--chrome/browser/automation/automation_provider.h14
2 files changed, 86 insertions, 72 deletions
diff --git a/chrome/browser/automation/automation_provider.cc b/chrome/browser/automation/automation_provider.cc
index ed37ea4..746261f 100644
--- a/chrome/browser/automation/automation_provider.cc
+++ b/chrome/browser/automation/automation_provider.cc
@@ -335,12 +335,7 @@ Extension* AutomationProvider::GetDisabledExtension(int extension_handle) {
void AutomationProvider::OnMessageReceived(const IPC::Message& message) {
IPC_BEGIN_MESSAGE_MAP(AutomationProvider, message)
- IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_CloseBrowser, CloseBrowser)
- IPC_MESSAGE_HANDLER(AutomationMsg_CloseBrowserRequestAsync,
- CloseBrowserAsync)
- IPC_MESSAGE_HANDLER(AutomationMsg_ActivateTab, ActivateTab)
IPC_MESSAGE_HANDLER(AutomationMsg_ActiveTabIndex, GetActiveTabIndex)
- IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_AppendTab, AppendTab)
IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_CloseTab, CloseTab)
IPC_MESSAGE_HANDLER(AutomationMsg_GetCookies, GetCookies)
IPC_MESSAGE_HANDLER(AutomationMsg_SetCookie, SetCookie)
@@ -589,47 +584,6 @@ void AutomationProvider::OnMessageReceived(const IPC::Message& message) {
IPC_END_MESSAGE_MAP()
}
-void AutomationProvider::ActivateTab(int handle, int at_index, int* status) {
- *status = -1;
- if (browser_tracker_->ContainsHandle(handle) && at_index > -1) {
- Browser* browser = browser_tracker_->GetResource(handle);
- if (at_index >= 0 && at_index < browser->tab_count()) {
- browser->SelectTabContentsAt(at_index, true);
- *status = 0;
- }
- }
-}
-
-void AutomationProvider::AppendTab(int handle, const GURL& url,
- IPC::Message* reply_message) {
- int append_tab_response = -1; // -1 is the error code
- NotificationObserver* observer = NULL;
-
- if (browser_tracker_->ContainsHandle(handle)) {
- Browser* browser = browser_tracker_->GetResource(handle);
- observer = AddTabStripObserver(browser, reply_message);
- TabContents* tab_contents = browser->AddTabWithURL(
- url, GURL(), PageTransition::TYPED, -1, TabStripModel::ADD_SELECTED,
- NULL, std::string(), &browser);
- if (tab_contents) {
- append_tab_response =
- GetIndexForNavigationController(&tab_contents->controller(), browser);
- }
- }
-
- if (append_tab_response < 0) {
- // The append tab failed. Remove the TabStripObserver
- if (observer) {
- RemoveTabStripObserver(observer);
- delete observer;
- }
-
- AutomationMsg_AppendTab::WriteReplyParams(reply_message,
- append_tab_response);
- Send(reply_message);
- }
-}
-
void AutomationProvider::NavigateToURL(int handle, const GURL& url,
IPC::Message* reply_message) {
NavigateToURLBlockUntilNavigationsComplete(handle, url, 1, reply_message);
@@ -3599,27 +3553,6 @@ void AutomationProvider::CloseTab(int tab_handle,
Send(reply_message);
}
-void AutomationProvider::CloseBrowser(int browser_handle,
- IPC::Message* reply_message) {
- if (browser_tracker_->ContainsHandle(browser_handle)) {
- Browser* browser = browser_tracker_->GetResource(browser_handle);
- new BrowserClosedNotificationObserver(browser, this,
- reply_message);
- browser->window()->Close();
- } else {
- NOTREACHED();
- }
-}
-
-void AutomationProvider::CloseBrowserAsync(int browser_handle) {
- if (browser_tracker_->ContainsHandle(browser_handle)) {
- Browser* browser = browser_tracker_->GetResource(browser_handle);
- browser->window()->Close();
- } else {
- NOTREACHED();
- }
-}
-
void AutomationProvider::WaitForTabToBeRestored(int tab_handle,
IPC::Message* reply_message) {
if (tab_tracker_->ContainsHandle(tab_handle)) {
@@ -3842,11 +3775,88 @@ TestingAutomationProvider::~TestingAutomationProvider() {
BrowserList::RemoveObserver(this);
}
+void TestingAutomationProvider::OnMessageReceived(
+ const IPC::Message& message) {
+ IPC_BEGIN_MESSAGE_MAP(TestingAutomationProvider, message)
+ IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_CloseBrowser, CloseBrowser)
+ IPC_MESSAGE_HANDLER(AutomationMsg_CloseBrowserRequestAsync,
+ CloseBrowserAsync)
+ IPC_MESSAGE_HANDLER(AutomationMsg_ActivateTab, ActivateTab)
+ IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_AppendTab, AppendTab)
+
+ IPC_MESSAGE_UNHANDLED(AutomationProvider::OnMessageReceived(message));
+ IPC_END_MESSAGE_MAP()
+}
+
void TestingAutomationProvider::OnChannelError() {
BrowserList::CloseAllBrowsersAndExit();
AutomationProvider::OnChannelError();
}
+void TestingAutomationProvider::CloseBrowser(int browser_handle,
+ IPC::Message* reply_message) {
+ if (browser_tracker_->ContainsHandle(browser_handle)) {
+ Browser* browser = browser_tracker_->GetResource(browser_handle);
+ new BrowserClosedNotificationObserver(browser, this,
+ reply_message);
+ browser->window()->Close();
+ } else {
+ NOTREACHED();
+ }
+}
+
+void TestingAutomationProvider::CloseBrowserAsync(int browser_handle) {
+ if (browser_tracker_->ContainsHandle(browser_handle)) {
+ Browser* browser = browser_tracker_->GetResource(browser_handle);
+ browser->window()->Close();
+ } else {
+ NOTREACHED();
+ }
+}
+
+void TestingAutomationProvider::ActivateTab(int handle,
+ int at_index,
+ int* status) {
+ *status = -1;
+ if (browser_tracker_->ContainsHandle(handle) && at_index > -1) {
+ Browser* browser = browser_tracker_->GetResource(handle);
+ if (at_index >= 0 && at_index < browser->tab_count()) {
+ browser->SelectTabContentsAt(at_index, true);
+ *status = 0;
+ }
+ }
+}
+
+void TestingAutomationProvider::AppendTab(int handle, const GURL& url,
+ IPC::Message* reply_message) {
+ int append_tab_response = -1; // -1 is the error code
+ NotificationObserver* observer = NULL;
+
+ if (browser_tracker_->ContainsHandle(handle)) {
+ Browser* browser = browser_tracker_->GetResource(handle);
+ observer = AddTabStripObserver(browser, reply_message);
+ TabContents* tab_contents = browser->AddTabWithURL(
+ url, GURL(), PageTransition::TYPED, -1, TabStripModel::ADD_SELECTED,
+ NULL, std::string(), &browser);
+ if (tab_contents) {
+ append_tab_response =
+ GetIndexForNavigationController(&tab_contents->controller(), browser);
+ }
+ }
+
+ if (append_tab_response < 0) {
+ // The append tab failed. Remove the TabStripObserver
+ if (observer) {
+ RemoveTabStripObserver(observer);
+ delete observer;
+ }
+
+ AutomationMsg_AppendTab::WriteReplyParams(reply_message,
+ append_tab_response);
+ Send(reply_message);
+ }
+}
+
void TestingAutomationProvider::OnBrowserAdded(const Browser* browser) {
}
diff --git a/chrome/browser/automation/automation_provider.h b/chrome/browser/automation/automation_provider.h
index 9ff8753..fa3504b 100644
--- a/chrome/browser/automation/automation_provider.h
+++ b/chrome/browser/automation/automation_provider.h
@@ -154,12 +154,10 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>,
friend class PopupMenuWaiter;
virtual ~AutomationProvider();
+ scoped_ptr<AutomationBrowserTracker> browser_tracker_;
+
private:
// IPC Message callbacks.
- void CloseBrowser(int handle, IPC::Message* reply_message);
- void CloseBrowserAsync(int browser_handle);
- void ActivateTab(int handle, int at_index, int* status);
- void AppendTab(int handle, const GURL& url, IPC::Message* reply_message);
void CloseTab(int tab_handle, bool wait_until_closed,
IPC::Message* reply_message);
@@ -931,7 +929,6 @@ class AutomationProvider : public base::RefCounted<AutomationProvider>,
scoped_ptr<ExtensionTestResultNotificationObserver>
extension_test_result_observer_;
scoped_ptr<MetricEventDurationObserver> metric_event_duration_observer_;
- scoped_ptr<AutomationBrowserTracker> browser_tracker_;
scoped_ptr<AutomationExtensionTracker> extension_tracker_;
scoped_ptr<AutomationTabTracker> tab_tracker_;
scoped_ptr<AutomationWindowTracker> window_tracker_;
@@ -984,11 +981,18 @@ class TestingAutomationProvider : public AutomationProvider,
virtual void OnBrowserRemoving(const Browser* browser);
// IPC implementations
+ virtual void OnMessageReceived(const IPC::Message& msg);
virtual void OnChannelError();
private:
virtual ~TestingAutomationProvider();
+ // IPC Message callbacks.
+ void CloseBrowser(int handle, IPC::Message* reply_message);
+ void CloseBrowserAsync(int browser_handle);
+ void ActivateTab(int handle, int at_index, int* status);
+ void AppendTab(int handle, const GURL& url, IPC::Message* reply_message);
+
virtual void Observe(NotificationType type,
const NotificationSource& source,
const NotificationDetails& details);