Clarify RouterDelegate popRoute bubbling#186875
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the documentation for RouterDelegate.popRoute to clarify the behavior of its return values and the propagation of pop requests through nested routers. Feedback suggests refining the terminology to more accurately describe the platform's response to SystemNavigator.pop and using the term 'bubbling' to improve clarity regarding event propagation.
734c7c2 to
74bc85b
Compare
|
Addressed Gemini wording feedback in head Verification rerun:
|
justinmc
left a comment
There was a problem hiding this comment.
LGTM 👍 Looks perfect to me, thanks for making these docs better! You're right that they did not consider a nested navigation scenario.
|
autosubmit label was removed for flutter/flutter/186875, because The base commit of the PR is older than 7 days and can not be merged. Please merge the latest changes from the main into this branch and resubmit the PR. |
Roll Flutter from 2ba5420a7049 to 1bdf4af29076 (43 revisions) flutter/flutter@2ba5420...1bdf4af 2026-06-05 [email protected] Roll Packages from 03352b5 to 61bdbb4 (5 revisions) (flutter/flutter#187612) 2026-06-05 [email protected] Roll Skia from 6e003d7f69c8 to a47a9a2c8ae5 (1 revision) (flutter/flutter#187610) 2026-06-05 [email protected] Roll Dart SDK from aad8be4ce307 to 6a9a0efe66eb (10 revisions) (flutter/flutter#187609) 2026-06-05 [email protected] Roll Skia from 494f1bf55f51 to 6e003d7f69c8 (2 revisions) (flutter/flutter#187607) 2026-06-05 [email protected] Roll Fuchsia Linux SDK from ZE1Jy9CtVVi-tjBAE... to N_LiSaBSUsE2LDZgG... (flutter/flutter#187597) 2026-06-05 [email protected] Roll Skia from 59556fdb8c33 to 494f1bf55f51 (2 revisions) (flutter/flutter#187596) 2026-06-04 [email protected] Roll Skia from 8eb107046fd5 to 59556fdb8c33 (1 revision) (flutter/flutter#187590) 2026-06-04 [email protected] Remove `embedded_android_views_integration_test.dart` (flutter/flutter#187465) 2026-06-04 [email protected] Remove Material imports from rendering editable tests (flutter/flutter#186951) 2026-06-04 [email protected] [Impeller] Wait for the Vulkan device to become idle before destroying Vulkan objects in the AHBSwapchainImplVK destructor (flutter/flutter#187477) 2026-06-04 [email protected] [iOS] Eliminate unnecessary redeclaration of FlutterDisplayLink (flutter/flutter#187557) 2026-06-04 [email protected] Roll Skia from 928ded2a31af to 8eb107046fd5 (1 revision) (flutter/flutter#187583) 2026-06-04 [email protected] Log stdout in adb.dart (flutter/flutter#187531) 2026-06-04 [email protected] Clarify RouterDelegate popRoute bubbling (flutter/flutter#186875) 2026-06-04 [email protected] Roll Skia from 928ded2a31af to 8eb107046fd5 (1 revision) (flutter/flutter#187584) 2026-06-04 [email protected] Add updating-android-sdk agent skill for rolling Android SDK in CIPD (flutter/flutter#187576) 2026-06-04 [email protected] Fixing alignment issue (flutter/flutter#187518) 2026-06-04 [email protected] [Material Cross Imports] Clean up Material Divider usages (flutter/flutter#187300) 2026-06-04 [email protected] Roll Skia from cecc0e0da9ae to 928ded2a31af (6 revisions) (flutter/flutter#187574) 2026-06-04 [email protected] Use swift demangle to verify internal Swift symbols (flutter/flutter#186835) 2026-06-04 [email protected] Add android 37 platform and build tools to script for android cipd bundle creation (flutter/flutter#187571) 2026-06-04 [email protected] [Impeller] Increase the precision of the IPSampleWithTileModeOES coords parameter to match the input coordinates in the tiled_texture_fill_external shader (flutter/flutter#187545) 2026-06-04 [email protected] Roll Packages from b11504f to 03352b5 (4 revisions) (flutter/flutter#187569) 2026-06-04 [email protected] Roll Dart SDK to Dart 3.13 beta2 (flutter/flutter#187555) 2026-06-04 [email protected] Roll Skia from 611e3f8ceb93 to cecc0e0da9ae (1 revision) (flutter/flutter#187562) 2026-06-04 [email protected] Add step to bootstrap Flutter tool in coverage workflow (flutter/flutter#187199) 2026-06-04 [email protected] Roll Skia from 4fdb859c8da7 to 611e3f8ceb93 (4 revisions) (flutter/flutter#187554) 2026-06-04 [email protected] Roll Skia from 0020aae33f63 to 4fdb859c8da7 (2 revisions) (flutter/flutter#187552) 2026-06-04 [email protected] Roll Fuchsia Linux SDK from ap7MhLX4TdpWRrLS_... to ZE1Jy9CtVVi-tjBAE... (flutter/flutter#187550) 2026-06-04 [email protected] Add vector_math to package issue template (flutter/flutter#187536) 2026-06-04 [email protected] Manual roll Dart SDK from d39850bf4a01 to 3b70b98fa7c0 (flutter/flutter#187519) 2026-06-04 [email protected] Roll Skia from d625048c853a to 0020aae33f63 (20 revisions) (flutter/flutter#187539) 2026-06-04 [email protected] [Impeller][Windows] fix black screen on OpenGL fallback (flutter/flutter#187288) 2026-06-04 [email protected] Fix unintentionally joined path contours (flutter/flutter#187522) 2026-06-03 [email protected] fix: resolve issue #177379 by using lazy buildDirectory.dir() API in build.gradle template (flutter/flutter#187127) 2026-06-03 [email protected] Add a skill for flake analysis (flutter/flutter#187530) 2026-06-03 [email protected] adds linux impeller project flag (flutter/flutter#186982) 2026-06-03 [email protected] Add support for stylus buttons (flutter/flutter#183369) 2026-06-03 [email protected] Prevent Cubic transform from looping on out-of-range input (flutter/flutter#185875) 2026-06-03 [email protected] [Impeller] Reland: Allow attaching specific texture mip levels and slices (flutter/flutter#187470) 2026-06-03 [email protected] [skia] Update image deserial proc (flutter/flutter#185041) 2026-06-03 [email protected] docs: update Impeller advanced blend docs for framebuffer fetch (flutter/flutter#185457) 2026-06-03 [email protected] Handle#6537 fifth grouped tests (flutter/flutter#183720) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: ...
…r#11849) Roll Flutter from 2ba5420a7049 to 1bdf4af29076 (43 revisions) flutter/flutter@2ba5420...1bdf4af 2026-06-05 [email protected] Roll Packages from 03352b5 to 61bdbb4 (5 revisions) (flutter/flutter#187612) 2026-06-05 [email protected] Roll Skia from 6e003d7f69c8 to a47a9a2c8ae5 (1 revision) (flutter/flutter#187610) 2026-06-05 [email protected] Roll Dart SDK from aad8be4ce307 to 6a9a0efe66eb (10 revisions) (flutter/flutter#187609) 2026-06-05 [email protected] Roll Skia from 494f1bf55f51 to 6e003d7f69c8 (2 revisions) (flutter/flutter#187607) 2026-06-05 [email protected] Roll Fuchsia Linux SDK from ZE1Jy9CtVVi-tjBAE... to N_LiSaBSUsE2LDZgG... (flutter/flutter#187597) 2026-06-05 [email protected] Roll Skia from 59556fdb8c33 to 494f1bf55f51 (2 revisions) (flutter/flutter#187596) 2026-06-04 [email protected] Roll Skia from 8eb107046fd5 to 59556fdb8c33 (1 revision) (flutter/flutter#187590) 2026-06-04 [email protected] Remove `embedded_android_views_integration_test.dart` (flutter/flutter#187465) 2026-06-04 [email protected] Remove Material imports from rendering editable tests (flutter/flutter#186951) 2026-06-04 [email protected] [Impeller] Wait for the Vulkan device to become idle before destroying Vulkan objects in the AHBSwapchainImplVK destructor (flutter/flutter#187477) 2026-06-04 [email protected] [iOS] Eliminate unnecessary redeclaration of FlutterDisplayLink (flutter/flutter#187557) 2026-06-04 [email protected] Roll Skia from 928ded2a31af to 8eb107046fd5 (1 revision) (flutter/flutter#187583) 2026-06-04 [email protected] Log stdout in adb.dart (flutter/flutter#187531) 2026-06-04 [email protected] Clarify RouterDelegate popRoute bubbling (flutter/flutter#186875) 2026-06-04 [email protected] Roll Skia from 928ded2a31af to 8eb107046fd5 (1 revision) (flutter/flutter#187584) 2026-06-04 [email protected] Add updating-android-sdk agent skill for rolling Android SDK in CIPD (flutter/flutter#187576) 2026-06-04 [email protected] Fixing alignment issue (flutter/flutter#187518) 2026-06-04 [email protected] [Material Cross Imports] Clean up Material Divider usages (flutter/flutter#187300) 2026-06-04 [email protected] Roll Skia from cecc0e0da9ae to 928ded2a31af (6 revisions) (flutter/flutter#187574) 2026-06-04 [email protected] Use swift demangle to verify internal Swift symbols (flutter/flutter#186835) 2026-06-04 [email protected] Add android 37 platform and build tools to script for android cipd bundle creation (flutter/flutter#187571) 2026-06-04 [email protected] [Impeller] Increase the precision of the IPSampleWithTileModeOES coords parameter to match the input coordinates in the tiled_texture_fill_external shader (flutter/flutter#187545) 2026-06-04 [email protected] Roll Packages from b11504f to 03352b5 (4 revisions) (flutter/flutter#187569) 2026-06-04 [email protected] Roll Dart SDK to Dart 3.13 beta2 (flutter/flutter#187555) 2026-06-04 [email protected] Roll Skia from 611e3f8ceb93 to cecc0e0da9ae (1 revision) (flutter/flutter#187562) 2026-06-04 [email protected] Add step to bootstrap Flutter tool in coverage workflow (flutter/flutter#187199) 2026-06-04 [email protected] Roll Skia from 4fdb859c8da7 to 611e3f8ceb93 (4 revisions) (flutter/flutter#187554) 2026-06-04 [email protected] Roll Skia from 0020aae33f63 to 4fdb859c8da7 (2 revisions) (flutter/flutter#187552) 2026-06-04 [email protected] Roll Fuchsia Linux SDK from ap7MhLX4TdpWRrLS_... to ZE1Jy9CtVVi-tjBAE... (flutter/flutter#187550) 2026-06-04 [email protected] Add vector_math to package issue template (flutter/flutter#187536) 2026-06-04 [email protected] Manual roll Dart SDK from d39850bf4a01 to 3b70b98fa7c0 (flutter/flutter#187519) 2026-06-04 [email protected] Roll Skia from d625048c853a to 0020aae33f63 (20 revisions) (flutter/flutter#187539) 2026-06-04 [email protected] [Impeller][Windows] fix black screen on OpenGL fallback (flutter/flutter#187288) 2026-06-04 [email protected] Fix unintentionally joined path contours (flutter/flutter#187522) 2026-06-03 [email protected] fix: resolve issue #177379 by using lazy buildDirectory.dir() API in build.gradle template (flutter/flutter#187127) 2026-06-03 [email protected] Add a skill for flake analysis (flutter/flutter#187530) 2026-06-03 [email protected] adds linux impeller project flag (flutter/flutter#186982) 2026-06-03 [email protected] Add support for stylus buttons (flutter/flutter#183369) 2026-06-03 [email protected] Prevent Cubic transform from looping on out-of-range input (flutter/flutter#185875) 2026-06-03 [email protected] [Impeller] Reland: Allow attaching specific texture mip levels and slices (flutter/flutter#187470) 2026-06-03 [email protected] [skia] Update image deserial proc (flutter/flutter#185041) 2026-06-03 [email protected] docs: update Impeller advanced blend docs for framebuffer fetch (flutter/flutter#185457) 2026-06-03 [email protected] Handle#6537 fifth grouped tests (flutter/flutter#183720) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: ...
Fixes flutter#118975. `RouterDelegate.popRoute` said returning false would cause the entire app to be popped, which skips an important nested-router detail. In a nested `Router` setup, returning false means this delegate did not handle the pop request, so the request can continue through a parent `BackButtonDispatcher`; only an unhandled request that reaches the root binding triggers the application pop behavior. Verification: - `./bin/dart format packages/flutter/lib/src/widgets/router.dart` - `./bin/flutter analyze packages/flutter/lib/src/widgets/router.dart` - `git diff --check` Co-authored-by: Mohellebi Abdessalem <[email protected]>
Fixes #118975.
RouterDelegate.popRoutesaid returning false would cause the entire app to be popped, which skips an important nested-router detail. In a nestedRoutersetup, returning false means this delegate did not handle the pop request, so the request can continue through a parentBackButtonDispatcher; only an unhandled request that reaches the root binding triggers the application pop behavior.Verification:
./bin/dart format packages/flutter/lib/src/widgets/router.dart./bin/flutter analyze packages/flutter/lib/src/widgets/router.dartgit diff --check