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

Issue 11421055: Add power-user keyboard mode for ChromeOS with Search key acting as a typical Fn key. (Closed)

Created:
8 years, 1 month ago by danakj
Modified:
8 years ago
CC:
chromium-reviews, dbeam+watch-options_chromium.org, sadrul, yusukes+watch_chromium.org, derat+watch_chromium.org, ben+watch_chromium.org, mazda+watch_chromium.org, arv (Not doing code reviews), oshima+watch_chromium.org, stevenjb+watch_chromium.org, davemoore+watch_chromium.org, nkostylev+watch_chromium.org, piman, backer, WRONG-USE-chromium
Visibility:
Public.

Description

Add power-user keyboard mode for ChromeOS with Search key acting as a typical Fn key. All new behaviour in this CL is hidden behind the command line flag --enable-chromebook-function-key. Currently the keyboard shortcuts for PageUp, PageDown, Delete, etc are all accessed by holding Alt or Alt+Control. This prevents you from using Alt or Control as a modifier to the desired keyboard shortcut, which prevents access to advanced keyboard shortcuts in applications, and even normal shortcuts such as Control-End to move to the end of the document. This adds a command line flag --enable-chromebook-function-key that adds a checkbox to the Keyboard settings UI. When the checkbox is enabled, the Search key replaces Alt/Control as the modifier used to access advanced keyboard shortcuts such as Home, Delete, etc. The following shortcuts become accessible with the Search key: Search+Up => Page Up Search+Down => Page Down Search+Left => Home Search+Right => End Search+Backspace => Delete R=yusukes@chromium.org BUG=162268 TEST=unit_tests:EventRewriter.TestRewriteBackspaceAndArrowKeys TEST=ash_unittests:AcceleratorControllerTest.GlobalAcceleratorsToggleAppListWithoutSearchAsModifier TEST=ash_unittests:AcceleratorControllerTest.GlobalAcceleratorsToggleAppListWithSearchAsModifier Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=169741

Patch Set 1 #

Patch Set 2 : Add about:flags #

Patch Set 3 : Drop the F1 etc changes #

Patch Set 4 : Don't avoid remapping Alt-Up etc when a PrefService isn't around #

Total comments: 24

Patch Set 5 : Address feedback #

Total comments: 1

Patch Set 6 : Fix unittest #

Total comments: 6

Patch Set 7 : Separate search_as_function_key block in RewriteBackspaceEtc #

Patch Set 8 : Remove DropSearchKey function #

Total comments: 3

Patch Set 9 : ToggleAppList on press #

Total comments: 4

Patch Set 10 : nits #

Total comments: 6

Patch Set 11 : SkyNits #

Unified diffs Side-by-side diffs Delta from patch set Stats (+532 lines, -60 lines) Patch
M ash/accelerators/accelerator_controller.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +25 lines, -0 lines 0 comments Download
M ash/accelerators/accelerator_controller_unittest.cc View 1 2 3 4 5 6 7 8 9 2 chunks +82 lines, -20 lines 0 comments Download
M ash/accelerators/accelerator_table.cc View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -1 line 0 comments Download
M ash/shell/shell_delegate_impl.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M ash/shell/shell_delegate_impl.cc View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M ash/shell_delegate.h View 1 2 3 4 5 6 7 8 1 chunk +4 lines, -0 lines 0 comments Download
M ash/test/test_shell_delegate.h View 1 2 3 4 5 6 7 8 2 chunks +5 lines, -0 lines 0 comments Download
M ash/test/test_shell_delegate.cc View 1 2 3 4 5 6 7 8 2 chunks +5 lines, -0 lines 0 comments Download
M chrome/app/chromeos_strings.grdp View 1 chunk +4 lines, -0 lines 0 comments Download
M chrome/app/generated_resources.grd View 1 chunk +6 lines, -0 lines 0 comments Download
M chrome/browser/about_flags.cc View 1 2 3 4 1 chunk +7 lines, -0 lines 0 comments Download
M chrome/browser/chromeos/login/login_utils.cc View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/chromeos/preferences.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/chromeos/preferences.cc View 1 2 3 4 5 6 2 chunks +5 lines, -0 lines 0 comments Download
M chrome/browser/resources/options/chromeos/keyboard_overlay.html View 1 chunk +19 lines, -0 lines 0 comments Download
M chrome/browser/resources/options/chromeos/keyboard_overlay.js View 1 chunk +9 lines, -0 lines 0 comments Download
M chrome/browser/ui/ash/chrome_shell_delegate.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/ui/ash/chrome_shell_delegate.cc View 1 2 3 4 5 6 7 8 1 chunk +15 lines, -0 lines 0 comments Download
M chrome/browser/ui/ash/event_rewriter.h View 1 2 3 4 5 6 7 1 chunk +7 lines, -0 lines 0 comments Download
M chrome/browser/ui/ash/event_rewriter.cc View 1 2 3 4 5 6 7 2 chunks +83 lines, -34 lines 0 comments Download
M chrome/browser/ui/ash/event_rewriter_unittest.cc View 1 2 3 4 4 chunks +213 lines, -0 lines 0 comments Download
M chrome/browser/ui/webui/options/chromeos/keyboard_handler.cc View 1 2 3 4 2 chunks +18 lines, -5 lines 0 comments Download
M chrome/common/chrome_switches.h View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M chrome/common/chrome_switches.cc View 1 2 3 4 1 chunk +6 lines, -0 lines 0 comments Download
M chrome/common/pref_names.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M chrome/common/pref_names.cc View 1 2 3 4 5 6 1 chunk +5 lines, -0 lines 0 comments Download

Messages

Total messages: 24 (0 generated)
danakj
8 years, 1 month ago (2012-11-23 04:51:45 UTC) #1
Yusuke Sato
Thanks a lot for working on this! Did initial review. nit: TEST= line is missing. ...
8 years ago (2012-11-26 06:09:37 UTC) #2
Yusuke Sato
https://codereview.chromium.org/11421055/diff/3019/chrome/browser/ui/ash/event_rewriter.cc File chrome/browser/ui/ash/event_rewriter.cc (right): https://codereview.chromium.org/11421055/diff/3019/chrome/browser/ui/ash/event_rewriter.cc#newcode660 chrome/browser/ui/ash/event_rewriter.cc:660: const bool search_as_function_key = pref_service && please do either ...
8 years ago (2012-11-26 07:58:11 UTC) #3
danakj
Thanks for the review. Some thoughts/questions about Search as a modifier and apps menu interactions. ...
8 years ago (2012-11-26 17:20:15 UTC) #4
danakj
The only release-accelerator is now Search-key by itself to toggle the Apps menu. I think ...
8 years ago (2012-11-26 19:36:26 UTC) #5
Wez
Why do you want an about:flags setting for this, rather than surfacing it alongside the ...
8 years ago (2012-11-26 20:50:51 UTC) #6
danakj
On 2012/11/26 20:50:51, Wez wrote: > Why do you want an about:flags setting for this, ...
8 years ago (2012-11-26 21:01:30 UTC) #7
Yusuke Sato
https://codereview.chromium.org/11421055/diff/3019/ash/accelerators/accelerator_table.cc File ash/accelerators/accelerator_table.cc (right): https://codereview.chromium.org/11421055/diff/3019/ash/accelerators/accelerator_table.cc#newcode114 ash/accelerators/accelerator_table.cc:114: { false, ui::VKEY_LWIN, ui::EF_NONE, TOGGLE_APP_LIST }, Oh now I ...
8 years ago (2012-11-26 21:15:04 UTC) #8
danakj
https://codereview.chromium.org/11421055/diff/3053/chrome/browser/ui/ash/event_rewriter.cc File chrome/browser/ui/ash/event_rewriter.cc (right): https://codereview.chromium.org/11421055/diff/3053/chrome/browser/ui/ash/event_rewriter.cc#newcode772 chrome/browser/ui/ash/event_rewriter.cc:772: drop_key = true; On 2012/11/26 21:15:05, Yusuke Sato wrote: ...
8 years ago (2012-11-26 21:17:59 UTC) #9
Yusuke Sato
https://codereview.chromium.org/11421055/diff/3053/chrome/browser/ui/ash/event_rewriter.cc File chrome/browser/ui/ash/event_rewriter.cc (right): https://codereview.chromium.org/11421055/diff/3053/chrome/browser/ui/ash/event_rewriter.cc#newcode772 chrome/browser/ui/ash/event_rewriter.cc:772: drop_key = true; On 2012/11/26 21:17:59, danakj wrote: > ...
8 years ago (2012-11-26 21:26:33 UTC) #10
danakj
PTAL. I spoke to rbyers@ and he said that we should keep this behind the ...
8 years ago (2012-11-26 21:47:50 UTC) #11
Yusuke Sato
final comment.. https://codereview.chromium.org/11421055/diff/4022/ash/accelerators/accelerator_table.cc File ash/accelerators/accelerator_table.cc (right): https://codereview.chromium.org/11421055/diff/4022/ash/accelerators/accelerator_table.cc#newcode114 ash/accelerators/accelerator_table.cc:114: { false, ui::VKEY_LWIN, ui::EF_NONE, TOGGLE_APP_LIST }, In ...
8 years ago (2012-11-26 22:22:57 UTC) #12
danakj
https://codereview.chromium.org/11421055/diff/4022/ash/accelerators/accelerator_table.cc File ash/accelerators/accelerator_table.cc (right): https://codereview.chromium.org/11421055/diff/4022/ash/accelerators/accelerator_table.cc#newcode114 ash/accelerators/accelerator_table.cc:114: { false, ui::VKEY_LWIN, ui::EF_NONE, TOGGLE_APP_LIST }, On 2012/11/26 22:22:57, ...
8 years ago (2012-11-26 22:53:46 UTC) #13
Yusuke Sato
https://codereview.chromium.org/11421055/diff/4022/ash/accelerators/accelerator_table.cc File ash/accelerators/accelerator_table.cc (right): https://codereview.chromium.org/11421055/diff/4022/ash/accelerators/accelerator_table.cc#newcode114 ash/accelerators/accelerator_table.cc:114: { false, ui::VKEY_LWIN, ui::EF_NONE, TOGGLE_APP_LIST }, On 2012/11/26 22:53:47, ...
8 years ago (2012-11-26 23:01:49 UTC) #14
danakj
On 2012/11/26 23:01:49, Yusuke Sato wrote: > https://codereview.chromium.org/11421055/diff/4022/ash/accelerators/accelerator_table.cc > File ash/accelerators/accelerator_table.cc (right): > > https://codereview.chromium.org/11421055/diff/4022/ash/accelerators/accelerator_table.cc#newcode114 ...
8 years ago (2012-11-27 00:05:37 UTC) #15
Yusuke Sato
LGTM https://codereview.chromium.org/11421055/diff/14058/ash/accelerators/accelerator_controller.cc File ash/accelerators/accelerator_controller.cc (right): https://codereview.chromium.org/11421055/diff/14058/ash/accelerators/accelerator_controller.cc#newcode452 ash/accelerators/accelerator_controller.cc:452: const ui::EventType previous_event_type = nit: could you define ...
8 years ago (2012-11-27 01:04:38 UTC) #16
danakj
Thanks very much :) https://codereview.chromium.org/11421055/diff/14058/ash/accelerators/accelerator_controller.cc File ash/accelerators/accelerator_controller.cc (right): https://codereview.chromium.org/11421055/diff/14058/ash/accelerators/accelerator_controller.cc#newcode452 ash/accelerators/accelerator_controller.cc:452: const ui::EventType previous_event_type = On ...
8 years ago (2012-11-27 01:44:31 UTC) #17
danakj
+sky could you take a look for OWNERS or suggest someone for it? Thank you!
8 years ago (2012-11-27 01:45:06 UTC) #18
sky
https://codereview.chromium.org/11421055/diff/4031/ash/accelerators/accelerator_controller.cc File ash/accelerators/accelerator_controller.cc (right): https://codereview.chromium.org/11421055/diff/4031/ash/accelerators/accelerator_controller.cc#newcode454 ash/accelerators/accelerator_controller.cc:454: const ui::KeyboardCode previous_key_code = nit: since you only need ...
8 years ago (2012-11-27 02:01:53 UTC) #19
danakj
https://codereview.chromium.org/11421055/diff/4031/ash/accelerators/accelerator_controller.cc File ash/accelerators/accelerator_controller.cc (right): https://codereview.chromium.org/11421055/diff/4031/ash/accelerators/accelerator_controller.cc#newcode454 ash/accelerators/accelerator_controller.cc:454: const ui::KeyboardCode previous_key_code = On 2012/11/27 02:01:53, sky wrote: ...
8 years ago (2012-11-27 02:27:18 UTC) #20
sky
Fair enough, LGTM. I'm not too familiar with EventRewriter. Dan, could you take a look ...
8 years ago (2012-11-27 15:55:25 UTC) #21
Daniel Erat
LGTM for event_rewriter*
8 years ago (2012-11-27 16:16:08 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/danakj@chromium.org/11421055/8057
8 years ago (2012-11-27 18:20:30 UTC) #23
commit-bot: I haz the power
8 years ago (2012-11-27 20:54:34 UTC) #24
Message was sent while issue was closed.
Change committed as 169741

Powered by Google App Engine
This is Rietveld 408576698