Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(343)

Side by Side Diff: chrome/browser/automation/automation_provider.cc

Issue 211033: Automated ui test porting + cleanup:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: all green\! Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/automation/automation_provider.h" 5 #include "chrome/browser/automation/automation_provider.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "app/message_box_flags.h" 10 #include "app/message_box_flags.h"
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 GetNormalBrowserWindowCount) 275 GetNormalBrowserWindowCount)
276 IPC_MESSAGE_HANDLER(AutomationMsg_BrowserWindow, GetBrowserWindow) 276 IPC_MESSAGE_HANDLER(AutomationMsg_BrowserWindow, GetBrowserWindow)
277 IPC_MESSAGE_HANDLER(AutomationMsg_GetBrowserLocale, GetBrowserLocale) 277 IPC_MESSAGE_HANDLER(AutomationMsg_GetBrowserLocale, GetBrowserLocale)
278 IPC_MESSAGE_HANDLER(AutomationMsg_LastActiveBrowserWindow, 278 IPC_MESSAGE_HANDLER(AutomationMsg_LastActiveBrowserWindow,
279 GetLastActiveBrowserWindow) 279 GetLastActiveBrowserWindow)
280 IPC_MESSAGE_HANDLER(AutomationMsg_ActiveWindow, GetActiveWindow) 280 IPC_MESSAGE_HANDLER(AutomationMsg_ActiveWindow, GetActiveWindow)
281 IPC_MESSAGE_HANDLER(AutomationMsg_FindNormalBrowserWindow, 281 IPC_MESSAGE_HANDLER(AutomationMsg_FindNormalBrowserWindow,
282 FindNormalBrowserWindow) 282 FindNormalBrowserWindow)
283 IPC_MESSAGE_HANDLER(AutomationMsg_IsWindowActive, IsWindowActive) 283 IPC_MESSAGE_HANDLER(AutomationMsg_IsWindowActive, IsWindowActive)
284 IPC_MESSAGE_HANDLER(AutomationMsg_ActivateWindow, ActivateWindow) 284 IPC_MESSAGE_HANDLER(AutomationMsg_ActivateWindow, ActivateWindow)
285 #if defined(OS_WIN) 285 IPC_MESSAGE_HANDLER(AutomationMsg_IsWindowMaximized, IsWindowMaximized)
286 IPC_MESSAGE_HANDLER(AutomationMsg_WindowHWND, GetWindowHWND)
287 #endif // defined(OS_WIN)
288 IPC_MESSAGE_HANDLER(AutomationMsg_WindowExecuteCommandAsync, 286 IPC_MESSAGE_HANDLER(AutomationMsg_WindowExecuteCommandAsync,
289 ExecuteBrowserCommandAsync) 287 ExecuteBrowserCommandAsync)
290 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WindowExecuteCommand, 288 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WindowExecuteCommand,
291 ExecuteBrowserCommand) 289 ExecuteBrowserCommand)
290 IPC_MESSAGE_HANDLER(AutomationMsg_TerminateSession, TerminateSession)
292 IPC_MESSAGE_HANDLER(AutomationMsg_WindowViewBounds, WindowGetViewBounds) 291 IPC_MESSAGE_HANDLER(AutomationMsg_WindowViewBounds, WindowGetViewBounds)
292 IPC_MESSAGE_HANDLER(AutomationMsg_GetWindowBounds, GetWindowBounds)
293 IPC_MESSAGE_HANDLER(AutomationMsg_SetWindowBounds, SetWindowBounds) 293 IPC_MESSAGE_HANDLER(AutomationMsg_SetWindowBounds, SetWindowBounds)
294 IPC_MESSAGE_HANDLER(AutomationMsg_SetWindowVisible, SetWindowVisible) 294 IPC_MESSAGE_HANDLER(AutomationMsg_SetWindowVisible, SetWindowVisible)
295 #if !defined(OS_MACOSX) 295 #if !defined(OS_MACOSX)
296 IPC_MESSAGE_HANDLER(AutomationMsg_WindowClick, WindowSimulateClick) 296 IPC_MESSAGE_HANDLER(AutomationMsg_WindowClick, WindowSimulateClick)
297 IPC_MESSAGE_HANDLER(AutomationMsg_WindowKeyPress, WindowSimulateKeyPress) 297 IPC_MESSAGE_HANDLER(AutomationMsg_WindowKeyPress, WindowSimulateKeyPress)
298 #endif // !defined(OS_MACOSX) 298 #endif // !defined(OS_MACOSX)
299 #if defined(OS_WIN) 299 #if defined(OS_WIN) || defined(OS_LINUX)
300 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WindowDrag, 300 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WindowDrag,
301 WindowSimulateDrag) 301 WindowSimulateDrag)
302 #endif // defined(OS_WIN) 302 #endif // defined(OS_WIN) || defined(OS_LINUX)
303 IPC_MESSAGE_HANDLER(AutomationMsg_TabCount, GetTabCount) 303 IPC_MESSAGE_HANDLER(AutomationMsg_TabCount, GetTabCount)
304 IPC_MESSAGE_HANDLER(AutomationMsg_Tab, GetTab) 304 IPC_MESSAGE_HANDLER(AutomationMsg_Tab, GetTab)
305 #if defined(OS_WIN) 305 #if defined(OS_WIN)
306 IPC_MESSAGE_HANDLER(AutomationMsg_TabHWND, GetTabHWND) 306 IPC_MESSAGE_HANDLER(AutomationMsg_TabHWND, GetTabHWND)
307 #endif // defined(OS_WIN) 307 #endif // defined(OS_WIN)
308 IPC_MESSAGE_HANDLER(AutomationMsg_TabProcessID, GetTabProcessID) 308 IPC_MESSAGE_HANDLER(AutomationMsg_TabProcessID, GetTabProcessID)
309 IPC_MESSAGE_HANDLER(AutomationMsg_TabTitle, GetTabTitle) 309 IPC_MESSAGE_HANDLER(AutomationMsg_TabTitle, GetTabTitle)
310 IPC_MESSAGE_HANDLER(AutomationMsg_TabIndex, GetTabIndex) 310 IPC_MESSAGE_HANDLER(AutomationMsg_TabIndex, GetTabIndex)
311 IPC_MESSAGE_HANDLER(AutomationMsg_TabURL, GetTabURL) 311 IPC_MESSAGE_HANDLER(AutomationMsg_TabURL, GetTabURL)
312 IPC_MESSAGE_HANDLER(AutomationMsg_ShelfVisibility, GetShelfVisibility) 312 IPC_MESSAGE_HANDLER(AutomationMsg_ShelfVisibility, GetShelfVisibility)
(...skipping 27 matching lines...) Expand all
340 IPC_MESSAGE_HANDLER(AutomationMsg_HideInterstitialPage, 340 IPC_MESSAGE_HANDLER(AutomationMsg_HideInterstitialPage,
341 HideInterstitialPage) 341 HideInterstitialPage)
342 #if defined(OS_WIN) 342 #if defined(OS_WIN)
343 IPC_MESSAGE_HANDLER(AutomationMsg_ProcessUnhandledAccelerator, 343 IPC_MESSAGE_HANDLER(AutomationMsg_ProcessUnhandledAccelerator,
344 ProcessUnhandledAccelerator) 344 ProcessUnhandledAccelerator)
345 #endif 345 #endif
346 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WaitForTabToBeRestored, 346 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WaitForTabToBeRestored,
347 WaitForTabToBeRestored) 347 WaitForTabToBeRestored)
348 IPC_MESSAGE_HANDLER(AutomationMsg_SetInitialFocus, SetInitialFocus) 348 IPC_MESSAGE_HANDLER(AutomationMsg_SetInitialFocus, SetInitialFocus)
349 #if defined(OS_WIN) 349 #if defined(OS_WIN)
350 IPC_MESSAGE_HANDLER(AutomationMsg_TabReposition, OnTabReposition)
351 IPC_MESSAGE_HANDLER(AutomationMsg_ForwardContextMenuCommandToChrome, 350 IPC_MESSAGE_HANDLER(AutomationMsg_ForwardContextMenuCommandToChrome,
352 OnForwardContextMenuCommandToChrome) 351 OnForwardContextMenuCommandToChrome)
353 #endif 352 #endif
354 IPC_MESSAGE_HANDLER(AutomationMsg_GetSecurityState, GetSecurityState) 353 IPC_MESSAGE_HANDLER(AutomationMsg_GetSecurityState, GetSecurityState)
355 IPC_MESSAGE_HANDLER(AutomationMsg_GetPageType, GetPageType) 354 IPC_MESSAGE_HANDLER(AutomationMsg_GetPageType, GetPageType)
356 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_ActionOnSSLBlockingPage, 355 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_ActionOnSSLBlockingPage,
357 ActionOnSSLBlockingPage) 356 ActionOnSSLBlockingPage)
358 IPC_MESSAGE_HANDLER(AutomationMsg_BringBrowserToFront, BringBrowserToFront) 357 IPC_MESSAGE_HANDLER(AutomationMsg_BringBrowserToFront, BringBrowserToFront)
359 IPC_MESSAGE_HANDLER(AutomationMsg_IsPageMenuCommandEnabled, 358 IPC_MESSAGE_HANDLER(AutomationMsg_IsPageMenuCommandEnabled,
360 IsPageMenuCommandEnabled) 359 IsPageMenuCommandEnabled)
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
808 virtual void Run() { 807 virtual void Run() {
809 MessageLoop::current()->PostTask(FROM_HERE, task_); 808 MessageLoop::current()->PostTask(FROM_HERE, task_);
810 } 809 }
811 810
812 private: 811 private:
813 Task* task_; 812 Task* task_;
814 813
815 DISALLOW_COPY_AND_ASSIGN(InvokeTaskLaterTask); 814 DISALLOW_COPY_AND_ASSIGN(InvokeTaskLaterTask);
816 }; 815 };
817 816
818 #if defined(OS_WIN)
819 // TODO(port): Replace POINT and other windowsisms.
820
821 // This task sends a WindowDragResponse message with the appropriate
822 // routing ID to the automation proxy. This is implemented as a task so that
823 // we know that the mouse events (and any tasks that they spawn on the message
824 // loop) have been processed by the time this is sent.
825 class WindowDragResponseTask : public Task {
826 public:
827 WindowDragResponseTask(AutomationProvider* provider,
828 IPC::Message* reply_message)
829 : provider_(provider), reply_message_(reply_message) {}
830 virtual ~WindowDragResponseTask() {}
831
832 virtual void Run() {
833 DCHECK(reply_message_ != NULL);
834 AutomationMsg_WindowDrag::WriteReplyParams(reply_message_, true);
835 provider_->Send(reply_message_);
836 }
837
838 private:
839 AutomationProvider* provider_;
840 IPC::Message* reply_message_;
841
842 DISALLOW_COPY_AND_ASSIGN(WindowDragResponseTask);
843 };
844 #endif // defined(OS_WIN)
845
846 #if defined(OS_WIN) || defined(OS_LINUX) 817 #if defined(OS_WIN) || defined(OS_LINUX)
847 void AutomationProvider::WindowSimulateClick(const IPC::Message& message, 818 void AutomationProvider::WindowSimulateClick(const IPC::Message& message,
848 int handle, 819 int handle,
849 const gfx::Point& click, 820 const gfx::Point& click,
850 int flags) { 821 int flags) {
851 if (window_tracker_->ContainsHandle(handle)) { 822 if (window_tracker_->ContainsHandle(handle)) {
852 ui_controls::SendMouseMoveNotifyWhenDone(click.x(), click.y(), 823 ui_controls::SendMouseMoveNotifyWhenDone(click.x(), click.y(),
853 new ClickTask(flags)); 824 new ClickTask(flags));
854 } 825 }
855 } 826 }
(...skipping 1228 matching lines...) Expand 10 before | Expand all | Expand 10 after
2084 for (;iter != BrowserList::end(); ++iter) { 2055 for (;iter != BrowserList::end(); ++iter) {
2085 gfx::NativeWindow this_window = (*iter)->window()->GetNativeHandle(); 2056 gfx::NativeWindow this_window = (*iter)->window()->GetNativeHandle();
2086 if (window == this_window) { 2057 if (window == this_window) {
2087 // Add() returns the existing handle for the resource if any. 2058 // Add() returns the existing handle for the resource if any.
2088 *browser_handle = browser_tracker_->Add(*iter); 2059 *browser_handle = browser_tracker_->Add(*iter);
2089 *success = true; 2060 *success = true;
2090 return; 2061 return;
2091 } 2062 }
2092 } 2063 }
2093 } 2064 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698