| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/testing_automation_provider.h" | 5 #include "chrome/browser/automation/testing_automation_provider.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 } | 207 } |
| 208 | 208 |
| 209 void TestingAutomationProvider::OnBrowserRemoved(const Browser* browser) { | 209 void TestingAutomationProvider::OnBrowserRemoved(const Browser* browser) { |
| 210 // For backwards compatibility with the testing automation interface, we | 210 // For backwards compatibility with the testing automation interface, we |
| 211 // want the automation provider (and hence the process) to go away when the | 211 // want the automation provider (and hence the process) to go away when the |
| 212 // last browser goes away. | 212 // last browser goes away. |
| 213 if (BrowserList::empty() && !CommandLine::ForCurrentProcess()->HasSwitch( | 213 if (BrowserList::empty() && !CommandLine::ForCurrentProcess()->HasSwitch( |
| 214 switches::kKeepAliveForTest)) { | 214 switches::kKeepAliveForTest)) { |
| 215 // If you change this, update Observer for chrome::SESSION_END | 215 // If you change this, update Observer for chrome::SESSION_END |
| 216 // below. | 216 // below. |
| 217 MessageLoop::current()->PostTask(FROM_HERE, | 217 MessageLoop::current()->PostTask( |
| 218 NewRunnableMethod(this, &TestingAutomationProvider::OnRemoveProvider)); | 218 FROM_HERE, |
| 219 base::Bind(&TestingAutomationProvider::OnRemoveProvider, this)); |
| 219 } | 220 } |
| 220 } | 221 } |
| 221 | 222 |
| 222 void TestingAutomationProvider::OnSourceProfilesLoaded() { | 223 void TestingAutomationProvider::OnSourceProfilesLoaded() { |
| 223 DCHECK_NE(static_cast<ImporterList*>(NULL), importer_list_.get()); | 224 DCHECK_NE(static_cast<ImporterList*>(NULL), importer_list_.get()); |
| 224 | 225 |
| 225 // Get the correct profile based on the browser that the user provided. | 226 // Get the correct profile based on the browser that the user provided. |
| 226 importer::SourceProfile source_profile; | 227 importer::SourceProfile source_profile; |
| 227 size_t i = 0; | 228 size_t i = 0; |
| 228 size_t importers_count = importer_list_->count(); | 229 size_t importers_count = importer_list_->count(); |
| (...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 865 } | 866 } |
| 866 } | 867 } |
| 867 | 868 |
| 868 void TestingAutomationProvider::WindowSimulateClick(const IPC::Message& message, | 869 void TestingAutomationProvider::WindowSimulateClick(const IPC::Message& message, |
| 869 int handle, | 870 int handle, |
| 870 const gfx::Point& click, | 871 const gfx::Point& click, |
| 871 int flags) { | 872 int flags) { |
| 872 if (window_tracker_->ContainsHandle(handle)) { | 873 if (window_tracker_->ContainsHandle(handle)) { |
| 873 // TODO(phajdan.jr): This is flaky. We should wait for the final click. | 874 // TODO(phajdan.jr): This is flaky. We should wait for the final click. |
| 874 ui_controls::SendMouseMoveNotifyWhenDone( | 875 ui_controls::SendMouseMoveNotifyWhenDone( |
| 875 click.x(), click.y(), NewRunnableFunction(&SendMouseClick, flags)); | 876 click.x(), click.y(), base::Bind(&SendMouseClick, flags)); |
| 876 } | 877 } |
| 877 } | 878 } |
| 878 | 879 |
| 879 void TestingAutomationProvider::WindowSimulateMouseMove( | 880 void TestingAutomationProvider::WindowSimulateMouseMove( |
| 880 const IPC::Message& message, | 881 const IPC::Message& message, |
| 881 int handle, | 882 int handle, |
| 882 const gfx::Point& location) { | 883 const gfx::Point& location) { |
| 883 if (window_tracker_->ContainsHandle(handle)) | 884 if (window_tracker_->ContainsHandle(handle)) |
| 884 ui_controls::SendMouseMove(location.x(), location.y()); | 885 ui_controls::SendMouseMove(location.x(), location.y()); |
| 885 } | 886 } |
| (...skipping 4630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5516 return; | 5517 return; |
| 5517 } | 5518 } |
| 5518 | 5519 |
| 5519 bool control = !!(modifiers & automation::kControlKeyMask); | 5520 bool control = !!(modifiers & automation::kControlKeyMask); |
| 5520 bool shift = !!(modifiers & automation::kShiftKeyMask); | 5521 bool shift = !!(modifiers & automation::kShiftKeyMask); |
| 5521 bool alt = !!(modifiers & automation::kAltKeyMask); | 5522 bool alt = !!(modifiers & automation::kAltKeyMask); |
| 5522 bool meta = !!(modifiers & automation::kMetaKeyMask); | 5523 bool meta = !!(modifiers & automation::kMetaKeyMask); |
| 5523 if (!ui_controls::SendKeyPressNotifyWhenDone( | 5524 if (!ui_controls::SendKeyPressNotifyWhenDone( |
| 5524 window, static_cast<ui::KeyboardCode>(keycode), | 5525 window, static_cast<ui::KeyboardCode>(keycode), |
| 5525 control, shift, alt, meta, | 5526 control, shift, alt, meta, |
| 5526 NewRunnableMethod(this, | 5527 base::Bind(&TestingAutomationProvider::SendSuccessReply, this, |
| 5527 &TestingAutomationProvider::SendSuccessReply, reply_message))) { | 5528 reply_message))) { |
| 5528 AutomationJSONReply(this, reply_message) | 5529 AutomationJSONReply(this, reply_message) |
| 5529 .SendError("Could not send the native key event"); | 5530 .SendError("Could not send the native key event"); |
| 5530 } | 5531 } |
| 5531 } | 5532 } |
| 5532 | 5533 |
| 5533 void TestingAutomationProvider::SendSuccessReply(IPC::Message* reply_message) { | 5534 void TestingAutomationProvider::SendSuccessReply(IPC::Message* reply_message) { |
| 5534 AutomationJSONReply(this, reply_message).SendSuccess(NULL); | 5535 AutomationJSONReply(this, reply_message).SendSuccess(NULL); |
| 5535 } | 5536 } |
| 5536 | 5537 |
| 5537 namespace { | 5538 namespace { |
| (...skipping 969 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6507 | 6508 |
| 6508 Send(reply_message_); | 6509 Send(reply_message_); |
| 6509 redirect_query_ = 0; | 6510 redirect_query_ = 0; |
| 6510 reply_message_ = NULL; | 6511 reply_message_ = NULL; |
| 6511 } | 6512 } |
| 6512 | 6513 |
| 6513 void TestingAutomationProvider::OnRemoveProvider() { | 6514 void TestingAutomationProvider::OnRemoveProvider() { |
| 6514 if (g_browser_process) | 6515 if (g_browser_process) |
| 6515 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); | 6516 g_browser_process->GetAutomationProviderList()->RemoveProvider(this); |
| 6516 } | 6517 } |
| OLD | NEW |