Change all global shortcuts to use virtual keycodes.
The original logic to make two shortcuts cmd + '{' and cmd + '}' use key
characters instead of virtual keycodes was done to match behavior of terminal
and Safari back in 2009 for international keyboards. Both of those apps have
since changed their behavior, but Chrome was not updated.
Bug: 851095
Change-Id: I3414ca784419b81bb8aacd53aa6cc2a1a8ec8c19
Reviewed-on: https://chromium-review.googlesource.com/1093696
Commit-Queue: Erik Chen <[email protected]>
Reviewed-by: Nico Weber <[email protected]>
Cr-Commit-Position: refs/heads/master@{#565849}
diff --git a/chrome/browser/global_keyboard_shortcuts_mac_unittest.mm b/chrome/browser/global_keyboard_shortcuts_mac_unittest.mm
index 69ee8e6c..597402c7 100644
--- a/chrome/browser/global_keyboard_shortcuts_mac_unittest.mm
+++ b/chrome/browser/global_keyboard_shortcuts_mac_unittest.mm
@@ -20,8 +20,7 @@
bool shift_key,
bool cntrl_key,
bool opt_key,
- int vkey_code,
- unichar character) {
+ int vkey_code) {
NSUInteger modifierFlags = 0;
if (command_key)
modifierFlags |= NSCommandKeyMask;
@@ -32,12 +31,8 @@
if (opt_key)
modifierFlags |= NSAlternateKeyMask;
- // Use a two-length string as a dummy character if none is provided.
+ // Use a two-length string as a dummy character.
NSString* chars = @"ab";
- if (character) {
- chars =
- [[[NSString alloc] initWithCharacters:&character length:1] autorelease];
- }
NSEvent* event = [NSEvent keyEventWithType:NSKeyDown
location:NSZeroPoint
@@ -57,31 +52,19 @@
TEST(GlobalKeyboardShortcuts, BasicFunctionality) {
// Test that an invalid shortcut translates into an invalid command id.
- EXPECT_EQ(-1, CommandForKeys(false, false, false, false, 0, 0));
+ EXPECT_EQ(-1, CommandForKeys(false, false, false, false, 0));
// Check that all known keyboard shortcuts return valid results.
for (const auto& shortcut : GetShortcutsNotPresentInMainMenu()) {
int cmd_num = CommandForKeys(shortcut.command_key, shortcut.shift_key,
shortcut.cntrl_key, shortcut.opt_key,
- shortcut.vkey_code, shortcut.key_char);
+ shortcut.vkey_code);
EXPECT_EQ(cmd_num, shortcut.chrome_command);
}
-
- // Test that Cmd-'{' and Cmd-'}' are interpreted as IDC_SELECT_NEXT_TAB
- // and IDC_SELECT_PREVIOUS_TAB regardless of the virtual key code values.
- EXPECT_EQ(IDC_SELECT_NEXT_TAB,
- CommandForKeys(true, false, false, false, kVK_ANSI_Period, '}'));
- EXPECT_EQ(IDC_SELECT_PREVIOUS_TAB,
- CommandForKeys(true, true, false, false, kVK_ANSI_Slash, '{'));
-
- // One more test for Cmd-'{' / Alt-8 (on German keyboard layout).
- EXPECT_EQ(IDC_SELECT_PREVIOUS_TAB,
- CommandForKeys(true, false, false, true, kVK_ANSI_8, '{'));
-
// Test that switching tabs triggers off keycodes and not characters (visible
// with the Italian keyboard layout).
EXPECT_EQ(IDC_SELECT_TAB_0,
- CommandForKeys(true, false, false, false, kVK_ANSI_1, '&'));
+ CommandForKeys(true, false, false, false, kVK_ANSI_1));
}
TEST(GlobalKeyboardShortcuts, KeypadNumberKeysMatch) {
@@ -109,13 +92,13 @@
for (int control = 0; control <= 1; ++control) {
for (int option = 0; option <= 1; ++option) {
EXPECT_EQ(CommandForKeys(command, shift, control, option,
- equivalents[i].keycode, 0),
+ equivalents[i].keycode),
CommandForKeys(command, shift, control, option,
- equivalents[i].keypad_keycode, 0));
+ equivalents[i].keypad_keycode));
EXPECT_EQ(CommandForKeys(command, shift, control, option,
- equivalents[i].keycode, 0),
+ equivalents[i].keycode),
CommandForKeys(command, shift, control, option,
- equivalents[i].keypad_keycode, 0));
+ equivalents[i].keypad_keycode));
}
}
}