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