diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-17 20:26:23 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-17 20:26:23 +0000 |
commit | 713df7366b4db6ec956e9cf0fa8378b709e6b552 (patch) | |
tree | a4df2da08f8fe5102a2e76ea3c701f387c3b6126 /chrome/browser/automation | |
parent | c4652e96b8dc0b7671ab509706bd95775164ebb0 (diff) | |
download | chromium_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.cc | 144 | ||||
-rw-r--r-- | chrome/browser/automation/automation_provider.h | 14 |
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); |