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

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

Issue 164371: Checkpoint for event automation porting.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 4 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) 2006-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-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 "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/message_box_flags.h" 8 #include "app/message_box_flags.h"
9 #include "base/file_version_info.h" 9 #include "base/file_version_info.h"
10 #include "base/json_reader.h" 10 #include "base/json_reader.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 #include "chrome/common/automation_constants.h" 43 #include "chrome/common/automation_constants.h"
44 #include "chrome/common/chrome_paths.h" 44 #include "chrome/common/chrome_paths.h"
45 #include "chrome/common/json_value_serializer.h" 45 #include "chrome/common/json_value_serializer.h"
46 #include "chrome/common/notification_service.h" 46 #include "chrome/common/notification_service.h"
47 #include "chrome/common/platform_util.h" 47 #include "chrome/common/platform_util.h"
48 #include "chrome/common/pref_service.h" 48 #include "chrome/common/pref_service.h"
49 #include "chrome/test/automation/automation_messages.h" 49 #include "chrome/test/automation/automation_messages.h"
50 #include "net/proxy/proxy_service.h" 50 #include "net/proxy/proxy_service.h"
51 #include "net/proxy/proxy_config_service_fixed.h" 51 #include "net/proxy/proxy_config_service_fixed.h"
52 #include "net/url_request/url_request_context.h" 52 #include "net/url_request/url_request_context.h"
53 #include "views/event.h"
53 54
54 #if defined(OS_WIN) 55 #if defined(OS_WIN)
55 // TODO(port): Port these headers. 56 // TODO(port): Port these headers.
56 #include "chrome/browser/automation/ui_controls.h"
57 #include "chrome/browser/character_encoding.h" 57 #include "chrome/browser/character_encoding.h"
58 #include "chrome/browser/download/save_package.h" 58 #include "chrome/browser/download/save_package.h"
59 #include "chrome/browser/external_tab_container.h" 59 #include "chrome/browser/external_tab_container.h"
60 #include "chrome/browser/printing/print_job.h" 60 #include "chrome/browser/printing/print_job.h"
61 #endif // defined(OS_WIN) 61 #endif // defined(OS_WIN)
62 62
63 #if defined(OS_WIN) || defined(OS_LINUX) 63 #if defined(OS_WIN) || defined(OS_LINUX)
64 // TODO(port): Port these to the mac. 64 // TODO(port): Port these to the mac.
65 #include "chrome/browser/automation/ui_controls.h"
65 #include "chrome/browser/login_prompt.h" 66 #include "chrome/browser/login_prompt.h"
66 #endif 67 #endif
67 68
68 #if defined(OS_WIN) 69 #if defined(OS_WIN)
69 #include "chrome/browser/views/bookmark_bar_view.h" 70 #include "chrome/browser/views/bookmark_bar_view.h"
70 #include "views/widget/root_view.h" 71 #include "views/widget/root_view.h"
71 #include "views/widget/widget_win.h" 72 #include "views/widget/widget_win.h"
72 #include "views/window/window.h" 73 #include "views/window/window.h"
73 #endif 74 #endif
74 75
(...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after
967 #endif // defined(OS_WIN) 968 #endif // defined(OS_WIN)
968 IPC_MESSAGE_HANDLER(AutomationMsg_WindowExecuteCommandAsync, 969 IPC_MESSAGE_HANDLER(AutomationMsg_WindowExecuteCommandAsync,
969 ExecuteBrowserCommandAsync) 970 ExecuteBrowserCommandAsync)
970 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WindowExecuteCommand, 971 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WindowExecuteCommand,
971 ExecuteBrowserCommand) 972 ExecuteBrowserCommand)
972 IPC_MESSAGE_HANDLER(AutomationMsg_WindowViewBounds, WindowGetViewBounds) 973 IPC_MESSAGE_HANDLER(AutomationMsg_WindowViewBounds, WindowGetViewBounds)
973 IPC_MESSAGE_HANDLER(AutomationMsg_SetWindowBounds, SetWindowBounds) 974 IPC_MESSAGE_HANDLER(AutomationMsg_SetWindowBounds, SetWindowBounds)
974 IPC_MESSAGE_HANDLER(AutomationMsg_SetWindowVisible, SetWindowVisible) 975 IPC_MESSAGE_HANDLER(AutomationMsg_SetWindowVisible, SetWindowVisible)
975 #if defined(OS_WIN) 976 #if defined(OS_WIN)
976 IPC_MESSAGE_HANDLER(AutomationMsg_WindowClick, WindowSimulateClick) 977 IPC_MESSAGE_HANDLER(AutomationMsg_WindowClick, WindowSimulateClick)
978 #endif // defined(OS_WIN)
979 #if defined(OS_WIN) || defined(OS_LINUX)
977 IPC_MESSAGE_HANDLER(AutomationMsg_WindowKeyPress, WindowSimulateKeyPress) 980 IPC_MESSAGE_HANDLER(AutomationMsg_WindowKeyPress, WindowSimulateKeyPress)
981 #endif
982 #if defined(OS_WIN)
978 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WindowDrag, 983 IPC_MESSAGE_HANDLER_DELAY_REPLY(AutomationMsg_WindowDrag,
979 WindowSimulateDrag) 984 WindowSimulateDrag)
980 #endif // defined(OS_WIN) 985 #endif // defined(OS_WIN)
981 IPC_MESSAGE_HANDLER(AutomationMsg_TabCount, GetTabCount) 986 IPC_MESSAGE_HANDLER(AutomationMsg_TabCount, GetTabCount)
982 IPC_MESSAGE_HANDLER(AutomationMsg_Tab, GetTab) 987 IPC_MESSAGE_HANDLER(AutomationMsg_Tab, GetTab)
983 #if defined(OS_WIN) 988 #if defined(OS_WIN)
984 IPC_MESSAGE_HANDLER(AutomationMsg_TabHWND, GetTabHWND) 989 IPC_MESSAGE_HANDLER(AutomationMsg_TabHWND, GetTabHWND)
985 #endif // defined(OS_WIN) 990 #endif // defined(OS_WIN)
986 IPC_MESSAGE_HANDLER(AutomationMsg_TabProcessID, GetTabProcessID) 991 IPC_MESSAGE_HANDLER(AutomationMsg_TabProcessID, GetTabProcessID)
987 IPC_MESSAGE_HANDLER(AutomationMsg_TabTitle, GetTabTitle) 992 IPC_MESSAGE_HANDLER(AutomationMsg_TabTitle, GetTabTitle)
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after
1433 } 1438 }
1434 1439
1435 *handle = window_tracker_->Add(window); 1440 *handle = window_tracker_->Add(window);
1436 } 1441 }
1437 1442
1438 void AutomationProvider::GetWindowHWND(int handle, HWND* win32_handle) { 1443 void AutomationProvider::GetWindowHWND(int handle, HWND* win32_handle) {
1439 *win32_handle = window_tracker_->GetResource(handle); 1444 *win32_handle = window_tracker_->GetResource(handle);
1440 } 1445 }
1441 #endif // defined(OS_WIN) 1446 #endif // defined(OS_WIN)
1442 1447
1448 #if defined(OS_LINUX)
1449 // TODO(estade): use this implementation for all platforms?
1450 void AutomationProvider::GetActiveWindow(int* handle) {
1451 gfx::NativeWindow window =
1452 BrowserList::GetLastActive()->window()->GetNativeHandle();
1453 *handle = window_tracker_->Add(window);
1454 }
1455 #endif
1456
1443 void AutomationProvider::ExecuteBrowserCommandAsync(int handle, int command, 1457 void AutomationProvider::ExecuteBrowserCommandAsync(int handle, int command,
1444 bool* success) { 1458 bool* success) {
1445 *success = false; 1459 *success = false;
1446 if (browser_tracker_->ContainsHandle(handle)) { 1460 if (browser_tracker_->ContainsHandle(handle)) {
1447 Browser* browser = browser_tracker_->GetResource(handle); 1461 Browser* browser = browser_tracker_->GetResource(handle);
1448 if (browser->command_updater()->SupportsCommand(command) && 1462 if (browser->command_updater()->SupportsCommand(command) &&
1449 browser->command_updater()->IsCommandEnabled(command)) { 1463 browser->command_updater()->IsCommandEnabled(command)) {
1450 browser->ExecuteCommand(command); 1464 browser->ExecuteCommand(command);
1451 *success = true; 1465 *success = true;
1452 } 1466 }
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
1700 SendMessage(top_level_hwnd, up_message, wparam_flags, 1714 SendMessage(top_level_hwnd, up_message, wparam_flags,
1701 MAKELPARAM(end.x, end.y)); 1715 MAKELPARAM(end.x, end.y));
1702 1716
1703 MessageLoop::current()->PostTask(FROM_HERE, new InvokeTaskLaterTask( 1717 MessageLoop::current()->PostTask(FROM_HERE, new InvokeTaskLaterTask(
1704 new WindowDragResponseTask(this, reply_message))); 1718 new WindowDragResponseTask(this, reply_message)));
1705 } else { 1719 } else {
1706 AutomationMsg_WindowDrag::WriteReplyParams(reply_message, true); 1720 AutomationMsg_WindowDrag::WriteReplyParams(reply_message, true);
1707 Send(reply_message); 1721 Send(reply_message);
1708 } 1722 }
1709 } 1723 }
1724 #endif // defined(OS_WIN)
1710 1725
1726 #if defined(OS_WIN) || defined(OS_LINUX)
1711 void AutomationProvider::WindowSimulateKeyPress(const IPC::Message& message, 1727 void AutomationProvider::WindowSimulateKeyPress(const IPC::Message& message,
1712 int handle, 1728 int handle,
1713 wchar_t key, 1729 wchar_t key,
1714 int flags) { 1730 int flags) {
1715 if (!window_tracker_->ContainsHandle(handle)) 1731 if (!window_tracker_->ContainsHandle(handle))
1716 return; 1732 return;
1717 1733
1718 // The key event is sent to whatever window is active. 1734 // The key event is sent to whatever window is active.
1719 ui_controls::SendKeyPress(key, 1735 ui_controls::SendKeyPress(key,
1720 ((flags & views::Event::EF_CONTROL_DOWN) == 1736 ((flags & views::Event::EF_CONTROL_DOWN) ==
1721 views::Event::EF_CONTROL_DOWN), 1737 views::Event::EF_CONTROL_DOWN),
1722 ((flags & views::Event::EF_SHIFT_DOWN) == 1738 ((flags & views::Event::EF_SHIFT_DOWN) ==
1723 views::Event::EF_SHIFT_DOWN), 1739 views::Event::EF_SHIFT_DOWN),
1724 ((flags & views::Event::EF_ALT_DOWN) == 1740 ((flags & views::Event::EF_ALT_DOWN) ==
1725 views::Event::EF_ALT_DOWN)); 1741 views::Event::EF_ALT_DOWN));
1726 } 1742 }
1743 #endif
1727 1744
1745 #if defined(OS_WIN)
1728 void AutomationProvider::GetFocusedViewID(int handle, int* view_id) { 1746 void AutomationProvider::GetFocusedViewID(int handle, int* view_id) {
1729 *view_id = -1; 1747 *view_id = -1;
1730 if (window_tracker_->ContainsHandle(handle)) { 1748 if (window_tracker_->ContainsHandle(handle)) {
1731 HWND hwnd = window_tracker_->GetResource(handle); 1749 HWND hwnd = window_tracker_->GetResource(handle);
1732 views::FocusManager* focus_manager = 1750 views::FocusManager* focus_manager =
1733 views::FocusManager::GetFocusManagerForNativeView(hwnd); 1751 views::FocusManager::GetFocusManagerForNativeView(hwnd);
1734 DCHECK(focus_manager); 1752 DCHECK(focus_manager);
1735 views::View* focused_view = focus_manager->GetFocusedView(); 1753 views::View* focused_view = focus_manager->GetFocusedView();
1736 if (focused_view) 1754 if (focused_view)
1737 *view_id = focused_view->GetID(); 1755 *view_id = focused_view->GetID();
(...skipping 1340 matching lines...) Expand 10 before | Expand all | Expand 10 after
3078 NOTREACHED(); 3096 NOTREACHED();
3079 return NULL; 3097 return NULL;
3080 } 3098 }
3081 3099
3082 RenderViewHost* view_host = tab_contents->render_view_host(); 3100 RenderViewHost* view_host = tab_contents->render_view_host();
3083 return view_host; 3101 return view_host;
3084 } 3102 }
3085 3103
3086 return NULL; 3104 return NULL;
3087 } 3105 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/automation/ui_controls.h » ('j') | chrome/browser/automation/ui_controls.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698