New issue
Advanced search Search tips

Issue 859797 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 17
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug
Team-Accessibility



Sign in to add a comment

No key event is passed to Android if spoken feedback is enabled

Project Member Reported by yawano@chromium.org, Jul 3

Issue description

If spoken feedback is enabled, SpokenFeedbackEventRewriter reposts event. It causes an issue similar to  issue 859071 . No key event is passed to Android side.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3091d1277645703609b1e3cdc3f4c46ee0151257

commit 3091d1277645703609b1e3cdc3f4c46ee0151257
Author: David Tseng <dtseng@chromium.org>
Date: Tue Jul 10 13:30:20 2018

Migrate SpokenFeedbackEventRewriterDelegate capture to ash::SpokenFeedbackRewriter

Key events, for accessibility extensions, flow through the ash, chrome, and extension processes.

When keys first go through ash, the keys are all discarded, and sent to the chrome process.

In the chrome process, SpokenFeedbackEventRewriterDelegate sometimes captured the key events, sometimes didn't. When captured, the keys would not be reposted to ash.

This change moves the logic from SpokenFeedbackEventRewriterDelegate to the ash process (into SpokenFeedbackEventRewriter) that decides whether a key is supposed to be captured. We therefore can decide whether a key should be discarded or continue propagation earlier without needing to repost/reinject the key event.

This has some benefits and fixes the below bug.

Bug:  859797 
Change-Id: If6c107cef6ccf4d2751bf70a2b28c0c0e0e7a056
Reviewed-on: https://chromium-review.googlesource.com/1124674
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: David Tseng <dtseng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573706}
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/ash/events/event_rewriter_controller.cc
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/ash/events/event_rewriter_controller.h
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/ash/events/spoken_feedback_event_rewriter.cc
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/ash/events/spoken_feedback_event_rewriter.h
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/ash/events/spoken_feedback_event_rewriter_unittest.cc
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/ash/public/interfaces/event_rewriter_controller.mojom
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/chrome/browser/accessibility/accessibility_extension_api.cc
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/chrome/browser/chromeos/accessibility/accessibility_manager.cc
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/chrome/browser/chromeos/accessibility/accessibility_manager.h
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_delegate.cc
[modify] https://crrev.com/3091d1277645703609b1e3cdc3f4c46ee0151257/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_delegate.h

Project Member

Comment 2 by bugdroid1@chromium.org, Jul 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/421412e7cce9db9512c8e4b816323aa0eed0def5

commit 421412e7cce9db9512c8e4b816323aa0eed0def5
Author: Yuichiro Hanada <yhanada@chromium.org>
Date: Fri Jul 13 09:07:50 2018

Send synthetic key events to ARC++ apps.

crrev.com/c/1112967 adds a check that sending key events is native or
not and synthetic key events were not sent to exo clients after the CL.
The check was introduced to make sure key press event and key release
event always have the same key code. It's needed for Crostini apps
tracking pressed key sets by observing key press/release events.
However, after the CL, all synthetic events (for example, the back
button on the shelf or keyboard navigation when ChromeVox is enabled)
were not sent to ARC++ apps anymore.
This CL is a quick hack for fixing this problem on ARC++ apps. We have
to find a cleaner way to fix all problems later.

Bug:  859071 ,  859797 ,  847500 ,  859797 ,  862140 
Test: Confirmed the back button on the shelf works on ARC++ apps.
Change-Id: Ia1da441cca8bc43687327b69cccf16fb8692046b
Reviewed-on: https://chromium-review.googlesource.com/1133102
Commit-Queue: Yuichiro Hanada <yhanada@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574866}
[modify] https://crrev.com/421412e7cce9db9512c8e4b816323aa0eed0def5/components/exo/keyboard.cc
[modify] https://crrev.com/421412e7cce9db9512c8e4b816323aa0eed0def5/components/exo/keyboard.h
[modify] https://crrev.com/421412e7cce9db9512c8e4b816323aa0eed0def5/components/exo/notification_surface.cc

Owner: yhanada@chromium.org
Status: Fixed (was: Available)
Maybe the CL by David already fixed the issue, but my CL should fix the root cause.

Sign in to add a comment