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