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

Side by Side Diff: content/public/test/browser_test_utils.cc

Issue 23542008: Add a CodeToNativeKeycode helper that converts UIEvent code to native code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
OLDNEW
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
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
34 #include "ui/base/resource/resource_bundle.h" 47 #include "ui/base/resource/resource_bundle.h"
35 48
36 static const int kDefaultWsPort = 8880; 49 static const int kDefaultWsPort = 8880;
37 50
38 namespace content { 51 namespace content {
39 namespace { 52 namespace {
40 53
41 class DOMOperationObserver : public NotificationObserver, 54 class DOMOperationObserver : public NotificationObserver,
42 public WebContentsObserver { 55 public WebContentsObserver {
43 public: 56 public:
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 if (!result->get()) { 127 if (!result->get()) {
115 DLOG(ERROR) << reader.GetErrorMessage(); 128 DLOG(ERROR) << reader.GetErrorMessage();
116 return false; 129 return false;
117 } 130 }
118 131
119 return true; 132 return true;
120 } 133 }
121 134
122 void BuildSimpleWebKeyEvent(WebKit::WebInputEvent::Type type, 135 void BuildSimpleWebKeyEvent(WebKit::WebInputEvent::Type type,
123 ui::KeyboardCode key, 136 ui::KeyboardCode key,
137 int nativeKeyCode,
124 bool control, 138 bool control,
125 bool shift, 139 bool shift,
126 bool alt, 140 bool alt,
127 bool command, 141 bool command,
128 NativeWebKeyboardEvent* event) { 142 NativeWebKeyboardEvent* event) {
129 event->nativeKeyCode = 0; 143 event->nativeKeyCode = nativeKeyCode;
130 event->windowsKeyCode = key; 144 event->windowsKeyCode = key;
131 event->setKeyIdentifierFromWindowsKeyCode(); 145 event->setKeyIdentifierFromWindowsKeyCode();
132 event->type = type; 146 event->type = type;
133 event->modifiers = 0; 147 event->modifiers = 0;
134 event->isSystemKey = false; 148 event->isSystemKey = false;
135 event->timeStampSeconds = base::Time::Now().ToDoubleT(); 149 event->timeStampSeconds = base::Time::Now().ToDoubleT();
136 event->skip_in_browser = true; 150 event->skip_in_browser = true;
137 151
138 if (type == WebKit::WebInputEvent::Char || 152 if (type == WebKit::WebInputEvent::Char ||
139 type == WebKit::WebInputEvent::RawKeyDown) { 153 type == WebKit::WebInputEvent::RawKeyDown) {
140 event->text[0] = key; 154 event->text[0] = key;
141 event->unmodifiedText[0] = key; 155 event->unmodifiedText[0] = key;
142 } 156 }
143 157
144 if (control) 158 if (control)
145 event->modifiers |= WebKit::WebInputEvent::ControlKey; 159 event->modifiers |= WebKit::WebInputEvent::ControlKey;
146 160
147 if (shift) 161 if (shift)
148 event->modifiers |= WebKit::WebInputEvent::ShiftKey; 162 event->modifiers |= WebKit::WebInputEvent::ShiftKey;
149 163
150 if (alt) 164 if (alt)
151 event->modifiers |= WebKit::WebInputEvent::AltKey; 165 event->modifiers |= WebKit::WebInputEvent::AltKey;
152 166
153 if (command) 167 if (command)
154 event->modifiers |= WebKit::WebInputEvent::MetaKey; 168 event->modifiers |= WebKit::WebInputEvent::MetaKey;
155 } 169 }
156 170
171 void SimulateKeyPress(WebContents* web_contents,
172 ui::KeyboardCode key,
173 int nativeKeyCode,
174 bool control,
175 bool shift,
176 bool alt,
177 bool command) {
178 NativeWebKeyboardEvent event_down;
179 BuildSimpleWebKeyEvent(
180 WebKit::WebInputEvent::RawKeyDown,
181 key,
182 nativeKeyCode,
183 control,
184 shift,
185 alt,
186 command,
187 &event_down);
188 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_down);
189
190 NativeWebKeyboardEvent char_event;
191 BuildSimpleWebKeyEvent(
192 WebKit::WebInputEvent::RawKeyDown,
193 key,
194 nativeKeyCode,
195 control,
196 shift,
197 alt,
198 command,
199 &char_event);
200 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(char_event);
201
202 NativeWebKeyboardEvent event_up;
203 BuildSimpleWebKeyEvent(
204 WebKit::WebInputEvent::RawKeyDown,
205 key,
206 nativeKeyCode,
207 control,
208 shift,
209 alt,
210 command,
211 &event_up);
212 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_up);
213 }
214
157 void GetCookiesCallback(std::string* cookies_out, 215 void GetCookiesCallback(std::string* cookies_out,
158 base::WaitableEvent* event, 216 base::WaitableEvent* event,
159 const std::string& cookies) { 217 const std::string& cookies) {
160 *cookies_out = cookies; 218 *cookies_out = cookies;
161 event->Signal(); 219 event->Signal();
162 } 220 }
163 221
164 void GetCookiesOnIOThread(const GURL& url, 222 void GetCookiesOnIOThread(const GURL& url,
165 net::URLRequestContextGetter* context_getter, 223 net::URLRequestContextGetter* context_getter,
166 base::WaitableEvent* event, 224 base::WaitableEvent* event,
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 mouse_event.y = point.y(); 321 mouse_event.y = point.y();
264 web_contents->GetRenderViewHost()->ForwardMouseEvent(mouse_event); 322 web_contents->GetRenderViewHost()->ForwardMouseEvent(mouse_event);
265 } 323 }
266 324
267 void SimulateKeyPress(WebContents* web_contents, 325 void SimulateKeyPress(WebContents* web_contents,
268 ui::KeyboardCode key, 326 ui::KeyboardCode key,
269 bool control, 327 bool control,
270 bool shift, 328 bool shift,
271 bool alt, 329 bool alt,
272 bool command) { 330 bool command) {
273 NativeWebKeyboardEvent event_down; 331 SimulateKeyPress(web_contents, key, 0, control, shift, alt, command);
274 BuildSimpleWebKeyEvent( 332 }
275 WebKit::WebInputEvent::RawKeyDown, key, control, shift, alt, command,
276 &event_down);
277 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_down);
278 333
279 NativeWebKeyboardEvent char_event; 334 void SimulateKeyPress(WebContents* web_contents,
280 BuildSimpleWebKeyEvent( 335 ui::KeyboardCode key,
281 WebKit::WebInputEvent::Char, key, control, shift, alt, command, 336 const char* code,
282 &char_event); 337 bool control,
283 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(char_event); 338 bool shift,
284 339 bool alt,
285 NativeWebKeyboardEvent event_up; 340 bool command) {
286 BuildSimpleWebKeyEvent( 341 int nativeKeyCode = CodeToNativeKeycode(code);
287 WebKit::WebInputEvent::KeyUp, key, control, shift, alt, command, 342 SimulateKeyPress(web_contents,
288 &event_up); 343 key,
289 web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_up); 344 nativeKeyCode,
345 control,
346 shift,
347 alt,
348 command);
290 } 349 }
291 350
292 namespace internal { 351 namespace internal {
293 352
294 ToRenderViewHost::ToRenderViewHost(WebContents* web_contents) 353 ToRenderViewHost::ToRenderViewHost(WebContents* web_contents)
295 : render_view_host_(web_contents->GetRenderViewHost()) { 354 : render_view_host_(web_contents->GetRenderViewHost()) {
296 } 355 }
297 356
298 ToRenderViewHost::ToRenderViewHost(RenderViewHost* render_view_host) 357 ToRenderViewHost::ToRenderViewHost(RenderViewHost* render_view_host)
299 : render_view_host_(render_view_host) { 358 : render_view_host_(render_view_host) {
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 // The queue should not be empty, unless we were quit because of a timeout. 598 // The queue should not be empty, unless we were quit because of a timeout.
540 if (message_queue_.empty()) 599 if (message_queue_.empty())
541 return false; 600 return false;
542 if (message) 601 if (message)
543 *message = message_queue_.front(); 602 *message = message_queue_.front();
544 message_queue_.pop(); 603 message_queue_.pop();
545 return true; 604 return true;
546 } 605 }
547 606
548 } // namespace content 607 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698