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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: content/public/test/browser_test_utils.cc
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc
index 13846dfa88c5e7b9a0f03d0fa0bb23057a2d97d3..b1afec887f1bf2521832d84cf5b39937491be3ee 100644
--- a/content/public/test/browser_test_utils.cc
+++ b/content/public/test/browser_test_utils.cc
@@ -31,6 +31,19 @@
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
#include "testing/gtest/include/gtest/gtest.h"
+
+#if defined(OS_WIN)
+#define USB_KEYMAP(usb, xkb, win, mac, code) {usb, win, code}
+#elif defined(OS_LINUX)
+#define USB_KEYMAP(usb, xkb, win, mac, code) {usb, xkb, code}
+#elif defined(OS_MACOSX)
+#define USB_KEYMAP(usb, xkb, win, mac, code) {usb, mac, code}
+#else
+#define USB_KEYMAP(usb, xkb, win, mac, code) {usb, 0, code}
+#endif
+#include "ui/base/keycodes/usb_keycode_map.h"
+#undef USB_KEYMAP
+
#include "ui/base/resource/resource_bundle.h"
static const int kDefaultWsPort = 8880;
@@ -121,12 +134,13 @@ bool ExecuteScriptHelper(RenderViewHost* render_view_host,
void BuildSimpleWebKeyEvent(WebKit::WebInputEvent::Type type,
ui::KeyboardCode key,
+ int nativeKeyCode,
bool control,
bool shift,
bool alt,
bool command,
NativeWebKeyboardEvent* event) {
- event->nativeKeyCode = 0;
+ event->nativeKeyCode = nativeKeyCode;
event->windowsKeyCode = key;
event->setKeyIdentifierFromWindowsKeyCode();
event->type = type;
@@ -154,6 +168,50 @@ void BuildSimpleWebKeyEvent(WebKit::WebInputEvent::Type type,
event->modifiers |= WebKit::WebInputEvent::MetaKey;
}
+void SimulateKeyPress(WebContents* web_contents,
+ ui::KeyboardCode key,
+ int nativeKeyCode,
+ bool control,
+ bool shift,
+ bool alt,
+ bool command) {
+ NativeWebKeyboardEvent event_down;
+ BuildSimpleWebKeyEvent(
+ WebKit::WebInputEvent::RawKeyDown,
+ key,
+ nativeKeyCode,
+ control,
+ shift,
+ alt,
+ command,
+ &event_down);
+ web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_down);
+
+ NativeWebKeyboardEvent char_event;
+ BuildSimpleWebKeyEvent(
+ WebKit::WebInputEvent::RawKeyDown,
+ key,
+ nativeKeyCode,
+ control,
+ shift,
+ alt,
+ command,
+ &char_event);
+ web_contents->GetRenderViewHost()->ForwardKeyboardEvent(char_event);
+
+ NativeWebKeyboardEvent event_up;
+ BuildSimpleWebKeyEvent(
+ WebKit::WebInputEvent::RawKeyDown,
+ key,
+ nativeKeyCode,
+ control,
+ shift,
+ alt,
+ command,
+ &event_up);
+ web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_up);
+}
+
void GetCookiesCallback(std::string* cookies_out,
base::WaitableEvent* event,
const std::string& cookies) {
@@ -270,23 +328,24 @@ void SimulateKeyPress(WebContents* web_contents,
bool shift,
bool alt,
bool command) {
- NativeWebKeyboardEvent event_down;
- BuildSimpleWebKeyEvent(
- WebKit::WebInputEvent::RawKeyDown, key, control, shift, alt, command,
- &event_down);
- web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_down);
-
- NativeWebKeyboardEvent char_event;
- BuildSimpleWebKeyEvent(
- WebKit::WebInputEvent::Char, key, control, shift, alt, command,
- &char_event);
- web_contents->GetRenderViewHost()->ForwardKeyboardEvent(char_event);
+ SimulateKeyPress(web_contents, key, 0, control, shift, alt, command);
+}
- NativeWebKeyboardEvent event_up;
- BuildSimpleWebKeyEvent(
- WebKit::WebInputEvent::KeyUp, key, control, shift, alt, command,
- &event_up);
- web_contents->GetRenderViewHost()->ForwardKeyboardEvent(event_up);
+void SimulateKeyPress(WebContents* web_contents,
+ ui::KeyboardCode key,
+ const char* code,
+ bool control,
+ bool shift,
+ bool alt,
+ bool command) {
+ int nativeKeyCode = CodeToNativeKeycode(code);
+ SimulateKeyPress(web_contents,
+ key,
+ nativeKeyCode,
+ control,
+ shift,
+ alt,
+ command);
}
namespace internal {

Powered by Google App Engine
This is Rietveld 408576698