OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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_CHROMEDRIVER_WINDOW_COMMANDS_H_ | 5 #ifndef CHROME_TEST_CHROMEDRIVER_WINDOW_COMMANDS_H_ |
6 #define CHROME_TEST_CHROMEDRIVER_WINDOW_COMMANDS_H_ | 6 #define CHROME_TEST_CHROMEDRIVER_WINDOW_COMMANDS_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/callback_forward.h" | 10 #include "base/callback_forward.h" |
11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
12 | 12 |
13 namespace base { | 13 namespace base { |
14 class DictionaryValue; | 14 class DictionaryValue; |
15 class Value; | 15 class Value; |
16 } | 16 } |
17 | 17 |
18 struct Session; | 18 struct Session; |
19 class Status; | 19 class Status; |
| 20 class Timeout; |
20 class WebView; | 21 class WebView; |
21 | 22 |
22 typedef base::Callback<Status( | 23 typedef base::Callback<Status( |
23 Session* session, | 24 Session* session, |
24 WebView* web_view, | 25 WebView* web_view, |
25 const base::DictionaryValue&, | 26 const base::DictionaryValue&, |
26 scoped_ptr<base::Value>*)> WindowCommand; | 27 scoped_ptr<base::Value>*, |
| 28 Timeout*)> WindowCommand; |
27 | 29 |
28 // Execute a Window Command on the target window. | 30 // Execute a Window Command on the target window. |
29 Status ExecuteWindowCommand( | 31 Status ExecuteWindowCommand( |
30 const WindowCommand& command, | 32 const WindowCommand& command, |
31 Session* session, | 33 Session* session, |
32 const base::DictionaryValue& params, | 34 const base::DictionaryValue& params, |
33 scoped_ptr<base::Value>* value); | 35 scoped_ptr<base::Value>* value); |
34 | 36 |
35 // Loads a URL. | 37 // Loads a URL. |
36 Status ExecuteGet( | 38 Status ExecuteGet( |
37 Session* session, | 39 Session* session, |
38 WebView* web_view, | 40 WebView* web_view, |
39 const base::DictionaryValue& params, | 41 const base::DictionaryValue& params, |
40 scoped_ptr<base::Value>* value); | 42 scoped_ptr<base::Value>* value, |
| 43 Timeout* timeout); |
41 | 44 |
42 // Evaluates a given synchronous script with arguments. | 45 // Evaluates a given synchronous script with arguments. |
43 Status ExecuteExecuteScript( | 46 Status ExecuteExecuteScript( |
44 Session* session, | 47 Session* session, |
45 WebView* web_view, | 48 WebView* web_view, |
46 const base::DictionaryValue& params, | 49 const base::DictionaryValue& params, |
47 scoped_ptr<base::Value>* value); | 50 scoped_ptr<base::Value>* value, |
| 51 Timeout* timeout); |
48 | 52 |
49 // Evaluates a given asynchronous script with arguments. | 53 // Evaluates a given asynchronous script with arguments. |
50 Status ExecuteExecuteAsyncScript( | 54 Status ExecuteExecuteAsyncScript( |
51 Session* session, | 55 Session* session, |
52 WebView* web_view, | 56 WebView* web_view, |
53 const base::DictionaryValue& params, | 57 const base::DictionaryValue& params, |
54 scoped_ptr<base::Value>* value); | 58 scoped_ptr<base::Value>* value, |
| 59 Timeout* timeout); |
55 | 60 |
56 // Changes the targeted frame for the given session. | 61 // Changes the targeted frame for the given session. |
57 Status ExecuteSwitchToFrame( | 62 Status ExecuteSwitchToFrame( |
58 Session* session, | 63 Session* session, |
59 WebView* web_view, | 64 WebView* web_view, |
60 const base::DictionaryValue& params, | 65 const base::DictionaryValue& params, |
61 scoped_ptr<base::Value>* value); | 66 scoped_ptr<base::Value>* value, |
| 67 Timeout* timeout); |
62 | 68 |
63 // Change focus to the parent frame. | 69 // Change focus to the parent frame. |
64 Status ExecuteSwitchToParentFrame( | 70 Status ExecuteSwitchToParentFrame( |
65 Session* session, | 71 Session* session, |
66 WebView* web_view, | 72 WebView* web_view, |
67 const base::DictionaryValue& params, | 73 const base::DictionaryValue& params, |
68 scoped_ptr<base::Value>* value); | 74 scoped_ptr<base::Value>* value, |
| 75 Timeout* timeout); |
69 | 76 |
70 // Get the current page title. | 77 // Get the current page title. |
71 Status ExecuteGetTitle( | 78 Status ExecuteGetTitle( |
72 Session* session, | 79 Session* session, |
73 WebView* web_view, | 80 WebView* web_view, |
74 const base::DictionaryValue& params, | 81 const base::DictionaryValue& params, |
75 scoped_ptr<base::Value>* value); | 82 scoped_ptr<base::Value>* value, |
| 83 Timeout* timeout); |
76 | 84 |
77 // Get the current page source. | 85 // Get the current page source. |
78 Status ExecuteGetPageSource( | 86 Status ExecuteGetPageSource( |
79 Session* session, | 87 Session* session, |
80 WebView* web_view, | 88 WebView* web_view, |
81 const base::DictionaryValue& params, | 89 const base::DictionaryValue& params, |
82 scoped_ptr<base::Value>* value); | 90 scoped_ptr<base::Value>* value, |
| 91 Timeout* timeout); |
83 | 92 |
84 // Search for an element on the page, starting from the document root. | 93 // Search for an element on the page, starting from the document root. |
85 Status ExecuteFindElement( | 94 Status ExecuteFindElement( |
86 int interval_ms, | 95 int interval_ms, |
87 Session* session, | 96 Session* session, |
88 WebView* web_view, | 97 WebView* web_view, |
89 const base::DictionaryValue& params, | 98 const base::DictionaryValue& params, |
90 scoped_ptr<base::Value>* value); | 99 scoped_ptr<base::Value>* value, |
| 100 Timeout* timeout); |
91 | 101 |
92 // Search for multiple elements on the page, starting from the document root. | 102 // Search for multiple elements on the page, starting from the document root. |
93 Status ExecuteFindElements( | 103 Status ExecuteFindElements( |
94 int interval_ms, | 104 int interval_ms, |
95 Session* session, | 105 Session* session, |
96 WebView* web_view, | 106 WebView* web_view, |
97 const base::DictionaryValue& params, | 107 const base::DictionaryValue& params, |
98 scoped_ptr<base::Value>* value); | 108 scoped_ptr<base::Value>* value, |
| 109 Timeout* timeout); |
99 | 110 |
100 // Get the current page url. | 111 // Get the current page url. |
101 Status ExecuteGetCurrentUrl( | 112 Status ExecuteGetCurrentUrl( |
102 Session* session, | 113 Session* session, |
103 WebView* web_view, | 114 WebView* web_view, |
104 const base::DictionaryValue& params, | 115 const base::DictionaryValue& params, |
105 scoped_ptr<base::Value>* value); | 116 scoped_ptr<base::Value>* value, |
| 117 Timeout* timeout); |
106 | 118 |
107 // Navigate backward in the browser history. | 119 // Navigate backward in the browser history. |
108 Status ExecuteGoBack( | 120 Status ExecuteGoBack( |
109 Session* session, | 121 Session* session, |
110 WebView* web_view, | 122 WebView* web_view, |
111 const base::DictionaryValue& params, | 123 const base::DictionaryValue& params, |
112 scoped_ptr<base::Value>* value); | 124 scoped_ptr<base::Value>* value, |
| 125 Timeout* timeout); |
113 | 126 |
114 // Navigate forward in the browser history. | 127 // Navigate forward in the browser history. |
115 Status ExecuteGoForward( | 128 Status ExecuteGoForward( |
116 Session* session, | 129 Session* session, |
117 WebView* web_view, | 130 WebView* web_view, |
118 const base::DictionaryValue& params, | 131 const base::DictionaryValue& params, |
119 scoped_ptr<base::Value>* value); | 132 scoped_ptr<base::Value>* value, |
| 133 Timeout* timeout); |
120 | 134 |
121 // Refresh the current page. | 135 // Refresh the current page. |
122 Status ExecuteRefresh( | 136 Status ExecuteRefresh( |
123 Session* session, | 137 Session* session, |
124 WebView* web_view, | 138 WebView* web_view, |
125 const base::DictionaryValue& params, | 139 const base::DictionaryValue& params, |
126 scoped_ptr<base::Value>* value); | 140 scoped_ptr<base::Value>* value, |
| 141 Timeout* timeout); |
127 | 142 |
128 // Move the mouse by an offset of the element if specified . | 143 // Move the mouse by an offset of the element if specified . |
129 Status ExecuteMouseMoveTo( | 144 Status ExecuteMouseMoveTo( |
130 Session* session, | 145 Session* session, |
131 WebView* web_view, | 146 WebView* web_view, |
132 const base::DictionaryValue& params, | 147 const base::DictionaryValue& params, |
133 scoped_ptr<base::Value>* value); | 148 scoped_ptr<base::Value>* value, |
| 149 Timeout* timeout); |
134 | 150 |
135 // Click a mouse button at the coordinates set by the last moveto. | 151 // Click a mouse button at the coordinates set by the last moveto. |
136 Status ExecuteMouseClick( | 152 Status ExecuteMouseClick( |
137 Session* session, | 153 Session* session, |
138 WebView* web_view, | 154 WebView* web_view, |
139 const base::DictionaryValue& params, | 155 const base::DictionaryValue& params, |
140 scoped_ptr<base::Value>* value); | 156 scoped_ptr<base::Value>* value, |
| 157 Timeout* timeout); |
141 | 158 |
142 // Click and hold a mouse button at the coordinates set by the last moveto. | 159 // Click and hold a mouse button at the coordinates set by the last moveto. |
143 Status ExecuteMouseButtonDown( | 160 Status ExecuteMouseButtonDown( |
144 Session* session, | 161 Session* session, |
145 WebView* web_view, | 162 WebView* web_view, |
146 const base::DictionaryValue& params, | 163 const base::DictionaryValue& params, |
147 scoped_ptr<base::Value>* value); | 164 scoped_ptr<base::Value>* value, |
| 165 Timeout* timeout); |
148 | 166 |
149 // Releases the mouse button previously held (where the mouse is currently at). | 167 // Releases the mouse button previously held (where the mouse is currently at). |
150 Status ExecuteMouseButtonUp( | 168 Status ExecuteMouseButtonUp( |
151 Session* session, | 169 Session* session, |
152 WebView* web_view, | 170 WebView* web_view, |
153 const base::DictionaryValue& params, | 171 const base::DictionaryValue& params, |
154 scoped_ptr<base::Value>* value); | 172 scoped_ptr<base::Value>* value, |
| 173 Timeout* timeout); |
155 | 174 |
156 // Double-clicks at the current mouse coordinates (set by last moveto). | 175 // Double-clicks at the current mouse coordinates (set by last moveto). |
157 Status ExecuteMouseDoubleClick( | 176 Status ExecuteMouseDoubleClick( |
158 Session* session, | 177 Session* session, |
159 WebView* web_view, | 178 WebView* web_view, |
160 const base::DictionaryValue& params, | 179 const base::DictionaryValue& params, |
161 scoped_ptr<base::Value>* value); | 180 scoped_ptr<base::Value>* value, |
| 181 Timeout* timeout); |
162 | 182 |
163 // Touch press at a given coordinate. | 183 // Touch press at a given coordinate. |
164 Status ExecuteTouchDown( | 184 Status ExecuteTouchDown( |
165 Session* session, | 185 Session* session, |
166 WebView* web_view, | 186 WebView* web_view, |
167 const base::DictionaryValue& params, | 187 const base::DictionaryValue& params, |
168 scoped_ptr<base::Value>* value); | 188 scoped_ptr<base::Value>* value, |
| 189 Timeout* timeout); |
169 | 190 |
170 // Touch release at a given coordinate. | 191 // Touch release at a given coordinate. |
171 Status ExecuteTouchUp( | 192 Status ExecuteTouchUp( |
172 Session* session, | 193 Session* session, |
173 WebView* web_view, | 194 WebView* web_view, |
174 const base::DictionaryValue& params, | 195 const base::DictionaryValue& params, |
175 scoped_ptr<base::Value>* value); | 196 scoped_ptr<base::Value>* value, |
| 197 Timeout* timeout); |
176 | 198 |
177 // Touch move at a given coordinate. | 199 // Touch move at a given coordinate. |
178 Status ExecuteTouchMove( | 200 Status ExecuteTouchMove( |
179 Session* session, | 201 Session* session, |
180 WebView* web_view, | 202 WebView* web_view, |
181 const base::DictionaryValue& params, | 203 const base::DictionaryValue& params, |
182 scoped_ptr<base::Value>* value); | 204 scoped_ptr<base::Value>* value, |
| 205 Timeout* timeout); |
183 | 206 |
184 // Do a swipe (scroll) gesture beginning at the element. | 207 // Do a swipe (scroll) gesture beginning at the element. |
185 Status ExecuteTouchScroll( | 208 Status ExecuteTouchScroll( |
186 Session *session, | 209 Session *session, |
187 WebView* web_view, | 210 WebView* web_view, |
188 const base::DictionaryValue& params, | 211 const base::DictionaryValue& params, |
189 scoped_ptr<base::Value>* value); | 212 scoped_ptr<base::Value>* value, |
| 213 Timeout* timeout); |
190 | 214 |
191 Status ExecuteTouchPinch( | 215 Status ExecuteTouchPinch( |
192 Session* session, | 216 Session* session, |
193 WebView* web_view, | 217 WebView* web_view, |
194 const base::DictionaryValue& params, | 218 const base::DictionaryValue& params, |
195 scoped_ptr<base::Value>* value); | 219 scoped_ptr<base::Value>* value, |
| 220 Timeout* timeout); |
196 | 221 |
197 Status ExecuteGetActiveElement( | 222 Status ExecuteGetActiveElement( |
198 Session* session, | 223 Session* session, |
199 WebView* web_view, | 224 WebView* web_view, |
200 const base::DictionaryValue& params, | 225 const base::DictionaryValue& params, |
201 scoped_ptr<base::Value>* value); | 226 scoped_ptr<base::Value>* value, |
| 227 Timeout* timeout); |
202 | 228 |
203 // Send a sequence of key strokes to the active element. | 229 // Send a sequence of key strokes to the active element. |
204 Status ExecuteSendKeysToActiveElement( | 230 Status ExecuteSendKeysToActiveElement( |
205 Session* session, | 231 Session* session, |
206 WebView* web_view, | 232 WebView* web_view, |
207 const base::DictionaryValue& params, | 233 const base::DictionaryValue& params, |
208 scoped_ptr<base::Value>* value); | 234 scoped_ptr<base::Value>* value, |
| 235 Timeout* timeout); |
209 | 236 |
210 // Gets the status of the application cache (window.applicationCache.status). | 237 // Gets the status of the application cache (window.applicationCache.status). |
211 Status ExecuteGetAppCacheStatus( | 238 Status ExecuteGetAppCacheStatus( |
212 Session* session, | 239 Session* session, |
213 WebView* web_view, | 240 WebView* web_view, |
214 const base::DictionaryValue& params, | 241 const base::DictionaryValue& params, |
215 scoped_ptr<base::Value>* value); | 242 scoped_ptr<base::Value>* value, |
| 243 Timeout* timeout); |
216 | 244 |
217 Status ExecuteIsBrowserOnline( | 245 Status ExecuteIsBrowserOnline( |
218 Session* session, | 246 Session* session, |
219 WebView* web_view, | 247 WebView* web_view, |
220 const base::DictionaryValue& params, | 248 const base::DictionaryValue& params, |
221 scoped_ptr<base::Value>* value); | 249 scoped_ptr<base::Value>* value, |
| 250 Timeout* timeout); |
222 | 251 |
223 Status ExecuteGetStorageItem( | 252 Status ExecuteGetStorageItem( |
224 const char* storage, | 253 const char* storage, |
225 Session* session, | 254 Session* session, |
226 WebView* web_view, | 255 WebView* web_view, |
227 const base::DictionaryValue& params, | 256 const base::DictionaryValue& params, |
228 scoped_ptr<base::Value>* value); | 257 scoped_ptr<base::Value>* value, |
| 258 Timeout* timeout); |
229 | 259 |
230 Status ExecuteGetStorageKeys( | 260 Status ExecuteGetStorageKeys( |
231 const char* storage, | 261 const char* storage, |
232 Session* session, | 262 Session* session, |
233 WebView* web_view, | 263 WebView* web_view, |
234 const base::DictionaryValue& params, | 264 const base::DictionaryValue& params, |
235 scoped_ptr<base::Value>* value); | 265 scoped_ptr<base::Value>* value, |
| 266 Timeout* timeout); |
236 | 267 |
237 Status ExecuteSetStorageItem( | 268 Status ExecuteSetStorageItem( |
238 const char* storage, | 269 const char* storage, |
239 Session* session, | 270 Session* session, |
240 WebView* web_view, | 271 WebView* web_view, |
241 const base::DictionaryValue& params, | 272 const base::DictionaryValue& params, |
242 scoped_ptr<base::Value>* value); | 273 scoped_ptr<base::Value>* value, |
| 274 Timeout* timeout); |
243 | 275 |
244 Status ExecuteRemoveStorageItem( | 276 Status ExecuteRemoveStorageItem( |
245 const char* storage, | 277 const char* storage, |
246 Session* session, | 278 Session* session, |
247 WebView* web_view, | 279 WebView* web_view, |
248 const base::DictionaryValue& params, | 280 const base::DictionaryValue& params, |
249 scoped_ptr<base::Value>* value); | 281 scoped_ptr<base::Value>* value, |
| 282 Timeout* timeout); |
250 | 283 |
251 Status ExecuteClearStorage( | 284 Status ExecuteClearStorage( |
252 const char* storage, | 285 const char* storage, |
253 Session* session, | 286 Session* session, |
254 WebView* web_view, | 287 WebView* web_view, |
255 const base::DictionaryValue& params, | 288 const base::DictionaryValue& params, |
256 scoped_ptr<base::Value>* value); | 289 scoped_ptr<base::Value>* value, |
| 290 Timeout* timeout); |
257 | 291 |
258 Status ExecuteGetStorageSize( | 292 Status ExecuteGetStorageSize( |
259 const char* storage, | 293 const char* storage, |
260 Session* session, | 294 Session* session, |
261 WebView* web_view, | 295 WebView* web_view, |
262 const base::DictionaryValue& params, | 296 const base::DictionaryValue& params, |
263 scoped_ptr<base::Value>* value); | 297 scoped_ptr<base::Value>* value, |
| 298 Timeout* timeout); |
264 | 299 |
265 Status ExecuteScreenshot( | 300 Status ExecuteScreenshot( |
266 Session* session, | 301 Session* session, |
267 WebView* web_view, | 302 WebView* web_view, |
268 const base::DictionaryValue& params, | 303 const base::DictionaryValue& params, |
269 scoped_ptr<base::Value>* value); | 304 scoped_ptr<base::Value>* value, |
| 305 Timeout* timeout); |
270 | 306 |
271 // Retrieve all cookies visible to the current page. | 307 // Retrieve all cookies visible to the current page. |
272 Status ExecuteGetCookies( | 308 Status ExecuteGetCookies( |
273 Session* session, | 309 Session* session, |
274 WebView* web_view, | 310 WebView* web_view, |
275 const base::DictionaryValue& params, | 311 const base::DictionaryValue& params, |
276 scoped_ptr<base::Value>* value); | 312 scoped_ptr<base::Value>* value, |
| 313 Timeout* timeout); |
277 | 314 |
278 // Set a cookie. If the cookie path is not specified, it should be set to "/". | 315 // Set a cookie. If the cookie path is not specified, it should be set to "/". |
279 // If the domain is omitted, it should default to the current page's domain. | 316 // If the domain is omitted, it should default to the current page's domain. |
280 Status ExecuteAddCookie( | 317 Status ExecuteAddCookie( |
281 Session* session, | 318 Session* session, |
282 WebView* web_view, | 319 WebView* web_view, |
283 const base::DictionaryValue& params, | 320 const base::DictionaryValue& params, |
284 scoped_ptr<base::Value>* value); | 321 scoped_ptr<base::Value>* value, |
| 322 Timeout* timeout); |
285 | 323 |
286 // Delete the cookie with the given name if it exists in the current page. | 324 // Delete the cookie with the given name if it exists in the current page. |
287 Status ExecuteDeleteCookie( | 325 Status ExecuteDeleteCookie( |
288 Session* session, | 326 Session* session, |
289 WebView* web_view, | 327 WebView* web_view, |
290 const base::DictionaryValue& params, | 328 const base::DictionaryValue& params, |
291 scoped_ptr<base::Value>* value); | 329 scoped_ptr<base::Value>* value, |
| 330 Timeout* timeout); |
292 | 331 |
293 // Delete all cookies visible to the current page. | 332 // Delete all cookies visible to the current page. |
294 Status ExecuteDeleteAllCookies( | 333 Status ExecuteDeleteAllCookies( |
295 Session* session, | 334 Session* session, |
296 WebView* web_view, | 335 WebView* web_view, |
297 const base::DictionaryValue& params, | 336 const base::DictionaryValue& params, |
298 scoped_ptr<base::Value>* value); | 337 scoped_ptr<base::Value>* value, |
| 338 Timeout* timeout); |
299 | 339 |
300 Status ExecuteSetLocation( | 340 Status ExecuteSetLocation( |
301 Session* session, | 341 Session* session, |
302 WebView* web_view, | 342 WebView* web_view, |
303 const base::DictionaryValue& params, | 343 const base::DictionaryValue& params, |
304 scoped_ptr<base::Value>* value); | 344 scoped_ptr<base::Value>* value, |
| 345 Timeout* timeout); |
305 | 346 |
306 Status ExecuteSetNetworkConditions( | 347 Status ExecuteSetNetworkConditions( |
307 Session* session, | 348 Session* session, |
308 WebView* web_view, | 349 WebView* web_view, |
309 const base::DictionaryValue& params, | 350 const base::DictionaryValue& params, |
310 scoped_ptr<base::Value>* value); | 351 scoped_ptr<base::Value>* value, |
| 352 Timeout* timeout); |
311 | 353 |
312 Status ExecuteDeleteNetworkConditions( | 354 Status ExecuteDeleteNetworkConditions( |
313 Session* session, | 355 Session* session, |
314 WebView* web_view, | 356 WebView* web_view, |
315 const base::DictionaryValue& params, | 357 const base::DictionaryValue& params, |
316 scoped_ptr<base::Value>* value); | 358 scoped_ptr<base::Value>* value, |
| 359 Timeout* timeout); |
317 | 360 |
318 Status ExecuteTakeHeapSnapshot( | 361 Status ExecuteTakeHeapSnapshot( |
319 Session* session, | 362 Session* session, |
320 WebView* web_view, | 363 WebView* web_view, |
321 const base::DictionaryValue& params, | 364 const base::DictionaryValue& params, |
322 scoped_ptr<base::Value>* value); | 365 scoped_ptr<base::Value>* value, |
| 366 Timeout* timeout); |
323 | 367 |
324 #endif // CHROME_TEST_CHROMEDRIVER_WINDOW_COMMANDS_H_ | 368 #endif // CHROME_TEST_CHROMEDRIVER_WINDOW_COMMANDS_H_ |
OLD | NEW |