New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 647781 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
Team-Accessibility

Blocked on:
issue 884394

Blocking:
issue 557397
issue 678820
issue 854025



Sign in to add a comment

mash: Support EventRewriterController and its rewriters

Project Member Reported by msw@chromium.org, Sep 16 2016

Issue description

mash: Support EventRewriterController and its rewriters.

These depend on an ash::Shell instance in Chrome.
Currently, they aren't created/initialized in Mash.
 

Comment 1 by sadrul@chromium.org, Sep 16 2016

Cc: -sadrul@chromium.org kpschoedel@chromium.org
Labels: Proj-Mustash-Mus-WS
Owner: sadrul@chromium.org
Event rewriters will need to live in the mus window server. kpschoedel@ and I have been discussing about this for a bit. (it's not clear yet who can work on this)
Project Member

Comment 2 by bugdroid1@chromium.org, Sep 18 2016

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

commit 9ea2a739531edffad0859fdfd0a53f1f039026e4
Author: msw <msw@chromium.org>
Date: Sun Sep 18 14:58:38 2016

mash: Avoid KeyboardDrivenEventRewriter::GetInstance crash.

Avoid mash null dcheck/deref with --login-manager.

BUG=647781, 647039 
TEST=No crash running chrome --mash --login-manager
R=alemate@chromium.org,xiyuan@chromium.org

Review-Url: https://codereview.chromium.org/2345333002
Cr-Commit-Position: refs/heads/master@{#419399}

[modify] https://crrev.com/9ea2a739531edffad0859fdfd0a53f1f039026e4/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/9ea2a739531edffad0859fdfd0a53f1f039026e4/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc

Project Member

Comment 3 by sheriffbot@chromium.org, Sep 18 2017

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 4 by msw@chromium.org, Apr 4 2018

Cc: jamescook@chromium.org dmazz...@chromium.org sadrul@chromium.org warx@chromium.org
Components: UI>Input UI>Accessibility
Labels: -Hotlist-Recharge-Cold -Proj-Mustash-Mus-WS
Owner: msw@chromium.org
Status: Assigned (was: Untriaged)
I'm coming up to speed here and hoping that I'll have a proposal soon.
dmazzoni@ had some good notes in related Issue 594887.
 Issue 628665  and Issue 826529 are also somewhat related.
Components: Internals>Services>Ash
Labels: -Proj-Mustash-Mash
Project Member

Comment 6 by bugdroid1@chromium.org, Apr 26 2018

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

commit efbf340998a2e47dd613c612e7455853ddc86528
Author: Mike Wasserman <msw@chromium.org>
Date: Thu Apr 26 00:41:32 2018

mash: Move EventRewriterController to ash

Move the files to ash and ownership to Shell.

Bug: 647781
Change-Id: I1efe7dec0d9cd429f3ed9ff2295c612c90ffa800
Reviewed-on: https://chromium-review.googlesource.com/1028980
Commit-Queue: Michael Wasserman <msw@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553853}
[modify] https://crrev.com/efbf340998a2e47dd613c612e7455853ddc86528/ash/BUILD.gn
[rename] https://crrev.com/efbf340998a2e47dd613c612e7455853ddc86528/ash/event_rewriter_controller.cc
[rename] https://crrev.com/efbf340998a2e47dd613c612e7455853ddc86528/ash/event_rewriter_controller.h
[modify] https://crrev.com/efbf340998a2e47dd613c612e7455853ddc86528/ash/shell.cc
[modify] https://crrev.com/efbf340998a2e47dd613c612e7455853ddc86528/ash/shell.h
[modify] https://crrev.com/efbf340998a2e47dd613c612e7455853ddc86528/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/efbf340998a2e47dd613c612e7455853ddc86528/chrome/browser/chromeos/DEPS
[modify] https://crrev.com/efbf340998a2e47dd613c612e7455853ddc86528/chrome/browser/chromeos/accessibility/select_to_speak_event_handler_unittest.cc
[modify] https://crrev.com/efbf340998a2e47dd613c612e7455853ddc86528/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/efbf340998a2e47dd613c612e7455853ddc86528/chrome/browser/chromeos/chrome_browser_main_chromeos.h

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 30 2018

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

commit 5623bac2a769a99891cdf36197d2dc14edaddd89
Author: Mike Wasserman <msw@chromium.org>
Date: Mon Apr 30 17:24:32 2018

mash: Move KeyboardDrivenEventRewriter to ash, add mojo interface

Make EventRewriterController create the keyboard rewriter itself.
Simplify EventRewriterController, add rewriters immediately.

Add ash::mojom::EventRewriterController for use by Chrome/OOBE.
(one central interface seems better than one for each rewriter)

This should allow Mash to support this rewriter in the future.
(for now, Ash doesn't get Window Service events sent to Chrome)

Bug: 647781
Test: No Hangouts Meet keyboard driven OOBE regressions; see Issue 251272
Change-Id: I7b731298d612b1d93dab825b12a9d36431d1b711
Reviewed-on: https://chromium-review.googlesource.com/1033424
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Michael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554801}
[modify] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/BUILD.gn
[delete] https://crrev.com/abd1d146b2db07f17b6474de803adc34abaec3b5/ash/event_rewriter_controller.cc
[delete] https://crrev.com/abd1d146b2db07f17b6474de803adc34abaec3b5/ash/event_rewriter_controller.h
[add] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/events/event_rewriter_controller.cc
[add] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/events/event_rewriter_controller.h
[rename] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/events/keyboard_driven_event_rewriter.cc
[rename] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/events/keyboard_driven_event_rewriter.h
[rename] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/events/keyboard_driven_event_rewriter_unittest.cc
[modify] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/manifest.json
[modify] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/mojo_interface_factory.cc
[modify] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/public/interfaces/BUILD.gn
[add] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/public/interfaces/event_rewriter_controller.mojom
[modify] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/shell.cc
[modify] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/ash/standalone/manifest.json
[modify] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/chrome/browser/chromeos/DEPS
[modify] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/5623bac2a769a99891cdf36197d2dc14edaddd89/chrome/browser/ui/webui/chromeos/login/core_oobe_handler.cc

Project Member

Comment 8 by bugdroid1@chromium.org, May 3 2018

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

commit 55b083a66d242a8c7319a56184196af71354b88c
Author: Mike Wasserman <msw@chromium.org>
Date: Thu May 03 21:02:03 2018

mash: Move SpokenFeedbackEventRewriter to ash; add mojo delegate

Move the rewriter files to ash, keep the delegate impl in chrome.
Add a mojo interface for the delegate to receive and return events.
Ash's controller creates the rewriter, Chrome sets the delegate.

Move, expand, and refine the existing unit tests.

Add TODOs to refine the rewriter/delegate/ChromeVox pattern.
(the rewriter shouldn't pass events that will need to be reposted)

This should allow Mash to support this rewriter in the future.
(for now, Ash doesn't get Window Service events sent to Chrome)

Bug: 647781
Test: No regressions with ChromeVox spoken feedback on Chrome OS.
Change-Id: I4f7805298156ab9463ca3110a1e957f922c6d82b
Reviewed-on: https://chromium-review.googlesource.com/1038819
Commit-Queue: Michael Wasserman <msw@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555867}
[modify] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/ash/BUILD.gn
[add] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/ash/events/OWNERS
[modify] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/ash/events/event_rewriter_controller.cc
[modify] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/ash/events/event_rewriter_controller.h
[add] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/ash/events/spoken_feedback_event_rewriter.cc
[add] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/ash/events/spoken_feedback_event_rewriter.h
[add] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/ash/events/spoken_feedback_event_rewriter_unittest.cc
[modify] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/ash/public/interfaces/event_rewriter_controller.mojom
[modify] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/chrome/browser/chromeos/BUILD.gn
[delete] https://crrev.com/b12b2d3be5930b849f92577db5cb00d5ce092f45/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter.cc
[delete] https://crrev.com/b12b2d3be5930b849f92577db5cb00d5ce092f45/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter.h
[add] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_delegate.cc
[add] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_delegate.h
[delete] https://crrev.com/b12b2d3be5930b849f92577db5cb00d5ce092f45/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_unittest.cc
[modify] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/55b083a66d242a8c7319a56184196af71354b88c/chrome/browser/chromeos/chrome_browser_main_chromeos.h

Project Member

Comment 9 by bugdroid1@chromium.org, May 4 2018

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

commit 663ac7270ab72aefda38b1397109fa3282deadf6
Author: David Tseng <dtseng@chromium.org>
Date: Fri May 04 16:42:25 2018

Revert "mash: Move SpokenFeedbackEventRewriter to ash; add mojo delegate"

This reverts commit 55b083a66d242a8c7319a56184196af71354b88c.

Reason for revert:
https://bugs.chromium.org/p/chromium/issues/detail?id=839683#c1
As a guess, key events used to go to SpokenFeedbackEventRewriter then KeyboardDrivenEventRewriter.

Original change's description:
> mash: Move SpokenFeedbackEventRewriter to ash; add mojo delegate
>
> Move the rewriter files to ash, keep the delegate impl in chrome.
> Add a mojo interface for the delegate to receive and return events.
> Ash's controller creates the rewriter, Chrome sets the delegate.
>
> Move, expand, and refine the existing unit tests.
>
> Add TODOs to refine the rewriter/delegate/ChromeVox pattern.
> (the rewriter shouldn't pass events that will need to be reposted)
>
> This should allow Mash to support this rewriter in the future.
> (for now, Ash doesn't get Window Service events sent to Chrome)
>
> Bug: 647781
> Test: No regressions with ChromeVox spoken feedback on Chrome OS.
> Change-Id: I4f7805298156ab9463ca3110a1e957f922c6d82b
> Reviewed-on: https://chromium-review.googlesource.com/1038819
> Commit-Queue: Michael Wasserman <msw@chromium.org>
> Reviewed-by: Tom Sepez <tsepez@chromium.org>
> Reviewed-by: James Cook <jamescook@chromium.org>
> Reviewed-by: David Tseng <dtseng@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#555867}

TBR=jamescook@chromium.org,dmazzoni@chromium.org,msw@chromium.org,dtseng@chromium.org,tsepez@chromium.org


No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 647781,  839683 
Change-Id: I8103916c1df3013d093cc6cdeac5745b6cd051d0
Reviewed-on: https://chromium-review.googlesource.com/1044492
Reviewed-by: David Tseng <dtseng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556086}
[modify] https://crrev.com/663ac7270ab72aefda38b1397109fa3282deadf6/ash/BUILD.gn
[delete] https://crrev.com/71e82edb257d2c687861e79174bea4cd07b9b03f/ash/events/OWNERS
[modify] https://crrev.com/663ac7270ab72aefda38b1397109fa3282deadf6/ash/events/event_rewriter_controller.cc
[modify] https://crrev.com/663ac7270ab72aefda38b1397109fa3282deadf6/ash/events/event_rewriter_controller.h
[delete] https://crrev.com/71e82edb257d2c687861e79174bea4cd07b9b03f/ash/events/spoken_feedback_event_rewriter.cc
[delete] https://crrev.com/71e82edb257d2c687861e79174bea4cd07b9b03f/ash/events/spoken_feedback_event_rewriter.h
[delete] https://crrev.com/71e82edb257d2c687861e79174bea4cd07b9b03f/ash/events/spoken_feedback_event_rewriter_unittest.cc
[modify] https://crrev.com/663ac7270ab72aefda38b1397109fa3282deadf6/ash/public/interfaces/event_rewriter_controller.mojom
[modify] https://crrev.com/663ac7270ab72aefda38b1397109fa3282deadf6/chrome/browser/chromeos/BUILD.gn
[add] https://crrev.com/663ac7270ab72aefda38b1397109fa3282deadf6/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter.cc
[add] https://crrev.com/663ac7270ab72aefda38b1397109fa3282deadf6/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter.h
[delete] https://crrev.com/71e82edb257d2c687861e79174bea4cd07b9b03f/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_delegate.cc
[delete] https://crrev.com/71e82edb257d2c687861e79174bea4cd07b9b03f/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_delegate.h
[add] https://crrev.com/663ac7270ab72aefda38b1397109fa3282deadf6/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_unittest.cc
[modify] https://crrev.com/663ac7270ab72aefda38b1397109fa3282deadf6/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/663ac7270ab72aefda38b1397109fa3282deadf6/chrome/browser/chromeos/chrome_browser_main_chromeos.h

Project Member

Comment 10 by bugdroid1@chromium.org, May 7 2018

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

commit b6d58e56044f5667d8cd83cea239894dff10670e
Author: Mike Wasserman <msw@chromium.org>
Date: Mon May 07 16:05:00 2018

Reland mash: Move SpokenFeedbackEventRewriter to ash; add mojo delegate

The original crrev.com/c/1038819 broke volume keys:  crbug.com/839683 
PS2 fixes that by reposting events to other rewriters and adds a test.

ORIGINAL CHANGE DESCRIPTION FOLLOWS:

Move the rewriter files to ash, keep the delegate impl in chrome.
Add a mojo interface for the delegate to receive and return events.
Ash's controller creates the rewriter, Chrome sets the delegate.

Move, expand, and refine the existing unit tests.

Add TODOs to refine the rewriter/delegate/ChromeVox pattern.
(the rewriter shouldn't pass events that will need to be reposted)

This should allow Mash to support this rewriter in the future.
(for now, Ash doesn't get Window Service events sent to Chrome)

TBR=jamescook@chromium.org

Bug: 647781
Test: No regressions with ChromeVox spoken feedback on Chrome OS.
Change-Id: Id2e778fa3a82aee7f568244a5c2596ab86919a1d
Reviewed-on: https://chromium-review.googlesource.com/1044780
Commit-Queue: Michael Wasserman <msw@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556458}
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ash/BUILD.gn
[add] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ash/events/OWNERS
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ash/events/event_rewriter_controller.cc
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ash/events/event_rewriter_controller.h
[add] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ash/events/spoken_feedback_event_rewriter.cc
[add] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ash/events/spoken_feedback_event_rewriter.h
[add] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ash/events/spoken_feedback_event_rewriter_unittest.cc
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ash/public/interfaces/event_rewriter_controller.mojom
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/chrome/browser/chromeos/BUILD.gn
[delete] https://crrev.com/c83f8839de1fa92cb0aecaabb25ad481419021cc/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter.cc
[delete] https://crrev.com/c83f8839de1fa92cb0aecaabb25ad481419021cc/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter.h
[add] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_delegate.cc
[add] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_delegate.h
[delete] https://crrev.com/c83f8839de1fa92cb0aecaabb25ad481419021cc/chrome/browser/chromeos/accessibility/spoken_feedback_event_rewriter_unittest.cc
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/chrome/browser/chromeos/chrome_browser_main_chromeos.h
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ui/events/BUILD.gn
[add] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ui/events/event_rewriter.cc
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ui/events/event_rewriter.h
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ui/events/event_source.cc
[modify] https://crrev.com/b6d58e56044f5667d8cd83cea239894dff10670e/ui/events/event_source.h

Blocking: 678820

Comment 12 by sky@chromium.org, Jun 21 2018

Blocking: 854025
Labels: Proj-Mustash
Cc: msw@chromium.org sky@chromium.org
 Issue 873742  has been merged into this issue.
Blocking: 557397
This is blocking accelerator-key screenshot support (crbug.com/557397)
Labels: -Proj-Mustash Proj-Mash-SingleProcess
Blockedon: 884394
Labels: Pri-2
Labels: -Proj-Mash-SingleProcess Proj-Mash-MultiProcess
As far as I can tell, all the EventRewriters are hooked up okay for SingleProcessMash.
Unfortunately, the accessibility features using them seem to be blocked on Issue 888145.

Sign in to add a comment