| 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 |