OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/public/test/browser_test_utils.h" | 5 #include "content/public/test/browser_test_utils.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/json/json_reader.h" | 8 #include "base/json/json_reader.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/process/kill.h" | 10 #include "base/process/kill.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 #include "content/public/browser/web_contents_observer.h" | 24 #include "content/public/browser/web_contents_observer.h" |
25 #include "content/public/browser/web_contents_view.h" | 25 #include "content/public/browser/web_contents_view.h" |
26 #include "content/public/test/test_utils.h" | 26 #include "content/public/test/test_utils.h" |
27 #include "grit/webui_resources.h" | 27 #include "grit/webui_resources.h" |
28 #include "net/base/net_util.h" | 28 #include "net/base/net_util.h" |
29 #include "net/cookies/cookie_store.h" | 29 #include "net/cookies/cookie_store.h" |
30 #include "net/test/python_utils.h" | 30 #include "net/test/python_utils.h" |
31 #include "net/url_request/url_request_context.h" | 31 #include "net/url_request/url_request_context.h" |
32 #include "net/url_request/url_request_context_getter.h" | 32 #include "net/url_request/url_request_context_getter.h" |
33 #include "testing/gtest/include/gtest/gtest.h" | 33 #include "testing/gtest/include/gtest/gtest.h" |
34 | |
35 #if defined(OS_WIN) | |
36 #define USB_KEYMAP(usb, xkb, win, mac, code) {usb, win, code} | |
37 #elif defined(OS_LINUX) | |
38 #define USB_KEYMAP(usb, xkb, win, mac, code) {usb, xkb, code} | |
39 #elif defined(OS_MACOSX) | |
40 #define USB_KEYMAP(usb, xkb, win, mac, code) {usb, mac, code} | |
41 #else | |
42 #define USB_KEYMAP(usb, xkb, win, mac, code) {usb, 0, code} | |
43 #endif | |
44 #include "ui/base/keycodes/usb_keycode_map.h" | |
45 #undef USB_KEYMAP | |
46 | |
47 #include "ui/base/resource/resource_bundle.h" | 34 #include "ui/base/resource/resource_bundle.h" |
48 | 35 |
49 static const int kDefaultWsPort = 8880; | 36 static const int kDefaultWsPort = 8880; |
50 | 37 |
51 namespace content { | 38 namespace content { |
52 namespace { | 39 namespace { |
53 | 40 |
54 class DOMOperationObserver : public NotificationObserver, | 41 class DOMOperationObserver : public NotificationObserver, |
55 public WebContentsObserver { | 42 public WebContentsObserver { |
56 public: | 43 public: |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 result->reset(reader.ReadToValue(json)); | 113 result->reset(reader.ReadToValue(json)); |
127 if (!result->get()) { | 114 if (!result->get()) { |
128 DLOG(ERROR) << reader.GetErrorMessage(); | 115 DLOG(ERROR) << reader.GetErrorMessage(); |
129 return false; | 116 return false; |
130 } | 117 } |
131 | 118 |
132 return true; | 119 return true; |
133 } | 120 } |
134 | 121 |
135 void BuildSimpleWebKeyEvent(WebKit::WebInputEvent::Type type, | 122 void BuildSimpleWebKeyEvent(WebKit::WebInputEvent::Type type, |
136 ui::KeyboardCode key_code, | 123 ui::KeyboardCode key, |
137 int native_key_code, | |
138 bool control, | 124 bool control, |
139 bool shift, | 125 bool shift, |
140 bool alt, | 126 bool alt, |
141 bool command, | 127 bool command, |
142 NativeWebKeyboardEvent* event) { | 128 NativeWebKeyboardEvent* event) { |
143 event->nativeKeyCode = native_key_code; | 129 event->nativeKeyCode = 0; |
144 event->windowsKeyCode = key_code; | 130 event->windowsKeyCode = key; |
145 event->setKeyIdentifierFromWindowsKeyCode(); | 131 event->setKeyIdentifierFromWindowsKeyCode(); |
146 event->type = type; | 132 event->type = type; |
147 event->modifiers = 0; | 133 event->modifiers = 0; |
148 event->isSystemKey = false; | 134 event->isSystemKey = false; |
149 event->timeStampSeconds = base::Time::Now().ToDoubleT(); | 135 event->timeStampSeconds = base::Time::Now().ToDoubleT(); |
150 event->skip_in_browser = true; | 136 event->skip_in_browser = true; |
151 | 137 |
152 if (type == WebKit::WebInputEvent::Char || | 138 if (type == WebKit::WebInputEvent::Char || |
153 type == WebKit::WebInputEvent::RawKeyDown) { | 139 type == WebKit::WebInputEvent::RawKeyDown) { |
154 event->text[0] = key_code; | 140 event->text[0] = key; |
155 event->unmodifiedText[0] = key_code; | 141 event->unmodifiedText[0] = key; |
156 } | 142 } |
157 | 143 |
158 if (control) | 144 if (control) |
159 event->modifiers |= WebKit::WebInputEvent::ControlKey; | 145 event->modifiers |= WebKit::WebInputEvent::ControlKey; |
160 | 146 |
161 if (shift) | 147 if (shift) |
162 event->modifiers |= WebKit::WebInputEvent::ShiftKey; | 148 event->modifiers |= WebKit::WebInputEvent::ShiftKey; |
163 | 149 |
164 if (alt) | 150 if (alt) |
165 event->modifiers |= WebKit::WebInputEvent::AltKey; | 151 event->modifiers |= WebKit::WebInputEvent::AltKey; |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 WebKit::WebInputEvent::Type type, | 258 WebKit::WebInputEvent::Type type, |
273 const gfx::Point& point) { | 259 const gfx::Point& point) { |
274 WebKit::WebMouseEvent mouse_event; | 260 WebKit::WebMouseEvent mouse_event; |
275 mouse_event.type = type; | 261 mouse_event.type = type; |
276 mouse_event.x = point.x(); | 262 mouse_event.x = point.x(); |
277 mouse_event.y = point.y(); | 263 mouse_event.y = point.y(); |
278 web_contents->GetRenderViewHost()->ForwardMouseEvent(mouse_event); | 264 web_contents->GetRenderViewHost()->ForwardMouseEvent(mouse_event); |
279 } | 265 } |
280 | 266 |
281 void SimulateKeyPress(WebContents* web_contents, | 267 void SimulateKeyPress(WebContents* web_contents, |
282 ui::KeyboardCode key_code, | 268 ui::KeyboardCode key, |
283 bool control, | 269 bool control, |
284 bool shift, | 270 bool shift, |
285 bool alt, | 271 bool alt, |
286 bool command) { | 272 bool command) { |
287 SimulateKeyPressWithCode( | |
288 web_contents, key_code, NULL, control, shift, alt, command); | |
289 } | |
290 | |
291 void SimulateKeyPressWithCode(WebContents* web_contents, | |
292 ui::KeyboardCode key_code, | |
293 const char* code, | |
294 bool control, | |
295 bool shift, | |
296 bool alt, | |
297 bool command) { | |
298 int native_key_code = CodeToNativeKeycode(code); | |
299 | |
300 NativeWebKeyboardEvent event_down; | 273 NativeWebKeyboardEvent event_down; |
301 BuildSimpleWebKeyEvent( | 274 BuildSimpleWebKeyEvent( |
302 WebKit::WebInputEvent::RawKeyDown, | 275 WebKit::WebInputEvent::RawKeyDown, key, control, shift, alt, command, |
303 key_code, | |
304 native_key_code, | |
305 control, | |
306 shift, | |
307 alt, | |
308 command, | |
309 &event_down); | 276 &event_down); |
310 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_down); | 277 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_down); |
311 | 278 |
312 NativeWebKeyboardEvent char_event; | 279 NativeWebKeyboardEvent char_event; |
313 BuildSimpleWebKeyEvent( | 280 BuildSimpleWebKeyEvent( |
314 WebKit::WebInputEvent::Char, | 281 WebKit::WebInputEvent::Char, key, control, shift, alt, command, |
315 key_code, | |
316 native_key_code, | |
317 control, | |
318 shift, | |
319 alt, | |
320 command, | |
321 &char_event); | 282 &char_event); |
322 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(char_event); | 283 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(char_event); |
323 | 284 |
324 NativeWebKeyboardEvent event_up; | 285 NativeWebKeyboardEvent event_up; |
325 BuildSimpleWebKeyEvent( | 286 BuildSimpleWebKeyEvent( |
326 WebKit::WebInputEvent::KeyUp, | 287 WebKit::WebInputEvent::KeyUp, key, control, shift, alt, command, |
327 key_code, | |
328 native_key_code, | |
329 control, | |
330 shift, | |
331 alt, | |
332 command, | |
333 &event_up); | 288 &event_up); |
334 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_up); | 289 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_up); |
335 } | 290 } |
336 | 291 |
337 namespace internal { | 292 namespace internal { |
338 | 293 |
339 ToRenderViewHost::ToRenderViewHost(WebContents* web_contents) | 294 ToRenderViewHost::ToRenderViewHost(WebContents* web_contents) |
340 : render_view_host_(web_contents->GetRenderViewHost()) { | 295 : render_view_host_(web_contents->GetRenderViewHost()) { |
341 } | 296 } |
342 | 297 |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 // The queue should not be empty, unless we were quit because of a timeout. | 539 // The queue should not be empty, unless we were quit because of a timeout. |
585 if (message_queue_.empty()) | 540 if (message_queue_.empty()) |
586 return false; | 541 return false; |
587 if (message) | 542 if (message) |
588 *message = message_queue_.front(); | 543 *message = message_queue_.front(); |
589 message_queue_.pop(); | 544 message_queue_.pop(); |
590 return true; | 545 return true; |
591 } | 546 } |
592 | 547 |
593 } // namespace content | 548 } // namespace content |
OLD | NEW |