Skip to content

Conversation

@knopp
Copy link
Member

@knopp knopp commented Oct 19, 2023

flutter/engine#46829 changed event handling sequence on web so that KeyboardBinding/RawKeyboard handles the text event first before it reaches IME. That means when dispatching synthetised events to IME every keydown event must have a corresponding keyup, otherwise consistency assertions in KeyboardBindings are triggered.

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, including Features we expect every widget to implement.
  • I signed the CLA.
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is test-exempt.
  • 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 a: text input Entering text in a text field or keyboard related problems label Oct 19, 2023
@knopp knopp force-pushed the web_integrations_key_up branch 3 times, most recently from bd2dc50 to d514222 Compare October 19, 2023 08:24
@knopp knopp requested a review from dkwingsmt October 19, 2023 08:24
@knopp knopp force-pushed the web_integrations_key_up branch from d514222 to 0d4d7fd Compare October 19, 2023 20:45
@knopp knopp force-pushed the web_integrations_key_up branch 2 times, most recently from 460685e to a6cefea Compare November 2, 2023 14:08
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.

LGTM

@knopp knopp force-pushed the web_integrations_key_up branch from a6cefea to 1701853 Compare November 3, 2023 13:05
@knopp knopp merged commit 62bd487 into flutter:master Nov 3, 2023
@knopp knopp deleted the web_integrations_key_up branch November 3, 2023 13:44
knopp added a commit to flutter/engine that referenced this pull request Nov 3, 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].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 3, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 4, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 4, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 4, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 4, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 5, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 5, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 6, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 6, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 6, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 6, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 6, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 6, 2023
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Nov 6, 2023
Roll Flutter from 29b2516 to f5a9835 (101 revisions)

flutter/flutter@29b2516...f5a9835

2023-11-06 gspencergoog@users.noreply.github.com Check sample links for malformed links (flutter/flutter#137807)
2023-11-06 iinozemtsev@google.com Change cast in json parsing (flutter/flutter#137708)
2023-11-06 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Update BottomNavigationBar tests for M3" (flutter/flutter#137948)
2023-11-06 engine-flutter-autoroll@skia.org Roll Packages from cccf5d2 to 49eac1f (2 revisions) (flutter/flutter#137943)
2023-11-06 leroux_bruno@yahoo.fr Update BottomNavigationBar tests for M3 (flutter/flutter#136624)
2023-11-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 4f6ed31bd8bd to bdfa8aa8f81f (1 revision) (flutter/flutter#137941)
2023-11-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from b9b3269b0b2c to 4f6ed31bd8bd (2 revisions) (flutter/flutter#137935)
2023-11-06 tessertaha@gmail.com Provide a helpful error message when `ColorScheme.brightness` doesn't match `ThemeData.brightness` (flutter/flutter#137611)
2023-11-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 555ffa17b55c to b9b3269b0b2c (1 revision) (flutter/flutter#137933)
2023-11-06 andrewrkolos@gmail.com Fix tool exit message shown when user provides a non-list to "assets" for a deferred component (flutter/flutter#137837)
2023-11-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 0d8c7ceacc01 to 555ffa17b55c (1 revision) (flutter/flutter#137921)
2023-11-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 11d66db97d3f to 0d8c7ceacc01 (1 revision) (flutter/flutter#137920)
2023-11-05 engine-flutter-autoroll@skia.org Roll Flutter Engine from a7592e42464c to 11d66db97d3f (1 revision) (flutter/flutter#137914)
2023-11-05 engine-flutter-autoroll@skia.org Roll Flutter Engine from 1c6bd97e2288 to a7592e42464c (1 revision) (flutter/flutter#137912)
2023-11-05 engine-flutter-autoroll@skia.org Roll Flutter Engine from daf18fe46b72 to 1c6bd97e2288 (1 revision) (flutter/flutter#137908)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from a45e679828e6 to daf18fe46b72 (1 revision) (flutter/flutter#137904)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from fb2a9c20141e to a45e679828e6 (1 revision) (flutter/flutter#137903)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from 576833873c15 to fb2a9c20141e (1 revision) (flutter/flutter#137900)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from 25f5e285f874 to 576833873c15 (1 revision) (flutter/flutter#137898)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from 7282a5d94ab6 to 25f5e285f874 (2 revisions) (flutter/flutter#137892)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from b66a87626300 to 7282a5d94ab6 (2 revisions) (flutter/flutter#137887)
2023-11-04 sokolovskyi.konstantin@gmail.com HeroController should dispatch creation and disposal events. (flutter/flutter#137835)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from ec20731de6ff to b66a87626300 (1 revision) (flutter/flutter#137877)
2023-11-03 thesonerik@gmail.com InheritedElement.removeDependent() (flutter/flutter#129210)
2023-11-03 goderbauer@google.com Remove unused generic type from BottomSheet (flutter/flutter#137791)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 035740c1f90e to ec20731de6ff (2 revisions) (flutter/flutter#137872)
2023-11-03 dacoharkes@google.com Pin dart-lang/native dependencies (flutter/flutter#137601)
2023-11-03 chris@bracken.jp Send caret rect to embedder on selection update (flutter/flutter#137863)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 677040f10f65 to 035740c1f90e (4 revisions) (flutter/flutter#137871)
2023-11-03 cbobbe@zulip.com Tooltip docs: Recommend setting preferBelow to false in theme (flutter/flutter#135879)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from f363a6e5e093 to 677040f10f65 (2 revisions) (flutter/flutter#137861)
2023-11-03 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Android] Support Android 34" (flutter/flutter#137865)
2023-11-03 sokolovskyi.konstantin@gmail.com InkFeature should dispatch creation and disposal events. (flutter/flutter#137793)
2023-11-03 sokolovskyi.konstantin@gmail.com AppLifecycleListener should dispatch creation and disposal events. (flutter/flutter#137840)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from d5ccb5b1b706 to f363a6e5e093 (2 revisions) (flutter/flutter#137858)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 72262a238090 to d5ccb5b1b706 (3 revisions) (flutter/flutter#137857)
2023-11-03 hans.muller@gmail.com Updated the nested navigation NavigationBar example (flutter/flutter#137788)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 0415a4f5e2a2 to 72262a238090 (2 revisions) (flutter/flutter#137853)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 8531c5935356 to 0415a4f5e2a2 (1 revision) (flutter/flutter#137847)
2023-11-03 jonahwilliams@google.com Roll flutter gallery version forward. (flutter/flutter#137846)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 43653c5a3ec8 to 8531c5935356 (1 revision) (flutter/flutter#137845)
2023-11-03 engine-flutter-autoroll@skia.org Roll Packages from 33c2b4e to cccf5d2 (6 revisions) (flutter/flutter#137841)
2023-11-03 matej.knopp@gmail.com [web] dispatch corresponding keyup events in text editing integrations (flutter/flutter#136874)
2023-11-03 41873024+droidbg@users.noreply.github.com [leak-tracking] Add more leak tracking in test/painting #3 (flutter/flutter#136170)
2023-11-03 polinach@google.com Upgrade leak_tracker and remove some deps in allow list. (flutter/flutter#137806)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from fc7c3f70c076 to 43653c5a3ec8 (1 revision) (flutter/flutter#137827)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 16, 2024
dko5ki23t pushed a commit to dko5ki23t/google_maps_flutter_improved that referenced this pull request May 24, 2025
Roll Flutter from 29b25165cab8 to f5a983535131 (101 revisions)

flutter/flutter@29b2516...f5a9835

2023-11-06 gspencergoog@users.noreply.github.com Check sample links for malformed links (flutter/flutter#137807)
2023-11-06 iinozemtsev@google.com Change cast in json parsing (flutter/flutter#137708)
2023-11-06 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Update BottomNavigationBar tests for M3" (flutter/flutter#137948)
2023-11-06 engine-flutter-autoroll@skia.org Roll Packages from cccf5d24d703 to 49eac1fec6c7 (2 revisions) (flutter/flutter#137943)
2023-11-06 leroux_bruno@yahoo.fr Update BottomNavigationBar tests for M3 (flutter/flutter#136624)
2023-11-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 4f6ed31bd8bd to bdfa8aa8f81f (1 revision) (flutter/flutter#137941)
2023-11-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from b9b3269b0b2c to 4f6ed31bd8bd (2 revisions) (flutter/flutter#137935)
2023-11-06 tessertaha@gmail.com Provide a helpful error message when `ColorScheme.brightness` doesn't match `ThemeData.brightness` (flutter/flutter#137611)
2023-11-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 555ffa17b55c to b9b3269b0b2c (1 revision) (flutter/flutter#137933)
2023-11-06 andrewrkolos@gmail.com Fix tool exit message shown when user provides a non-list to "assets" for a deferred component (flutter/flutter#137837)
2023-11-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 0d8c7ceacc01 to 555ffa17b55c (1 revision) (flutter/flutter#137921)
2023-11-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 11d66db97d3f to 0d8c7ceacc01 (1 revision) (flutter/flutter#137920)
2023-11-05 engine-flutter-autoroll@skia.org Roll Flutter Engine from a7592e42464c to 11d66db97d3f (1 revision) (flutter/flutter#137914)
2023-11-05 engine-flutter-autoroll@skia.org Roll Flutter Engine from 1c6bd97e2288 to a7592e42464c (1 revision) (flutter/flutter#137912)
2023-11-05 engine-flutter-autoroll@skia.org Roll Flutter Engine from daf18fe46b72 to 1c6bd97e2288 (1 revision) (flutter/flutter#137908)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from a45e679828e6 to daf18fe46b72 (1 revision) (flutter/flutter#137904)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from fb2a9c20141e to a45e679828e6 (1 revision) (flutter/flutter#137903)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from 576833873c15 to fb2a9c20141e (1 revision) (flutter/flutter#137900)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from 25f5e285f874 to 576833873c15 (1 revision) (flutter/flutter#137898)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from 7282a5d94ab6 to 25f5e285f874 (2 revisions) (flutter/flutter#137892)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from b66a87626300 to 7282a5d94ab6 (2 revisions) (flutter/flutter#137887)
2023-11-04 sokolovskyi.konstantin@gmail.com HeroController should dispatch creation and disposal events. (flutter/flutter#137835)
2023-11-04 engine-flutter-autoroll@skia.org Roll Flutter Engine from ec20731de6ff to b66a87626300 (1 revision) (flutter/flutter#137877)
2023-11-03 thesonerik@gmail.com InheritedElement.removeDependent() (flutter/flutter#129210)
2023-11-03 goderbauer@google.com Remove unused generic type from BottomSheet (flutter/flutter#137791)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 035740c1f90e to ec20731de6ff (2 revisions) (flutter/flutter#137872)
2023-11-03 dacoharkes@google.com Pin dart-lang/native dependencies (flutter/flutter#137601)
2023-11-03 chris@bracken.jp Send caret rect to embedder on selection update (flutter/flutter#137863)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 677040f10f65 to 035740c1f90e (4 revisions) (flutter/flutter#137871)
2023-11-03 cbobbe@zulip.com Tooltip docs: Recommend setting preferBelow to false in theme (flutter/flutter#135879)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from f363a6e5e093 to 677040f10f65 (2 revisions) (flutter/flutter#137861)
2023-11-03 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Android] Support Android 34" (flutter/flutter#137865)
2023-11-03 sokolovskyi.konstantin@gmail.com InkFeature should dispatch creation and disposal events. (flutter/flutter#137793)
2023-11-03 sokolovskyi.konstantin@gmail.com AppLifecycleListener should dispatch creation and disposal events. (flutter/flutter#137840)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from d5ccb5b1b706 to f363a6e5e093 (2 revisions) (flutter/flutter#137858)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 72262a238090 to d5ccb5b1b706 (3 revisions) (flutter/flutter#137857)
2023-11-03 hans.muller@gmail.com Updated the nested navigation NavigationBar example (flutter/flutter#137788)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 0415a4f5e2a2 to 72262a238090 (2 revisions) (flutter/flutter#137853)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 8531c5935356 to 0415a4f5e2a2 (1 revision) (flutter/flutter#137847)
2023-11-03 jonahwilliams@google.com Roll flutter gallery version forward. (flutter/flutter#137846)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from 43653c5a3ec8 to 8531c5935356 (1 revision) (flutter/flutter#137845)
2023-11-03 engine-flutter-autoroll@skia.org Roll Packages from 33c2b4e53ad7 to cccf5d24d703 (6 revisions) (flutter/flutter#137841)
2023-11-03 matej.knopp@gmail.com [web] dispatch corresponding keyup events in text editing integrations (flutter/flutter#136874)
2023-11-03 41873024+droidbg@users.noreply.github.com [leak-tracking] Add more leak tracking in test/painting #3 (flutter/flutter#136170)
2023-11-03 polinach@google.com Upgrade leak_tracker and remove some deps in allow list. (flutter/flutter#137806)
2023-11-03 engine-flutter-autoroll@skia.org Roll Flutter Engine from fc7c3f70c076 to 43653c5a3ec8 (1 revision) (flutter/flutter#137827)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: text input Entering text in a text field or keyboard related problems

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants