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

Side by Side Diff: chrome/test/chromedriver/keycode_text_conversion_ozone.cc

Issue 2952383002: use ozone implementation for key code conversion when there is no X display (Closed)
Patch Set: Created 3 years, 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/strings/string16.h" 5 #include "base/strings/string16.h"
6 #include "base/strings/utf_string_conversion_utils.h" 6 #include "base/strings/utf_string_conversion_utils.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/test/chromedriver/chrome/ui_events.h" 8 #include "chrome/test/chromedriver/chrome/ui_events.h"
9 #include "chrome/test/chromedriver/keycode_text_conversion.h" 9 #include "chrome/test/chromedriver/keycode_text_conversion.h"
10 #include "ui/events/event_constants.h" 10 #include "ui/events/event_constants.h"
11 #include "ui/events/keycodes/dom/dom_code.h" 11 #include "ui/events/keycodes/dom/dom_code.h"
12 #include "ui/events/keycodes/dom/keycode_converter.h" 12 #include "ui/events/keycodes/dom/keycode_converter.h"
13 #include "ui/events/keycodes/keyboard_code_conversion.h" 13 #include "ui/events/keycodes/keyboard_code_conversion.h"
14 #include "ui/events/ozone/layout/keyboard_layout_engine.h" 14 #include "ui/events/ozone/layout/keyboard_layout_engine.h"
15 #include "ui/events/ozone/layout/keyboard_layout_engine_manager.h" 15 #include "ui/events/ozone/layout/keyboard_layout_engine_manager.h"
16 16
17 bool ConvertKeyCodeToText(ui::KeyboardCode key_code, 17 #if defined(USE_X11)
18 int modifiers, 18 bool ConvertKeyCodeToTextOzone
19 std::string* text, 19 #else
20 std::string* error_msg) { 20 bool ConvertKeyCodeToText
21 #endif
22 (ui::KeyboardCode key_code,
23 int modifiers,
24 std::string* text,
25 std::string* error_msg) {
21 ui::KeyboardLayoutEngine* keyboard_layout_engine = 26 ui::KeyboardLayoutEngine* keyboard_layout_engine =
22 ui::KeyboardLayoutEngineManager::GetKeyboardLayoutEngine(); 27 ui::KeyboardLayoutEngineManager::GetKeyboardLayoutEngine();
23 ui::DomCode dom_code = ui::UsLayoutKeyboardCodeToDomCode(key_code); 28 ui::DomCode dom_code = ui::UsLayoutKeyboardCodeToDomCode(key_code);
24 int event_flags = ui::EF_NONE; 29 int event_flags = ui::EF_NONE;
25 30
26 // Chrome OS keyboards don't have meta or num lock keys, so these modifier 31 // Chrome OS keyboards don't have meta or num lock keys, so these modifier
27 // masks are ignored. Only handle alt, ctrl and shift. 32 // masks are ignored. Only handle alt, ctrl and shift.
28 if (modifiers & kAltKeyModifierMask) 33 if (modifiers & kAltKeyModifierMask)
29 event_flags |= ui::EF_ALT_DOWN; 34 event_flags |= ui::EF_ALT_DOWN;
30 if (modifiers & kControlKeyModifierMask) 35 if (modifiers & kControlKeyModifierMask)
(...skipping 10 matching lines...) Expand all
41 // The keycode lookup failed, or mapped to a key that isn't a unicode 46 // The keycode lookup failed, or mapped to a key that isn't a unicode
42 // character. Convert it to the empty string. 47 // character. Convert it to the empty string.
43 *text = std::string(); 48 *text = std::string();
44 return true; 49 return true;
45 } 50 }
46 51
47 base::WriteUnicodeCharacter(dom_key.ToCharacter(), text); 52 base::WriteUnicodeCharacter(dom_key.ToCharacter(), text);
48 return true; 53 return true;
49 } 54 }
50 55
51 bool ConvertCharToKeyCode(base::char16 key, 56 #if defined(USE_X11)
52 ui::KeyboardCode* key_code, 57 bool ConvertCharToKeyCodeOzone
53 int* necessary_modifiers, 58 #else
54 std::string* error_msg) { 59 bool ConvertCharToKeyCode
60 #endif
61 (base::char16 key,
62 ui::KeyboardCode* key_code,
63 int* necessary_modifiers,
64 std::string* error_msg) {
55 base::string16 key_string; 65 base::string16 key_string;
56 key_string.push_back(key); 66 key_string.push_back(key);
57 std::string key_string_utf8 = base::UTF16ToUTF8(key_string); 67 std::string key_string_utf8 = base::UTF16ToUTF8(key_string);
58 bool found_code = false; 68 bool found_code = false;
59 *error_msg = std::string(); 69 *error_msg = std::string();
60 // There doesn't seem to be a way to get a CrOS key code for a given unicode 70 // There doesn't seem to be a way to get a CrOS key code for a given unicode
61 // character. So here we check every key code to see if it produces the 71 // character. So here we check every key code to see if it produces the
62 // right character, as we do on Mac (see keycode_text_conversion_mac.mm). 72 // right character, as we do on Mac (see keycode_text_conversion_mac.mm).
63 for (int i = 0; i < 256; ++i) { 73 for (int i = 0; i < 256; ++i) {
64 ui::KeyboardCode code = static_cast<ui::KeyboardCode>(i); 74 ui::KeyboardCode code = static_cast<ui::KeyboardCode>(i);
(...skipping 12 matching lines...) Expand all
77 *necessary_modifiers = kShiftKeyModifierMask; 87 *necessary_modifiers = kShiftKeyModifierMask;
78 found_code = true; 88 found_code = true;
79 } 89 }
80 if (found_code) { 90 if (found_code) {
81 *key_code = code; 91 *key_code = code;
82 break; 92 break;
83 } 93 }
84 } 94 }
85 return found_code; 95 return found_code;
86 } 96 }
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/keycode_text_conversion.h ('k') | chrome/test/chromedriver/keycode_text_conversion_x.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698