Simplify or remove "touch hud projection" feature |
|||||||
Issue descriptionBackground: Users can hit Ctrl-Alt-P to turn on "touch hud projection". This draws a circle on each touch tap, similar to the Android feature. It's useful for demos where you want to project your screen and show where touch events happen (which the audience can't see because they can't see your hands and there is no mouse cursor). While refactoring this code for mustash I noticed some odd behavior: * It doesn't work at the login screen, only after login * It has a profile pref, which means it is saved between sessions * The pref is per-user in a multi-profile session, so the feature will turn on and off as you switch users Per abodenha, usage is low, perhaps 0.06% of 1DAU. It's easy to imagine some of those are people trying to hit Ctrl-P to print and accidentally hitting Ctrl-Alt-P. There's also some touch debugging code behind the flag --ash-touch-hud, which is related but different. The "projection" support, pref and tests is ~1,000 LoC. Options: * Remove the feature. Consider putting ash-touch-hud in about:flags for debugging. * Remove pref support. Just keep as a semi-secret accelerator that you have to hit at the start of the session. * Change to device-wide pref. This would make it work at the login screen and not change across multiprofile users. It might require migration code to wipe the old pref, but that's not hard. * Keep as-is. * Keep as-is and add first-class UI to turn it on. The natural place to do that is in Settings, but we're famously resistant to adding settings. CC some people who worked on this (circa 2013)
,
Nov 16 2017
Note that there's a touch_hud mus app [1] that we worked on a long time back when we were looking into breaking ash into smaller pieces. I think this would be a really good step to move towards the direction of splitting off smaller rarely used features into their own mus apps that can be launched/terminated as needed. (The other one we looked into was autoclick [2]) [1] https://cs.chromium.org/chromium/src/ash/touch_hud/mus/ [2] https://cs.chromium.org/chromium/src/ash/autoclick/mus/
,
Nov 16 2017
Note that for testing or explaining videos, this is useful internally. As we can record the touch points for showing when things don't work. That being said, agreed that for users there is no benefit.
,
Nov 16 2017
at least no clear benefit compared to the chances a user would accidentally invoke it.
,
Nov 16 2017
1-day usage on this ranges from 0.04% to 0.08% in the course of a week. I have a strong suspicion that most of that is accidental usage. There are only 2 use cases that I know of for this: 1: Touch debugging. 2: Demo projecting (showing where the user touched on screen) My strong preference here is to keep the feature (For now. Eventually moving it to an installable mus app as sadrul@ suggests makes a lot of sense) but remove the pref. That will accomplish a few things: 1: Simplify the code 2: Make the feature available everywhere 3: Allow users who accidentally turn this on to escape with a reboot (rather than having to track down help as they do now). I want PM input on this before we make a call though. omrilio@ what do you think?
,
Nov 17 2017
I have the same feeling as you -> most usage is accidental. Also agree with you about removal -> I think it would be good to only have a more advanced entry point and remove the shortcut. Perhaps via a flag? Thoughts?
,
Nov 17 2017
If you'd like it to become a flag just assign this bug to me and I'll take care of it. Note that we already have a flag show-touch-hud, which shows a trail of colored dots for the last ~10 touches. It'll be a bit confusing to have both, but the colored dots definitely aren't suitable for projecting.
,
Nov 17 2017
(You can try show-touch-hud in about:flags today.)
,
Nov 17 2017
Thanks James! Regarding the touch hud flag - from past experience it is extremely slow and adds other information on the screen. I'll check it out later when I get to a touch Chromebook. Assuming it's also okay with you Albert, I'll do a quick check with UI Review to make sure there is no concern.
,
Nov 17 2017
Sounds good Omri.
,
Nov 18 2017
I tested it per comment #9 and I stand corrected about it being slow, it worked nicely now. However, the colors remaining on the screen make use-case 2. in comment #5 impossible. I'll reach out to UI review and get back to you if there are any concerns.
,
Nov 27 2017
Hi there, just looping back that we have agreement from UI review to move this to a flag. In addition, I'd recommend to default the setting to off for all users (including ones who accidentally enabled it) when we do the switch. I've also reviewed that with UI review and they are okay with it. James, can you take ownership?
,
Nov 30 2017
I'm going to call the flag "Show taps" to match the Android Oreo developer option that does the same thing.
,
Dec 1 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0ba192bf79dbac1cc72bd8d677570719b46f761e commit 0ba192bf79dbac1cc72bd8d677570719b46f761e Author: James Cook <jamescook@chromium.org> Date: Fri Dec 01 20:53:11 2017 cros: Convert "touch hud projection" from key shortcut/pref to flag This debugging/presentation feature was tied to Ctrl-Alt-P. Usage is very low per UMA metrics. We suspect most usage was from users mistakenly hitting it when pressing Ctrl-P to print. Since it was tied to a pref the user could get stuck in this state. It also didn't work at the login screen and would turn on and off when switching multiprofile users. This feature is useful for debugging, recording videos of touch bugs, and for projecting demos. UI review suggested moving it to about:flags alongside the other touch debug flags. * Remove the pref and add cleanup code to wipe the existing value. * Remove the accelerator key. * Add --show-taps. The name is inspired by the Android OS developer option that does the same thing. TBR=rockot@chromium.org Bug: 786115 Test: existing ash_unittests Change-Id: I07579bff6ab3dd16ec5c14347df1a047b1aa935c Reviewed-on: https://chromium-review.googlesource.com/802075 Commit-Queue: James Cook <jamescook@chromium.org> Reviewed-by: Dominic Battré <battre@chromium.org> Reviewed-by: James Cook <jamescook@chromium.org> Reviewed-by: Ilya Sherman <isherman@chromium.org> Reviewed-by: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#521058} [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/accelerators/accelerator_commands_classic.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/accelerators/accelerator_commands_classic.h [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/accelerators/accelerator_controller_delegate_classic.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/accelerators/accelerator_controller_delegate_mash.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/accelerators/accelerator_controller_delegate_mash.h [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/accelerators/accelerator_table.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/accelerators/accelerator_table.h [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/accelerators/accelerator_table_unittest.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/public/cpp/ash_pref_names.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/public/cpp/ash_pref_names.h [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/public/cpp/ash_switches.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/public/cpp/ash_switches.h [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/root_window_controller.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/root_window_controller.h [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/shell.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/shell_port_mash.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/touch/touch_devices_controller.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/touch/touch_devices_controller.h [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/touch/touch_devices_controller_unittest.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/ash/touch/touch_observer_hud_unittest.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/chrome/app/chrome_command_ids.h [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/chrome/browser/about_flags.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/chrome/browser/chromeos/login/chrome_restart_request.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/chrome/browser/flag_descriptions.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/chrome/browser/flag_descriptions.h [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/chrome/browser/prefs/browser_prefs.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/chrome/browser/ui/browser_command_controller.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/chrome/browser/ui/views/accelerator_table.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/chrome/browser/ui/views/accelerator_table_unittest.cc [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/tools/metrics/actions/actions.xml [modify] https://crrev.com/0ba192bf79dbac1cc72bd8d677570719b46f761e/tools/metrics/histograms/enums.xml
,
Dec 1 2017
Are there any people who record screencasts for bugs or who use projection for demos that I should notify about this change?
,
Jul 30
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by jamescook@chromium.org
, Nov 16 2017