| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 #ifndef CHROME_TEST_AUTOMATION_AUTOMATION_PROXY_H__ | 5 #ifndef CHROME_TEST_AUTOMATION_AUTOMATION_PROXY_H__ |
| 6 #define CHROME_TEST_AUTOMATION_AUTOMATION_PROXY_H__ | 6 #define CHROME_TEST_AUTOMATION_AUTOMATION_PROXY_H__ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 }; | 54 }; |
| 55 | 55 |
| 56 // This is the interface that external processes can use to interact with | 56 // This is the interface that external processes can use to interact with |
| 57 // a running instance of the app. | 57 // a running instance of the app. |
| 58 class AutomationProxy : public IPC::Channel::Listener, | 58 class AutomationProxy : public IPC::Channel::Listener, |
| 59 public AutomationMessageSender { | 59 public AutomationMessageSender { |
| 60 public: | 60 public: |
| 61 AutomationProxy(int command_execution_timeout_ms, bool disconnect_on_failure); | 61 AutomationProxy(int command_execution_timeout_ms, bool disconnect_on_failure); |
| 62 virtual ~AutomationProxy(); | 62 virtual ~AutomationProxy(); |
| 63 | 63 |
| 64 // Creates a previously unused channel id. | |
| 65 static std::string GenerateChannelID(); | |
| 66 | |
| 67 // Initializes a channel for a connection to an AutomationProvider. | |
| 68 // If use_named_interface is false, it will act as a client | |
| 69 // and connect to the named IPC socket with channel_id as its path. | |
| 70 // If use_named_interface is true, it will act as a server and | |
| 71 // use an anonymous socketpair instead. | |
| 72 void InitializeChannel(const std::string& channel_id, | |
| 73 bool use_named_interface); | |
| 74 | |
| 75 // IPC callback | 64 // IPC callback |
| 76 virtual void OnMessageReceived(const IPC::Message& msg); | 65 virtual void OnMessageReceived(const IPC::Message& msg); |
| 77 virtual void OnChannelError(); | 66 virtual void OnChannelError(); |
| 78 | 67 |
| 79 // Close the automation IPC channel. | 68 // Close the automation IPC channel. |
| 80 void Disconnect(); | 69 void Disconnect(); |
| 81 | 70 |
| 82 // Waits for the app to launch and the automation provider to say hello | 71 // Waits for the app to launch and the automation provider to say hello |
| 83 // (the app isn't fully done loading by this point). | 72 // (the app isn't fully done loading by this point). |
| 84 // Returns SUCCESS if the launch is successful. | 73 // Returns SUCCESS if the launch is successful. |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 // Resets to the default theme. Returns true on success. | 201 // Resets to the default theme. Returns true on success. |
| 213 bool ResetToDefaultTheme(); | 202 bool ResetToDefaultTheme(); |
| 214 | 203 |
| 215 #if defined(OS_CHROMEOS) | 204 #if defined(OS_CHROMEOS) |
| 216 // Logs in through the Chrome OS login wizard with given |username| | 205 // Logs in through the Chrome OS login wizard with given |username| |
| 217 // and |password|. Returns true on success. | 206 // and |password|. Returns true on success. |
| 218 bool LoginWithUserAndPass(const std::string& username, | 207 bool LoginWithUserAndPass(const std::string& username, |
| 219 const std::string& password) WARN_UNUSED_RESULT; | 208 const std::string& password) WARN_UNUSED_RESULT; |
| 220 #endif | 209 #endif |
| 221 | 210 |
| 211 // Returns the ID of the automation IPC channel, so that it can be |
| 212 // passed to the app as a launch parameter. |
| 213 const std::string& channel_id() const { return channel_id_; } |
| 214 |
| 222 #if defined(OS_POSIX) | 215 #if defined(OS_POSIX) |
| 223 base::file_handle_mapping_vector fds_to_map() const; | 216 base::file_handle_mapping_vector fds_to_map() const; |
| 224 #endif | 217 #endif |
| 225 | 218 |
| 226 // AutomationMessageSender implementation. | 219 // AutomationMessageSender implementation. |
| 227 virtual bool Send(IPC::Message* message) WARN_UNUSED_RESULT; | 220 virtual bool Send(IPC::Message* message) WARN_UNUSED_RESULT; |
| 228 | 221 |
| 229 // Wrapper over AutomationHandleTracker::InvalidateHandle. Receives the | 222 // Wrapper over AutomationHandleTracker::InvalidateHandle. Receives the |
| 230 // message from AutomationProxy, unpacks the messages and routes that call to | 223 // message from AutomationProxy, unpacks the messages and routes that call to |
| 231 // the tracker. | 224 // the tracker. |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 void set_perform_version_check(bool perform_version_check) { | 256 void set_perform_version_check(bool perform_version_check) { |
| 264 perform_version_check_ = perform_version_check; | 257 perform_version_check_ = perform_version_check; |
| 265 } | 258 } |
| 266 | 259 |
| 267 // These functions set and reset the IPC::Channel pointer on the tracker. | 260 // These functions set and reset the IPC::Channel pointer on the tracker. |
| 268 void SetChannel(IPC::Channel* channel); | 261 void SetChannel(IPC::Channel* channel); |
| 269 void ResetChannel(); | 262 void ResetChannel(); |
| 270 | 263 |
| 271 protected: | 264 protected: |
| 272 template <class T> scoped_refptr<T> ProxyObjectFromHandle(int handle); | 265 template <class T> scoped_refptr<T> ProxyObjectFromHandle(int handle); |
| 266 void InitializeChannelID(); |
| 273 void InitializeThread(); | 267 void InitializeThread(); |
| 268 void InitializeChannel(); |
| 274 void InitializeHandleTracker(); | 269 void InitializeHandleTracker(); |
| 275 | 270 |
| 271 std::string channel_id_; |
| 276 scoped_ptr<base::Thread> thread_; | 272 scoped_ptr<base::Thread> thread_; |
| 277 scoped_ptr<IPC::SyncChannel> channel_; | 273 scoped_ptr<IPC::SyncChannel> channel_; |
| 278 scoped_ptr<AutomationHandleTracker> tracker_; | 274 scoped_ptr<AutomationHandleTracker> tracker_; |
| 279 | 275 |
| 280 base::WaitableEvent app_launched_; | 276 base::WaitableEvent app_launched_; |
| 281 base::WaitableEvent initial_loads_complete_; | 277 base::WaitableEvent initial_loads_complete_; |
| 282 base::WaitableEvent new_tab_ui_load_complete_; | 278 base::WaitableEvent new_tab_ui_load_complete_; |
| 283 int new_tab_ui_load_time_; | 279 int new_tab_ui_load_time_; |
| 284 | 280 |
| 285 // An event that notifies when we are shutting-down. | 281 // An event that notifies when we are shutting-down. |
| (...skipping 17 matching lines...) Expand all Loading... |
| 303 | 299 |
| 304 // Delay to let the browser execute the command. | 300 // Delay to let the browser execute the command. |
| 305 base::TimeDelta command_execution_timeout_; | 301 base::TimeDelta command_execution_timeout_; |
| 306 | 302 |
| 307 PlatformThreadId listener_thread_id_; | 303 PlatformThreadId listener_thread_id_; |
| 308 | 304 |
| 309 DISALLOW_COPY_AND_ASSIGN(AutomationProxy); | 305 DISALLOW_COPY_AND_ASSIGN(AutomationProxy); |
| 310 }; | 306 }; |
| 311 | 307 |
| 312 #endif // CHROME_TEST_AUTOMATION_AUTOMATION_PROXY_H__ | 308 #endif // CHROME_TEST_AUTOMATION_AUTOMATION_PROXY_H__ |
| OLD | NEW |