Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Reland: [web] Ensure handled key event is not propagated to IME #47099

Conversation

knopp
Copy link
Member

@knopp knopp commented Oct 19, 2023

This PR relands #46829, which got reverted in #47086 because of flutter/flutter#136857.

There are no changes in the PR compared to the reverted one. The issue are missing keyup events in the integration test, which triggers assertion in KeyboardBindings and which should be fixed by flutter/flutter#136874.

Changes:

  • Raw keyboard event is handled during capture phase. This is to ensure that the framework processes the event before reaching to IME text area and raw keyboard can stop the propagation for handled events.
  • RawKeyboard event handler is invoked from KeyboardBinding event handler. This is to prevent race condition because both handlers now run in capture phase and KeyboardBinding needs to process the event first.

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or the PR is test-exempt. See testing the engine for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added the platform-web Code specifically for the web engine label Oct 19, 2023
@knopp knopp force-pushed the reland_136460_web_no_propagate_handled_event_to_ime branch from a7879a1 to 57b0044 Compare October 23, 2023 13:53
Copy link
Contributor

@dkwingsmt dkwingsmt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RSLGTM

@knopp knopp force-pushed the reland_136460_web_no_propagate_handled_event_to_ime branch from 57b0044 to 8bce406 Compare November 3, 2023 13:47
@knopp knopp merged commit 8531c59 into flutter:main Nov 3, 2023
@knopp knopp deleted the reland_136460_web_no_propagate_handled_event_to_ime branch November 3, 2023 14:50
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 3, 2023
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Nov 3, 2023
…137845)

flutter/engine@43653c5...8531c59

2023-11-03 [email protected] Reland: [web] Ensure handled key event is not propagated to IME (flutter/engine#47099)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected],[email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
platform-web Code specifically for the web engine
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants