ChromeVox: key event handling in mv3 Key event handling is more complex in mv3. Currently it is asynchronous due to communication between the offscreen document and service worker, which introduces bugs where some key events are not properly canceled. This change fixes key event handling so that it works properly in mv3. Summary of changes: 1. AccessibilityEventRewriter cancels and stores all registered key events in a queue 2. Key events are sent to the ChromeVox extension using a new accessibility private API event 3. The extension handles the custom key events, then uses a new extension API to tell AccessibilityEventRewriter how to handle the events 4. AccessibilityEventRewriter either drops or propagates key events depending on the request from ChromeVox Please see this design document for full details: https://docs.google.com/document/d/1MRyDZ6wUzGMjdwPDr-zry1ahHm7yoMM3QyyHeWZgess/edit?usp=sharing Bug: 388867840 Change-Id: I6b39af34efbb13b8775685807481d2489c04a5b3 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6802641 Reviewed-by: David Tseng <dtseng@chromium.org> Reviewed-by: Andrea Orru <andreaorru@chromium.org> Reviewed-by: James Cook <jamescook@chromium.org> Reviewed-by: Kelvin Jiang <kelvinjiang@chromium.org> Commit-Queue: Akihiro Ota <akihiroota@chromium.org> Cr-Commit-Position: refs/heads/main@{#1521517} NOKEYCHECK=True GitOrigin-RevId: 506a6277d6e6172c788f4883eae329bcc7d184d2 
1 file changed