Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: chrome/test/chromedriver/server/http_handler.cc

Issue 23467010: [chromedriver] Logging tweaks and fixes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/test/chromedriver/server/http_handler.h ('k') | chrome/test/chromedriver/session.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "chrome/test/chromedriver/server/http_handler.h" 5 #include "chrome/test/chromedriver/server/http_handler.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
11 #include "base/logging.h" // For CHECK macros. 11 #include "base/logging.h" // For CHECK macros.
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/message_loop/message_loop.h" 13 #include "base/message_loop/message_loop.h"
14 #include "base/message_loop/message_loop_proxy.h" 14 #include "base/message_loop/message_loop_proxy.h"
15 #include "base/strings/string_split.h" 15 #include "base/strings/string_split.h"
16 #include "base/strings/string_util.h" 16 #include "base/strings/string_util.h"
17 #include "base/strings/stringprintf.h" 17 #include "base/strings/stringprintf.h"
18 #include "base/sys_info.h" 18 #include "base/sys_info.h"
19 #include "base/values.h" 19 #include "base/values.h"
20 #include "chrome/test/chromedriver/alert_commands.h" 20 #include "chrome/test/chromedriver/alert_commands.h"
21 #include "chrome/test/chromedriver/chrome/adb_impl.h" 21 #include "chrome/test/chromedriver/chrome/adb_impl.h"
22 #include "chrome/test/chromedriver/chrome/device_manager.h" 22 #include "chrome/test/chromedriver/chrome/device_manager.h"
23 #include "chrome/test/chromedriver/chrome/log.h"
24 #include "chrome/test/chromedriver/chrome/status.h" 23 #include "chrome/test/chromedriver/chrome/status.h"
25 #include "chrome/test/chromedriver/chrome/version.h" 24 #include "chrome/test/chromedriver/chrome/version.h"
26 #include "chrome/test/chromedriver/net/url_request_context_getter.h" 25 #include "chrome/test/chromedriver/net/url_request_context_getter.h"
27 #include "chrome/test/chromedriver/session.h" 26 #include "chrome/test/chromedriver/session.h"
28 #include "chrome/test/chromedriver/session_thread_map.h" 27 #include "chrome/test/chromedriver/session_thread_map.h"
29 #include "chrome/test/chromedriver/util.h" 28 #include "chrome/test/chromedriver/util.h"
30 #include "net/server/http_server_request_info.h" 29 #include "net/server/http_server_request_info.h"
31 #include "net/server/http_server_response_info.h" 30 #include "net/server/http_server_response_info.h"
32 31
33 #if defined(OS_MACOSX) 32 #if defined(OS_MACOSX)
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 weak_ptr_factory_(this) { 72 weak_ptr_factory_(this) {
74 #if defined(OS_MACOSX) 73 #if defined(OS_MACOSX)
75 base::mac::ScopedNSAutoreleasePool autorelease_pool; 74 base::mac::ScopedNSAutoreleasePool autorelease_pool;
76 #endif 75 #endif
77 context_getter_ = new URLRequestContextGetter(io_task_runner); 76 context_getter_ = new URLRequestContextGetter(io_task_runner);
78 socket_factory_ = CreateSyncWebSocketFactory(context_getter_.get()); 77 socket_factory_ = CreateSyncWebSocketFactory(context_getter_.get());
79 adb_.reset(new AdbImpl(io_task_runner, adb_port)); 78 adb_.reset(new AdbImpl(io_task_runner, adb_port));
80 device_manager_.reset(new DeviceManager(adb_.get())); 79 device_manager_.reset(new DeviceManager(adb_.get()));
81 80
82 CommandMapping commands[] = { 81 CommandMapping commands[] = {
83 CommandMapping(kPost, 82 CommandMapping(
84 internal::kNewSessionPathPattern, 83 kPost,
85 base::Bind(&ExecuteNewSession, 84 internal::kNewSessionPathPattern,
86 NewSessionParams(&session_thread_map_, 85 base::Bind(&ExecuteCreateSession,
87 context_getter_, 86 &session_thread_map_,
88 socket_factory_, 87 WrapToCommand("InitSession",
89 device_manager_.get()))), 88 base::Bind(&ExecuteInitSession,
89 InitSessionParams(
90 context_getter_,
91 socket_factory_,
92 device_manager_.get()))))),
90 CommandMapping(kGet, 93 CommandMapping(kGet,
91 "session/:sessionId", 94 "session/:sessionId",
92 WrapToCommand(base::Bind(&ExecuteGetSessionCapabilities))), 95 WrapToCommand("GetSessionCapabilities",
96 base::Bind(&ExecuteGetSessionCapabilities))),
93 CommandMapping(kDelete, 97 CommandMapping(kDelete,
94 "session/:sessionId", 98 "session/:sessionId",
95 base::Bind(&ExecuteSessionCommand, 99 base::Bind(&ExecuteSessionCommand,
96 &session_thread_map_, 100 &session_thread_map_,
101 "Quit",
97 base::Bind(&ExecuteQuit, false), 102 base::Bind(&ExecuteQuit, false),
98 true)), 103 true)),
99 CommandMapping(kGet, 104 CommandMapping(kGet,
100 "session/:sessionId/window_handle", 105 "session/:sessionId/window_handle",
101 WrapToCommand(base::Bind(&ExecuteGetCurrentWindowHandle))), 106 WrapToCommand("GetWindow",
102 CommandMapping(kGet, 107 base::Bind(&ExecuteGetCurrentWindowHandle))),
103 "session/:sessionId/window_handles", 108 CommandMapping(
104 WrapToCommand(base::Bind(&ExecuteGetWindowHandles))), 109 kGet,
110 "session/:sessionId/window_handles",
111 WrapToCommand("GetWindows", base::Bind(&ExecuteGetWindowHandles))),
105 CommandMapping(kPost, 112 CommandMapping(kPost,
106 "session/:sessionId/url", 113 "session/:sessionId/url",
107 WrapToCommand(base::Bind(&ExecuteGet))), 114 WrapToCommand("Navigate", base::Bind(&ExecuteGet))),
108 CommandMapping(kGet, 115 CommandMapping(kGet,
109 "session/:sessionId/alert", 116 "session/:sessionId/alert",
110 WrapToCommand(base::Bind(&ExecuteAlertCommand, 117 WrapToCommand("IsAlertOpen",
118 base::Bind(&ExecuteAlertCommand,
111 base::Bind(&ExecuteGetAlert)))), 119 base::Bind(&ExecuteGetAlert)))),
112 CommandMapping( 120 CommandMapping(
113 kPost, 121 kPost,
114 "session/:sessionId/dismiss_alert", 122 "session/:sessionId/dismiss_alert",
115 WrapToCommand(base::Bind(&ExecuteAlertCommand, 123 WrapToCommand("DismissAlert",
124 base::Bind(&ExecuteAlertCommand,
116 base::Bind(&ExecuteDismissAlert)))), 125 base::Bind(&ExecuteDismissAlert)))),
117 CommandMapping( 126 CommandMapping(
118 kPost, 127 kPost,
119 "session/:sessionId/accept_alert", 128 "session/:sessionId/accept_alert",
120 WrapToCommand(base::Bind(&ExecuteAlertCommand, 129 WrapToCommand("AcceptAlert",
130 base::Bind(&ExecuteAlertCommand,
121 base::Bind(&ExecuteAcceptAlert)))), 131 base::Bind(&ExecuteAcceptAlert)))),
122 CommandMapping( 132 CommandMapping(
123 kGet, 133 kGet,
124 "session/:sessionId/alert_text", 134 "session/:sessionId/alert_text",
125 WrapToCommand(base::Bind(&ExecuteAlertCommand, 135 WrapToCommand("GetAlertMessage",
136 base::Bind(&ExecuteAlertCommand,
126 base::Bind(&ExecuteGetAlertText)))), 137 base::Bind(&ExecuteGetAlertText)))),
127 CommandMapping( 138 CommandMapping(
128 kPost, 139 kPost,
129 "session/:sessionId/alert_text", 140 "session/:sessionId/alert_text",
130 WrapToCommand(base::Bind(&ExecuteAlertCommand, 141 WrapToCommand("SetAlertPrompt",
142 base::Bind(&ExecuteAlertCommand,
131 base::Bind(&ExecuteSetAlertValue)))), 143 base::Bind(&ExecuteSetAlertValue)))),
132 CommandMapping(kPost, 144 CommandMapping(kPost,
133 "session/:sessionId/forward", 145 "session/:sessionId/forward",
134 WrapToCommand(base::Bind(&ExecuteGoForward))), 146 WrapToCommand("GoForward", base::Bind(&ExecuteGoForward))),
135 CommandMapping(kPost, 147 CommandMapping(kPost,
136 "session/:sessionId/back", 148 "session/:sessionId/back",
137 WrapToCommand(base::Bind(&ExecuteGoBack))), 149 WrapToCommand("GoBack", base::Bind(&ExecuteGoBack))),
138 CommandMapping(kPost, 150 CommandMapping(kPost,
139 "session/:sessionId/refresh", 151 "session/:sessionId/refresh",
140 WrapToCommand(base::Bind(&ExecuteRefresh))), 152 WrapToCommand("Refresh", base::Bind(&ExecuteRefresh))),
141 CommandMapping(kPost, 153 CommandMapping(
142 "session/:sessionId/execute", 154 kPost,
143 WrapToCommand(base::Bind(&ExecuteExecuteScript))), 155 "session/:sessionId/execute",
156 WrapToCommand("ExecuteScript", base::Bind(&ExecuteExecuteScript))),
144 CommandMapping(kPost, 157 CommandMapping(kPost,
145 "session/:sessionId/execute_async", 158 "session/:sessionId/execute_async",
146 WrapToCommand(base::Bind(&ExecuteExecuteAsyncScript))), 159 WrapToCommand("ExecuteAsyncScript",
147 CommandMapping(kGet, 160 base::Bind(&ExecuteExecuteAsyncScript))),
148 "session/:sessionId/url", 161 CommandMapping(
149 WrapToCommand(base::Bind(&ExecuteGetCurrentUrl))), 162 kGet,
163 "session/:sessionId/url",
164 WrapToCommand("GetUrl", base::Bind(&ExecuteGetCurrentUrl))),
150 CommandMapping(kGet, 165 CommandMapping(kGet,
151 "session/:sessionId/title", 166 "session/:sessionId/title",
152 WrapToCommand(base::Bind(&ExecuteGetTitle))), 167 WrapToCommand("GetTitle", base::Bind(&ExecuteGetTitle))),
153 CommandMapping(kGet, 168 CommandMapping(
154 "session/:sessionId/source", 169 kGet,
155 WrapToCommand(base::Bind(&ExecuteGetPageSource))), 170 "session/:sessionId/source",
156 CommandMapping(kGet, 171 WrapToCommand("GetSource", base::Bind(&ExecuteGetPageSource))),
157 "session/:sessionId/screenshot", 172 CommandMapping(
158 WrapToCommand(base::Bind(&ExecuteScreenshot))), 173 kGet,
174 "session/:sessionId/screenshot",
175 WrapToCommand("Screenshot", base::Bind(&ExecuteScreenshot))),
159 CommandMapping(kPost, 176 CommandMapping(kPost,
160 "session/:sessionId/visible", 177 "session/:sessionId/visible",
161 base::Bind(&UnimplementedCommand)), 178 base::Bind(&UnimplementedCommand)),
162 CommandMapping(kGet, 179 CommandMapping(kGet,
163 "session/:sessionId/visible", 180 "session/:sessionId/visible",
164 base::Bind(&UnimplementedCommand)), 181 base::Bind(&UnimplementedCommand)),
165 CommandMapping(kPost, 182 CommandMapping(
166 "session/:sessionId/element", 183 kPost,
167 WrapToCommand(base::Bind(&ExecuteFindElement, 50))), 184 "session/:sessionId/element",
168 CommandMapping(kPost, 185 WrapToCommand("FindElement", base::Bind(&ExecuteFindElement, 50))),
169 "session/:sessionId/elements", 186 CommandMapping(
170 WrapToCommand(base::Bind(&ExecuteFindElements, 50))), 187 kPost,
188 "session/:sessionId/elements",
189 WrapToCommand("FindElements", base::Bind(&ExecuteFindElements, 50))),
171 CommandMapping(kPost, 190 CommandMapping(kPost,
172 "session/:sessionId/element/active", 191 "session/:sessionId/element/active",
173 WrapToCommand(base::Bind(&ExecuteGetActiveElement))), 192 WrapToCommand("GetActiveElement",
193 base::Bind(&ExecuteGetActiveElement))),
174 CommandMapping(kPost, 194 CommandMapping(kPost,
175 "session/:sessionId/element/:id/element", 195 "session/:sessionId/element/:id/element",
176 WrapToCommand(base::Bind(&ExecuteFindChildElement, 50))), 196 WrapToCommand("FindChildElement",
197 base::Bind(&ExecuteFindChildElement, 50))),
177 CommandMapping(kPost, 198 CommandMapping(kPost,
178 "session/:sessionId/element/:id/elements", 199 "session/:sessionId/element/:id/elements",
179 WrapToCommand(base::Bind(&ExecuteFindChildElements, 50))), 200 WrapToCommand("FindChildElements",
180 CommandMapping(kPost, 201 base::Bind(&ExecuteFindChildElements, 50))),
181 "session/:sessionId/element/:id/click", 202 CommandMapping(
182 WrapToCommand(base::Bind(&ExecuteClickElement))), 203 kPost,
183 CommandMapping(kPost, 204 "session/:sessionId/element/:id/click",
184 "session/:sessionId/element/:id/clear", 205 WrapToCommand("ClickElement", base::Bind(&ExecuteClickElement))),
185 WrapToCommand(base::Bind(&ExecuteClearElement))), 206 CommandMapping(
186 CommandMapping(kPost, 207 kPost,
187 "session/:sessionId/element/:id/submit", 208 "session/:sessionId/element/:id/clear",
188 WrapToCommand(base::Bind(&ExecuteSubmitElement))), 209 WrapToCommand("ClearElement", base::Bind(&ExecuteClearElement))),
189 CommandMapping(kGet, 210 CommandMapping(
190 "session/:sessionId/element/:id/text", 211 kPost,
191 WrapToCommand(base::Bind(&ExecuteGetElementText))), 212 "session/:sessionId/element/:id/submit",
192 CommandMapping(kPost, 213 WrapToCommand("SubmitElement", base::Bind(&ExecuteSubmitElement))),
214 CommandMapping(
215 kGet,
216 "session/:sessionId/element/:id/text",
217 WrapToCommand("GetElementText", base::Bind(&ExecuteGetElementText))),
218 CommandMapping(
219 kPost,
220 "session/:sessionId/element/:id/value",
221 WrapToCommand("TypeElement", base::Bind(&ExecuteSendKeysToElement))),
222 CommandMapping(
223 kPost,
224 "session/:sessionId/file",
225 WrapToCommand("UploadFile", base::Bind(&ExecuteUploadFile))),
226 CommandMapping(kGet,
193 "session/:sessionId/element/:id/value", 227 "session/:sessionId/element/:id/value",
194 WrapToCommand(base::Bind(&ExecuteSendKeysToElement))), 228 WrapToCommand("GetElementValue",
195 CommandMapping(kPost, 229 base::Bind(&ExecuteGetElementValue))),
196 "session/:sessionId/file",
197 WrapToCommand(base::Bind(&ExecuteUploadFile))),
198 CommandMapping(kGet,
199 "session/:sessionId/element/:id/value",
200 WrapToCommand(base::Bind(&ExecuteGetElementValue))),
201 CommandMapping(kGet, 230 CommandMapping(kGet,
202 "session/:sessionId/element/:id/name", 231 "session/:sessionId/element/:id/name",
203 WrapToCommand(base::Bind(&ExecuteGetElementTagName))), 232 WrapToCommand("GetElementTagName",
233 base::Bind(&ExecuteGetElementTagName))),
204 CommandMapping(kGet, 234 CommandMapping(kGet,
205 "session/:sessionId/element/:id/selected", 235 "session/:sessionId/element/:id/selected",
206 WrapToCommand(base::Bind(&ExecuteIsElementSelected))), 236 WrapToCommand("IsElementSelected",
237 base::Bind(&ExecuteIsElementSelected))),
207 CommandMapping(kGet, 238 CommandMapping(kGet,
208 "session/:sessionId/element/:id/enabled", 239 "session/:sessionId/element/:id/enabled",
209 WrapToCommand(base::Bind(&ExecuteIsElementEnabled))), 240 WrapToCommand("IsElementEnabled",
241 base::Bind(&ExecuteIsElementEnabled))),
210 CommandMapping(kGet, 242 CommandMapping(kGet,
211 "session/:sessionId/element/:id/displayed", 243 "session/:sessionId/element/:id/displayed",
212 WrapToCommand(base::Bind(&ExecuteIsElementDisplayed))), 244 WrapToCommand("IsElementDisplayed",
213 CommandMapping(kPost, 245 base::Bind(&ExecuteIsElementDisplayed))),
214 "session/:sessionId/element/:id/hover", 246 CommandMapping(
215 WrapToCommand(base::Bind(&ExecuteHoverOverElement))), 247 kPost,
248 "session/:sessionId/element/:id/hover",
249 WrapToCommand("HoverElement", base::Bind(&ExecuteHoverOverElement))),
216 CommandMapping(kGet, 250 CommandMapping(kGet,
217 "session/:sessionId/element/:id/location", 251 "session/:sessionId/element/:id/location",
218 WrapToCommand(base::Bind(&ExecuteGetElementLocation))), 252 WrapToCommand("GetElementLocation",
219 CommandMapping(kGet, 253 base::Bind(&ExecuteGetElementLocation))),
220 "session/:sessionId/element/:id/location_in_view", 254 CommandMapping(
221 WrapToCommand(base::Bind( 255 kGet,
222 &ExecuteGetElementLocationOnceScrolledIntoView))), 256 "session/:sessionId/element/:id/location_in_view",
223 CommandMapping(kGet, 257 WrapToCommand(
224 "session/:sessionId/element/:id/size", 258 "GetElementLocationInView",
225 WrapToCommand(base::Bind(&ExecuteGetElementSize))), 259 base::Bind(&ExecuteGetElementLocationOnceScrolledIntoView))),
260 CommandMapping(
261 kGet,
262 "session/:sessionId/element/:id/size",
263 WrapToCommand("GetElementSize", base::Bind(&ExecuteGetElementSize))),
226 CommandMapping(kGet, 264 CommandMapping(kGet,
227 "session/:sessionId/element/:id/attribute/:name", 265 "session/:sessionId/element/:id/attribute/:name",
228 WrapToCommand(base::Bind(&ExecuteGetElementAttribute))), 266 WrapToCommand("GetElementAttribute",
229 CommandMapping(kGet, 267 base::Bind(&ExecuteGetElementAttribute))),
230 "session/:sessionId/element/:id/equals/:other", 268 CommandMapping(
231 WrapToCommand(base::Bind(&ExecuteElementEquals))), 269 kGet,
232 CommandMapping(kGet, 270 "session/:sessionId/element/:id/equals/:other",
271 WrapToCommand("IsElementEqual", base::Bind(&ExecuteElementEquals))),
272 CommandMapping(
273 kGet,
274 "session/:sessionId/cookie",
275 WrapToCommand("GetCookies", base::Bind(&ExecuteGetCookies))),
276 CommandMapping(kPost,
233 "session/:sessionId/cookie", 277 "session/:sessionId/cookie",
234 WrapToCommand(base::Bind(&ExecuteGetCookies))), 278 WrapToCommand("AddCookie", base::Bind(&ExecuteAddCookie))),
235 CommandMapping(kPost,
236 "session/:sessionId/cookie",
237 WrapToCommand(base::Bind(&ExecuteAddCookie))),
238 CommandMapping(kDelete, 279 CommandMapping(kDelete,
239 "session/:sessionId/cookie", 280 "session/:sessionId/cookie",
240 WrapToCommand(base::Bind(&ExecuteDeleteAllCookies))), 281 WrapToCommand("DeleteAllCookies",
241 CommandMapping(kDelete, 282 base::Bind(&ExecuteDeleteAllCookies))),
242 "session/:sessionId/cookie/:name", 283 CommandMapping(
243 WrapToCommand(base::Bind(&ExecuteDeleteCookie))), 284 kDelete,
244 CommandMapping(kPost, 285 "session/:sessionId/cookie/:name",
245 "session/:sessionId/frame", 286 WrapToCommand("DeleteCookie", base::Bind(&ExecuteDeleteCookie))),
246 WrapToCommand(base::Bind(&ExecuteSwitchToFrame))), 287 CommandMapping(
247 CommandMapping(kPost, 288 kPost,
248 "session/:sessionId/window", 289 "session/:sessionId/frame",
249 WrapToCommand(base::Bind(&ExecuteSwitchToWindow))), 290 WrapToCommand("SwitchToFrame", base::Bind(&ExecuteSwitchToFrame))),
250 CommandMapping(kGet, 291 CommandMapping(
251 "session/:sessionId/window/:windowHandle/size", 292 kPost,
252 WrapToCommand(base::Bind(&ExecuteGetWindowSize))), 293 "session/:sessionId/window",
294 WrapToCommand("SwitchToWindow", base::Bind(&ExecuteSwitchToWindow))),
295 CommandMapping(
296 kGet,
297 "session/:sessionId/window/:windowHandle/size",
298 WrapToCommand("GetWindowSize", base::Bind(&ExecuteGetWindowSize))),
253 CommandMapping(kGet, 299 CommandMapping(kGet,
254 "session/:sessionId/window/:windowHandle/position", 300 "session/:sessionId/window/:windowHandle/position",
255 WrapToCommand(base::Bind(&ExecuteGetWindowPosition))), 301 WrapToCommand("GetWindowPosition",
256 CommandMapping(kPost, 302 base::Bind(&ExecuteGetWindowPosition))),
257 "session/:sessionId/window/:windowHandle/size", 303 CommandMapping(
258 WrapToCommand(base::Bind(&ExecuteSetWindowSize))), 304 kPost,
305 "session/:sessionId/window/:windowHandle/size",
306 WrapToCommand("SetWindowSize", base::Bind(&ExecuteSetWindowSize))),
259 CommandMapping(kPost, 307 CommandMapping(kPost,
260 "session/:sessionId/window/:windowHandle/position", 308 "session/:sessionId/window/:windowHandle/position",
261 WrapToCommand(base::Bind(&ExecuteSetWindowPosition))), 309 WrapToCommand("SetWindowPosition",
262 CommandMapping(kPost, 310 base::Bind(&ExecuteSetWindowPosition))),
263 "session/:sessionId/window/:windowHandle/maximize", 311 CommandMapping(
264 WrapToCommand(base::Bind(&ExecuteMaximizeWindow))), 312 kPost,
313 "session/:sessionId/window/:windowHandle/maximize",
314 WrapToCommand("MaximizeWindow", base::Bind(&ExecuteMaximizeWindow))),
265 CommandMapping(kDelete, 315 CommandMapping(kDelete,
266 "session/:sessionId/window", 316 "session/:sessionId/window",
267 WrapToCommand(base::Bind(&ExecuteClose))), 317 WrapToCommand("CloseWindow", base::Bind(&ExecuteClose))),
268 CommandMapping(kPost, 318 CommandMapping(kPost,
269 "session/:sessionId/element/:id/drag", 319 "session/:sessionId/element/:id/drag",
270 base::Bind(&UnimplementedCommand)), 320 base::Bind(&UnimplementedCommand)),
271 CommandMapping( 321 CommandMapping(
272 kGet, 322 kGet,
273 "session/:sessionId/element/:id/css/:propertyName", 323 "session/:sessionId/element/:id/css/:propertyName",
274 WrapToCommand(base::Bind(&ExecuteGetElementValueOfCSSProperty))), 324 WrapToCommand("GetElementCSSProperty",
275 CommandMapping(kPost, 325 base::Bind(&ExecuteGetElementValueOfCSSProperty))),
276 "session/:sessionId/timeouts/implicit_wait", 326 CommandMapping(
277 WrapToCommand(base::Bind(&ExecuteImplicitlyWait))), 327 kPost,
328 "session/:sessionId/timeouts/implicit_wait",
329 WrapToCommand("SetImplicitWait", base::Bind(&ExecuteImplicitlyWait))),
278 CommandMapping(kPost, 330 CommandMapping(kPost,
279 "session/:sessionId/timeouts/async_script", 331 "session/:sessionId/timeouts/async_script",
280 WrapToCommand(base::Bind(&ExecuteSetScriptTimeout))), 332 WrapToCommand("SetScriptTimeout",
281 CommandMapping(kPost, 333 base::Bind(&ExecuteSetScriptTimeout))),
282 "session/:sessionId/timeouts", 334 CommandMapping(
283 WrapToCommand(base::Bind(&ExecuteSetTimeout))), 335 kPost,
336 "session/:sessionId/timeouts",
337 WrapToCommand("SetTimeout", base::Bind(&ExecuteSetTimeout))),
284 CommandMapping(kPost, 338 CommandMapping(kPost,
285 "session/:sessionId/execute_sql", 339 "session/:sessionId/execute_sql",
286 base::Bind(&UnimplementedCommand)), 340 base::Bind(&UnimplementedCommand)),
287 CommandMapping(kGet, 341 CommandMapping(
288 "session/:sessionId/location", 342 kGet,
289 WrapToCommand(base::Bind(&ExecuteGetLocation))), 343 "session/:sessionId/location",
290 CommandMapping(kPost, 344 WrapToCommand("GetGeolocation", base::Bind(&ExecuteGetLocation))),
291 "session/:sessionId/location", 345 CommandMapping(
292 WrapToCommand(base::Bind(&ExecuteSetLocation))), 346 kPost,
347 "session/:sessionId/location",
348 WrapToCommand("SetGeolocation", base::Bind(&ExecuteSetLocation))),
293 CommandMapping(kGet, 349 CommandMapping(kGet,
294 "session/:sessionId/application_cache/status", 350 "session/:sessionId/application_cache/status",
295 base::Bind(&ExecuteGetStatus)), 351 base::Bind(&ExecuteGetStatus)),
296 CommandMapping(kGet, 352 CommandMapping(kGet,
297 "session/:sessionId/browser_connection", 353 "session/:sessionId/browser_connection",
298 base::Bind(&UnimplementedCommand)), 354 base::Bind(&UnimplementedCommand)),
299 CommandMapping(kPost, 355 CommandMapping(kPost,
300 "session/:sessionId/browser_connection", 356 "session/:sessionId/browser_connection",
301 base::Bind(&UnimplementedCommand)), 357 base::Bind(&UnimplementedCommand)),
302 CommandMapping( 358 CommandMapping(
303 kGet, 359 kGet,
304 "session/:sessionId/local_storage/key/:key", 360 "session/:sessionId/local_storage/key/:key",
305 WrapToCommand(base::Bind(&ExecuteGetStorageItem, kLocalStorage))), 361 WrapToCommand("GetLocalStorageItem",
362 base::Bind(&ExecuteGetStorageItem, kLocalStorage))),
306 CommandMapping( 363 CommandMapping(
307 kDelete, 364 kDelete,
308 "session/:sessionId/local_storage/key/:key", 365 "session/:sessionId/local_storage/key/:key",
309 WrapToCommand(base::Bind(&ExecuteRemoveStorageItem, kLocalStorage))), 366 WrapToCommand("RemoveLocalStorageItem",
367 base::Bind(&ExecuteRemoveStorageItem, kLocalStorage))),
310 CommandMapping( 368 CommandMapping(
311 kGet, 369 kGet,
312 "session/:sessionId/local_storage", 370 "session/:sessionId/local_storage",
313 WrapToCommand(base::Bind(&ExecuteGetStorageKeys, kLocalStorage))), 371 WrapToCommand("GetLocalStorageKeys",
372 base::Bind(&ExecuteGetStorageKeys, kLocalStorage))),
314 CommandMapping( 373 CommandMapping(
315 kPost, 374 kPost,
316 "session/:sessionId/local_storage", 375 "session/:sessionId/local_storage",
317 WrapToCommand(base::Bind(&ExecuteSetStorageItem, kLocalStorage))), 376 WrapToCommand("SetLocalStorageKeys",
377 base::Bind(&ExecuteSetStorageItem, kLocalStorage))),
318 CommandMapping( 378 CommandMapping(
319 kDelete, 379 kDelete,
320 "session/:sessionId/local_storage", 380 "session/:sessionId/local_storage",
321 WrapToCommand(base::Bind(&ExecuteClearStorage, kLocalStorage))), 381 WrapToCommand("ClearLocalStorage",
382 base::Bind(&ExecuteClearStorage, kLocalStorage))),
322 CommandMapping( 383 CommandMapping(
323 kGet, 384 kGet,
324 "session/:sessionId/local_storage/size", 385 "session/:sessionId/local_storage/size",
325 WrapToCommand(base::Bind(&ExecuteGetStorageSize, kLocalStorage))), 386 WrapToCommand("GetLocalStorageSize",
387 base::Bind(&ExecuteGetStorageSize, kLocalStorage))),
326 CommandMapping( 388 CommandMapping(
327 kGet, 389 kGet,
328 "session/:sessionId/session_storage/key/:key", 390 "session/:sessionId/session_storage/key/:key",
329 WrapToCommand(base::Bind(&ExecuteGetStorageItem, kSessionStorage))), 391 WrapToCommand("GetSessionStorageItem",
392 base::Bind(&ExecuteGetStorageItem, kSessionStorage))),
330 CommandMapping(kDelete, 393 CommandMapping(kDelete,
331 "session/:sessionId/session_storage/key/:key", 394 "session/:sessionId/session_storage/key/:key",
332 WrapToCommand(base::Bind(&ExecuteRemoveStorageItem, 395 WrapToCommand("RemoveSessionStorageItem",
396 base::Bind(&ExecuteRemoveStorageItem,
333 kSessionStorage))), 397 kSessionStorage))),
334 CommandMapping( 398 CommandMapping(
335 kGet, 399 kGet,
336 "session/:sessionId/session_storage", 400 "session/:sessionId/session_storage",
337 WrapToCommand(base::Bind(&ExecuteGetStorageKeys, kSessionStorage))), 401 WrapToCommand("GetSessionStorageKeys",
402 base::Bind(&ExecuteGetStorageKeys, kSessionStorage))),
338 CommandMapping( 403 CommandMapping(
339 kPost, 404 kPost,
340 "session/:sessionId/session_storage", 405 "session/:sessionId/session_storage",
341 WrapToCommand(base::Bind(&ExecuteSetStorageItem, kSessionStorage))), 406 WrapToCommand("SetSessionStorageItem",
407 base::Bind(&ExecuteSetStorageItem, kSessionStorage))),
342 CommandMapping( 408 CommandMapping(
343 kDelete, 409 kDelete,
344 "session/:sessionId/session_storage", 410 "session/:sessionId/session_storage",
345 WrapToCommand(base::Bind(&ExecuteClearStorage, kSessionStorage))), 411 WrapToCommand("ClearSessionStorage",
412 base::Bind(&ExecuteClearStorage, kSessionStorage))),
346 CommandMapping( 413 CommandMapping(
347 kGet, 414 kGet,
348 "session/:sessionId/session_storage/size", 415 "session/:sessionId/session_storage/size",
349 WrapToCommand(base::Bind(&ExecuteGetStorageSize, kSessionStorage))), 416 WrapToCommand("GetSessionStorageSize",
417 base::Bind(&ExecuteGetStorageSize, kSessionStorage))),
350 CommandMapping(kGet, 418 CommandMapping(kGet,
351 "session/:sessionId/orientation", 419 "session/:sessionId/orientation",
352 base::Bind(&UnimplementedCommand)), 420 base::Bind(&UnimplementedCommand)),
353 CommandMapping(kPost, 421 CommandMapping(kPost,
354 "session/:sessionId/orientation", 422 "session/:sessionId/orientation",
355 base::Bind(&UnimplementedCommand)), 423 base::Bind(&UnimplementedCommand)),
356 CommandMapping(kPost, 424 CommandMapping(kPost,
357 "session/:sessionId/click", 425 "session/:sessionId/click",
358 WrapToCommand(base::Bind(&ExecuteMouseClick))), 426 WrapToCommand("Click", base::Bind(&ExecuteMouseClick))),
359 CommandMapping(kPost, 427 CommandMapping(
360 "session/:sessionId/doubleclick", 428 kPost,
361 WrapToCommand(base::Bind(&ExecuteMouseDoubleClick))), 429 "session/:sessionId/doubleclick",
362 CommandMapping(kPost, 430 WrapToCommand("DoubleClick", base::Bind(&ExecuteMouseDoubleClick))),
363 "session/:sessionId/buttondown", 431 CommandMapping(
364 WrapToCommand(base::Bind(&ExecuteMouseButtonDown))), 432 kPost,
365 CommandMapping(kPost, 433 "session/:sessionId/buttondown",
366 "session/:sessionId/buttonup", 434 WrapToCommand("MouseDown", base::Bind(&ExecuteMouseButtonDown))),
367 WrapToCommand(base::Bind(&ExecuteMouseButtonUp))), 435 CommandMapping(
368 CommandMapping(kPost, 436 kPost,
369 "session/:sessionId/moveto", 437 "session/:sessionId/buttonup",
370 WrapToCommand(base::Bind(&ExecuteMouseMoveTo))), 438 WrapToCommand("MouseUp", base::Bind(&ExecuteMouseButtonUp))),
439 CommandMapping(
440 kPost,
441 "session/:sessionId/moveto",
442 WrapToCommand("MouseMove", base::Bind(&ExecuteMouseMoveTo))),
371 CommandMapping( 443 CommandMapping(
372 kPost, 444 kPost,
373 "session/:sessionId/keys", 445 "session/:sessionId/keys",
374 WrapToCommand(base::Bind(&ExecuteSendKeysToActiveElement))), 446 WrapToCommand("Type", base::Bind(&ExecuteSendKeysToActiveElement))),
375 CommandMapping(kGet, 447 CommandMapping(kGet,
376 "session/:sessionId/ime/available_engines", 448 "session/:sessionId/ime/available_engines",
377 base::Bind(&UnimplementedCommand)), 449 base::Bind(&UnimplementedCommand)),
378 CommandMapping(kGet, 450 CommandMapping(kGet,
379 "session/:sessionId/ime/active_engine", 451 "session/:sessionId/ime/active_engine",
380 base::Bind(&UnimplementedCommand)), 452 base::Bind(&UnimplementedCommand)),
381 CommandMapping(kGet, 453 CommandMapping(kGet,
382 "session/:sessionId/ime/activated", 454 "session/:sessionId/ime/activated",
383 base::Bind(&UnimplementedCommand)), 455 base::Bind(&UnimplementedCommand)),
384 CommandMapping(kPost, 456 CommandMapping(kPost,
385 "session/:sessionId/ime/deactivate", 457 "session/:sessionId/ime/deactivate",
386 base::Bind(&UnimplementedCommand)), 458 base::Bind(&UnimplementedCommand)),
387 CommandMapping(kPost, 459 CommandMapping(kPost,
388 "session/:sessionId/ime/activate", 460 "session/:sessionId/ime/activate",
389 base::Bind(&UnimplementedCommand)), 461 base::Bind(&UnimplementedCommand)),
390 CommandMapping(kPost, 462 CommandMapping(kPost,
391 "session/:sessionId/touch/click", 463 "session/:sessionId/touch/click",
392 WrapToCommand(base::Bind(&ExecuteTouchSingleTap))), 464 WrapToCommand("Tap", base::Bind(&ExecuteTouchSingleTap))),
393 CommandMapping(kPost, 465 CommandMapping(kPost,
394 "session/:sessionId/touch/down", 466 "session/:sessionId/touch/down",
395 WrapToCommand(base::Bind(&ExecuteTouchDown))), 467 WrapToCommand("TouchDown", base::Bind(&ExecuteTouchDown))),
396 CommandMapping(kPost, 468 CommandMapping(kPost,
397 "session/:sessionId/touch/up", 469 "session/:sessionId/touch/up",
398 WrapToCommand(base::Bind(&ExecuteTouchUp))), 470 WrapToCommand("TouchUp", base::Bind(&ExecuteTouchUp))),
399 CommandMapping(kPost, 471 CommandMapping(kPost,
400 "session/:sessionId/touch/move", 472 "session/:sessionId/touch/move",
401 WrapToCommand(base::Bind(&ExecuteTouchMove))), 473 WrapToCommand("TouchMove", base::Bind(&ExecuteTouchMove))),
402 CommandMapping(kPost, 474 CommandMapping(kPost,
403 "session/:sessionId/touch/scroll", 475 "session/:sessionId/touch/scroll",
404 base::Bind(&UnimplementedCommand)), 476 base::Bind(&UnimplementedCommand)),
405 CommandMapping(kPost, 477 CommandMapping(kPost,
406 "session/:sessionId/touch/doubleclick", 478 "session/:sessionId/touch/doubleclick",
407 base::Bind(&UnimplementedCommand)), 479 base::Bind(&UnimplementedCommand)),
408 CommandMapping(kPost, 480 CommandMapping(kPost,
409 "session/:sessionId/touch/longclick", 481 "session/:sessionId/touch/longclick",
410 base::Bind(&UnimplementedCommand)), 482 base::Bind(&UnimplementedCommand)),
411 CommandMapping(kPost, 483 CommandMapping(kPost,
412 "session/:sessionId/touch/flick", 484 "session/:sessionId/touch/flick",
413 base::Bind(&UnimplementedCommand)), 485 base::Bind(&UnimplementedCommand)),
414 CommandMapping(kPost, 486 CommandMapping(kPost,
415 "session/:sessionId/log", 487 "session/:sessionId/log",
416 WrapToCommand(base::Bind(&ExecuteGetLog))), 488 WrapToCommand("GetLog", base::Bind(&ExecuteGetLog))),
417 CommandMapping(kGet, 489 CommandMapping(kGet,
418 "session/:sessionId/log/types", 490 "session/:sessionId/log/types",
419 WrapToCommand(base::Bind(&ExecuteGetAvailableLogTypes))), 491 WrapToCommand("GetLogTypes",
492 base::Bind(&ExecuteGetAvailableLogTypes))),
420 CommandMapping(kPost, "logs", base::Bind(&UnimplementedCommand)), 493 CommandMapping(kPost, "logs", base::Bind(&UnimplementedCommand)),
421 CommandMapping(kGet, "status", base::Bind(&ExecuteGetStatus)), 494 CommandMapping(kGet, "status", base::Bind(&ExecuteGetStatus)),
422 495
423 // Custom Chrome commands: 496 // Custom Chrome commands:
424 // Allow quit all to be called with GET or POST. 497 // Allow quit all to be called with GET or POST.
425 CommandMapping(kGet, 498 CommandMapping(
426 kShutdownPath, 499 kGet,
427 base::Bind(&ExecuteQuitAll, 500 kShutdownPath,
428 WrapToCommand(base::Bind(&ExecuteQuit, true)), 501 base::Bind(&ExecuteQuitAll,
429 &session_thread_map_)), 502 WrapToCommand("QuitAll", base::Bind(&ExecuteQuit, true)),
430 CommandMapping(kPost, 503 &session_thread_map_)),
431 kShutdownPath, 504 CommandMapping(
432 base::Bind(&ExecuteQuitAll, 505 kPost,
433 WrapToCommand(base::Bind(&ExecuteQuit, true)), 506 kShutdownPath,
434 &session_thread_map_)), 507 base::Bind(&ExecuteQuitAll,
508 WrapToCommand("QuitAll", base::Bind(&ExecuteQuit, true)),
509 &session_thread_map_)),
435 CommandMapping(kGet, 510 CommandMapping(kGet,
436 "session/:sessionId/is_loading", 511 "session/:sessionId/is_loading",
437 WrapToCommand(base::Bind(&ExecuteIsLoading))), }; 512 WrapToCommand("IsLoading", base::Bind(&ExecuteIsLoading))),
513 };
438 command_map_.reset( 514 command_map_.reset(
439 new CommandMap(commands, commands + arraysize(commands))); 515 new CommandMap(commands, commands + arraysize(commands)));
440 } 516 }
441 517
442 HttpHandler::~HttpHandler() {} 518 HttpHandler::~HttpHandler() {}
443 519
444 void HttpHandler::Handle(const net::HttpServerRequestInfo& request, 520 void HttpHandler::Handle(const net::HttpServerRequestInfo& request,
445 const HttpResponseSenderFunc& send_response_func) { 521 const HttpResponseSenderFunc& send_response_func) {
446 CHECK(thread_checker_.CalledOnValidThread()); 522 CHECK(thread_checker_.CalledOnValidThread());
447 523
(...skipping 11 matching lines...) Expand all
459 535
460 path.erase(0, url_base_.length()); 536 path.erase(0, url_base_.length());
461 537
462 HandleCommand(request, path, send_response_func); 538 HandleCommand(request, path, send_response_func);
463 539
464 if (path == kShutdownPath) 540 if (path == kShutdownPath)
465 received_shutdown_ = true; 541 received_shutdown_ = true;
466 } 542 }
467 543
468 Command HttpHandler::WrapToCommand( 544 Command HttpHandler::WrapToCommand(
545 const char* name,
469 const SessionCommand& session_command) { 546 const SessionCommand& session_command) {
470 return base::Bind( 547 return base::Bind(&ExecuteSessionCommand,
471 &ExecuteSessionCommand, &session_thread_map_, session_command, false); 548 &session_thread_map_,
549 name,
550 session_command,
551 false);
472 } 552 }
473 553
474 Command HttpHandler::WrapToCommand( 554 Command HttpHandler::WrapToCommand(
555 const char* name,
475 const WindowCommand& window_command) { 556 const WindowCommand& window_command) {
476 return WrapToCommand( 557 return WrapToCommand(name, base::Bind(&ExecuteWindowCommand, window_command));
477 base::Bind(&ExecuteWindowCommand, window_command));
478 } 558 }
479 559
480 Command HttpHandler::WrapToCommand( 560 Command HttpHandler::WrapToCommand(
561 const char* name,
481 const ElementCommand& element_command) { 562 const ElementCommand& element_command) {
482 return WrapToCommand( 563 return WrapToCommand(name,
483 base::Bind(&ExecuteElementCommand, element_command)); 564 base::Bind(&ExecuteElementCommand, element_command));
484 } 565 }
485 566
486 void HttpHandler::HandleCommand( 567 void HttpHandler::HandleCommand(
487 const net::HttpServerRequestInfo& request, 568 const net::HttpServerRequestInfo& request,
488 const std::string& trimmed_path, 569 const std::string& trimmed_path,
489 const HttpResponseSenderFunc& send_response_func) { 570 const HttpResponseSenderFunc& send_response_func) {
490 if (IsVLogOn(0)) {
491 VLOG(0) << "Handling command: " << request.method << " " << trimmed_path
492 << " " << FormatJsonForDisplay(request.data);
493 }
494
495 base::DictionaryValue params; 571 base::DictionaryValue params;
496 std::string session_id; 572 std::string session_id;
497 CommandMap::const_iterator iter = command_map_->begin(); 573 CommandMap::const_iterator iter = command_map_->begin();
498 while (true) { 574 while (true) {
499 if (iter == command_map_->end()) { 575 if (iter == command_map_->end()) {
500 scoped_ptr<net::HttpServerResponseInfo> response( 576 scoped_ptr<net::HttpServerResponseInfo> response(
501 new net::HttpServerResponseInfo(net::HTTP_NOT_FOUND)); 577 new net::HttpServerResponseInfo(net::HTTP_NOT_FOUND));
502 response->SetBody("unknown command: " + trimmed_path, "text/plain"); 578 response->SetBody("unknown command: " + trimmed_path, "text/plain");
503 send_response_func.Run(response.Pass()); 579 send_response_func.Run(response.Pass());
504 return; 580 return;
(...skipping 28 matching lines...) Expand all
533 609
534 void HttpHandler::PrepareResponse( 610 void HttpHandler::PrepareResponse(
535 const std::string& trimmed_path, 611 const std::string& trimmed_path,
536 const HttpResponseSenderFunc& send_response_func, 612 const HttpResponseSenderFunc& send_response_func,
537 const Status& status, 613 const Status& status,
538 scoped_ptr<base::Value> value, 614 scoped_ptr<base::Value> value,
539 const std::string& session_id) { 615 const std::string& session_id) {
540 CHECK(thread_checker_.CalledOnValidThread()); 616 CHECK(thread_checker_.CalledOnValidThread());
541 scoped_ptr<net::HttpServerResponseInfo> response = 617 scoped_ptr<net::HttpServerResponseInfo> response =
542 PrepareResponseHelper(trimmed_path, status, value.Pass(), session_id); 618 PrepareResponseHelper(trimmed_path, status, value.Pass(), session_id);
543 if (IsVLogOn(0)) {
544 VLOG(0) << "Sending response: " << response->status_code() << " "
545 << FormatJsonForDisplay(response->body());
546 }
547 send_response_func.Run(response.Pass()); 619 send_response_func.Run(response.Pass());
548 if (trimmed_path == kShutdownPath) 620 if (trimmed_path == kShutdownPath)
549 quit_func_.Run(); 621 quit_func_.Run();
550 } 622 }
551 623
552 scoped_ptr<net::HttpServerResponseInfo> HttpHandler::PrepareResponseHelper( 624 scoped_ptr<net::HttpServerResponseInfo> HttpHandler::PrepareResponseHelper(
553 const std::string& trimmed_path, 625 const std::string& trimmed_path,
554 const Status& status, 626 const Status& status,
555 scoped_ptr<base::Value> value, 627 scoped_ptr<base::Value> value,
556 const std::string& session_id) { 628 const std::string& session_id) {
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 params.SetString(name, path_parts[i]); 715 params.SetString(name, path_parts[i]);
644 } else if (command_path_parts[i] != path_parts[i]) { 716 } else if (command_path_parts[i] != path_parts[i]) {
645 return false; 717 return false;
646 } 718 }
647 } 719 }
648 out_params->MergeDictionary(&params); 720 out_params->MergeDictionary(&params);
649 return true; 721 return true;
650 } 722 }
651 723
652 } // namespace internal 724 } // namespace internal
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/server/http_handler.h ('k') | chrome/test/chromedriver/session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698