Make deprecation of Alt-based 6pack rewrites more granular
- Decoupling the deprecations of the alt-based 6 pack keys
from the i18n improvements
Bug: 1221679
Test: unit_tests --gtest_filter=EventRewriterTest.*
Change-Id: I9069877dc0dd7c73aa3d8a025f2bc5ba44b4affe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2976300
Commit-Queue: Zentaro Kavanagh <[email protected]>
Reviewed-by: James Cook <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Cr-Commit-Position: refs/heads/master@{#895855}
diff --git a/chrome/browser/chromeos/events/event_rewriter_unittest.cc b/chrome/browser/chromeos/events/event_rewriter_unittest.cc
index 1776fdcd..22b195fd 100644
--- a/chrome/browser/chromeos/events/event_rewriter_unittest.cc
+++ b/chrome/browser/chromeos/events/event_rewriter_unittest.cc
@@ -1672,8 +1672,85 @@
});
}
+// TODO(crbug.com/1179893): Remove once the feature is enabled permanently.
+// For M92 kImprovedKeyboardShortcuts is enabled but kDeprecateAltBasedSixPack
+// is disabled.
+TEST_F(EventRewriterTest, TestRewriteExtendedKeysAltVariantsM92) {
+ chromeos::Preferences::RegisterProfilePrefs(prefs()->registry());
+ TestNonAppleKeyboardVariants({
+ // Alt+Backspace -> Delete
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_BACK, ui::DomCode::BACKSPACE, ui::EF_ALT_DOWN,
+ ui::DomKey::BACKSPACE},
+ {ui::VKEY_DELETE, ui::DomCode::DEL, ui::EF_NONE, ui::DomKey::DEL}},
+ // Control+Alt+Backspace -> Control+Delete
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_BACK, ui::DomCode::BACKSPACE,
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, ui::DomKey::BACKSPACE},
+ {ui::VKEY_DELETE, ui::DomCode::DEL, ui::EF_CONTROL_DOWN,
+ ui::DomKey::DEL}},
+ // Search+Alt+Backspace -> Alt+Backspace
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_BACK, ui::DomCode::BACKSPACE,
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, ui::DomKey::BACKSPACE},
+ {ui::VKEY_BACK, ui::DomCode::BACKSPACE, ui::EF_ALT_DOWN,
+ ui::DomKey::BACKSPACE}},
+ // Search+Control+Alt+Backspace -> Control+Alt+Backspace
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_BACK, ui::DomCode::BACKSPACE,
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN,
+ ui::DomKey::BACKSPACE},
+ {ui::VKEY_BACK, ui::DomCode::BACKSPACE,
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, ui::DomKey::BACKSPACE}},
+ // Alt+Up -> Prior
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_UP, ui::DomCode::ARROW_UP, ui::EF_ALT_DOWN,
+ ui::DomKey::ARROW_UP},
+ {ui::VKEY_PRIOR, ui::DomCode::PAGE_UP, ui::EF_NONE,
+ ui::DomKey::PAGE_UP}},
+ // Alt+Down -> Next
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_DOWN, ui::DomCode::ARROW_DOWN, ui::EF_ALT_DOWN,
+ ui::DomKey::ARROW_DOWN},
+ {ui::VKEY_NEXT, ui::DomCode::PAGE_DOWN, ui::EF_NONE,
+ ui::DomKey::PAGE_DOWN}},
+ // Ctrl+Alt+Up -> Home
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_UP, ui::DomCode::ARROW_UP,
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, ui::DomKey::ARROW_UP},
+ {ui::VKEY_HOME, ui::DomCode::HOME, ui::EF_NONE, ui::DomKey::HOME}},
+ // Ctrl+Alt+Down -> End
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_DOWN, ui::DomCode::ARROW_DOWN,
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, ui::DomKey::ARROW_DOWN},
+ {ui::VKEY_END, ui::DomCode::END, ui::EF_NONE, ui::DomKey::END}},
+
+ // NOTE: The following are workarounds to avoid rewriting the
+ // Alt variants by additionally pressing Search.
+ // Search+Ctrl+Alt+Up -> Ctrl+Alt+Up
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_UP, ui::DomCode::ARROW_UP,
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN,
+ ui::DomKey::ARROW_UP},
+ {ui::VKEY_UP, ui::DomCode::ARROW_UP,
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, ui::DomKey::ARROW_UP}},
+ // Search+Ctrl+Alt+Down -> Ctrl+Alt+Down
+ {ui::ET_KEY_PRESSED,
+ {ui::VKEY_DOWN, ui::DomCode::ARROW_DOWN,
+ ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN,
+ ui::DomKey::ARROW_DOWN},
+ {ui::VKEY_DOWN, ui::DomCode::ARROW_DOWN,
+ ui::EF_ALT_DOWN | ui::EF_CONTROL_DOWN, ui::DomKey::ARROW_DOWN}},
+ });
+}
+
+// TODO(crbug.com/1179893): Remove once the feature is enabled permanently.
+// This is the intended final state with both kImprovedKeyboardShortcuts and
+// kDeprecateAltBasedSixPack enabled.
TEST_F(EventRewriterTest, TestRewriteExtendedKeysAltVariants) {
chromeos::Preferences::RegisterProfilePrefs(prefs()->registry());
+ scoped_feature_list_.InitAndEnableFeature(
+ ::features::kDeprecateAltBasedSixPack);
// All the previously supported Alt based rewrites no longer have any
// effect. The Search workarounds no longer take effect and the Search+Key
// portion is rewritten as expected.