Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Call onPopInvoked when pages API is used #141221

Merged
merged 4 commits into from
Jan 10, 2024

Conversation

justinmc
Copy link
Contributor

@justinmc justinmc commented Jan 10, 2024

When using PopScope with the Navigator.pages API, PopScope.onPopInvoked is only called when the pop is blocked and not when it's allowed. This PR fixes it by adding a call along that codepath.

Fixes #141189
Fixes Google b/309771402

@justinmc justinmc self-assigned this Jan 10, 2024
@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: routes Navigator, Router, and related APIs. labels Jan 10, 2024
@justinmc justinmc marked this pull request as ready for review January 10, 2024 19:24
Copy link
Member

@goderbauer goderbauer left a comment

Choose a reason for hiding this comment

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

LGTM

testWidgets('popping a page with canPop true still calls onPopInvoked', (WidgetTester tester) async {
final List<_PageWithYesPop> pages = <_PageWithYesPop>[_PageWithYesPop.home];
bool canPop() => pages.length <= 1;
bool onPopInvokedWasCalled = false;
Copy link
Member

Choose a reason for hiding this comment

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

Maybe turn this into a count, so we can be sure it is only invoked once and not multiple times via different code paths?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's a much better idea, thanks.

@justinmc justinmc merged commit 865825c into flutter:master Jan 10, 2024
66 checks passed
@justinmc justinmc deleted the on-pop-invoked-pages branch January 10, 2024 22:29
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 11, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 11, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 11, 2024
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jan 11, 2024
flutter/flutter@b840a60...9f2e681

2024-01-11 dnfield@google.com [Tool][Impeller] Make impellerc produce Vulkan and GLES shaders for Android. (flutter/flutter#140976)
2024-01-11 engine-flutter-autoroll@skia.org Roll Packages from 378e700 to 0744fe6 (6 revisions) (flutter/flutter#141378)
2024-01-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from efd0eb62f4aa to ecdaed76f284 (1 revision) (flutter/flutter#141359)
2024-01-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from ade9f18fa008 to efd0eb62f4aa (2 revisions) (flutter/flutter#141356)
2024-01-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from 42e3e0236112 to ade9f18fa008 (2 revisions) (flutter/flutter#141337)
2024-01-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from f39f5ca18328 to 42e3e0236112 (2 revisions) (flutter/flutter#141327)
2024-01-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from 431d64dbb4b8 to f39f5ca18328 (1 revision) (flutter/flutter#141322)
2024-01-11 katelovett@google.com Add dart fix support to flutter_driver (flutter/flutter#141300)
2024-01-11 polinach@google.com Fix a leak. (flutter/flutter#141312)
2024-01-10 katelovett@google.com Add covariants to reduce subclass casts in 2D APIs (flutter/flutter#141318)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from a045134c910d to 431d64dbb4b8 (2 revisions) (flutter/flutter#141316)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6810c9a57460 to a045134c910d (2 revisions) (flutter/flutter#141313)
2024-01-10 jmccandless@google.com Call onPopInvoked when pages API is used (flutter/flutter#141221)
2024-01-10 polinach@google.com Fix mechanism to pass flag for leak tracking. (flutter/flutter#141226)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5d252831e62c to 6810c9a57460 (2 revisions) (flutter/flutter#141308)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6cb256fc4985 to 5d252831e62c (1 revision) (flutter/flutter#141302)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 52aedc6c9153 to 6cb256fc4985 (1 revision) (flutter/flutter#141297)
2024-01-10 polinach@google.com Improve testing for leak tracking. (flutter/flutter#140553)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from d1a2007a28b4 to 52aedc6c9153 (2 revisions) (flutter/flutter#141291)
2024-01-10 christopherfujino@gmail.com [flutter_tools] fix flutter create -t skeleton (flutter/flutter#141233)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from b361a60ae224 to d1a2007a28b4 (1 revision) (flutter/flutter#141285)
2024-01-10 derekx@google.com Unpin package:vm_service (flutter/flutter#141279)
2024-01-10 stuartmorgan@google.com Collapse pubspec.lock by default (flutter/flutter#141282)
2024-01-10 engine-flutter-autoroll@skia.org Roll Packages from 09205ca to 378e700 (2 revisions) (flutter/flutter#141275)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC camillesimon@google.com,rmistry@google.com,stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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
arc-yong pushed a commit to Arctuition/packages-arc that referenced this pull request Jun 14, 2024
…r#5871)

flutter/flutter@b840a60...9f2e681

2024-01-11 dnfield@google.com [Tool][Impeller] Make impellerc produce Vulkan and GLES shaders for Android. (flutter/flutter#140976)
2024-01-11 engine-flutter-autoroll@skia.org Roll Packages from 378e700 to 0744fe6 (6 revisions) (flutter/flutter#141378)
2024-01-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from efd0eb62f4aa to ecdaed76f284 (1 revision) (flutter/flutter#141359)
2024-01-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from ade9f18fa008 to efd0eb62f4aa (2 revisions) (flutter/flutter#141356)
2024-01-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from 42e3e0236112 to ade9f18fa008 (2 revisions) (flutter/flutter#141337)
2024-01-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from f39f5ca18328 to 42e3e0236112 (2 revisions) (flutter/flutter#141327)
2024-01-11 engine-flutter-autoroll@skia.org Roll Flutter Engine from 431d64dbb4b8 to f39f5ca18328 (1 revision) (flutter/flutter#141322)
2024-01-11 katelovett@google.com Add dart fix support to flutter_driver (flutter/flutter#141300)
2024-01-11 polinach@google.com Fix a leak. (flutter/flutter#141312)
2024-01-10 katelovett@google.com Add covariants to reduce subclass casts in 2D APIs (flutter/flutter#141318)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from a045134c910d to 431d64dbb4b8 (2 revisions) (flutter/flutter#141316)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6810c9a57460 to a045134c910d (2 revisions) (flutter/flutter#141313)
2024-01-10 jmccandless@google.com Call onPopInvoked when pages API is used (flutter/flutter#141221)
2024-01-10 polinach@google.com Fix mechanism to pass flag for leak tracking. (flutter/flutter#141226)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 5d252831e62c to 6810c9a57460 (2 revisions) (flutter/flutter#141308)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6cb256fc4985 to 5d252831e62c (1 revision) (flutter/flutter#141302)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from 52aedc6c9153 to 6cb256fc4985 (1 revision) (flutter/flutter#141297)
2024-01-10 polinach@google.com Improve testing for leak tracking. (flutter/flutter#140553)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from d1a2007a28b4 to 52aedc6c9153 (2 revisions) (flutter/flutter#141291)
2024-01-10 christopherfujino@gmail.com [flutter_tools] fix flutter create -t skeleton (flutter/flutter#141233)
2024-01-10 engine-flutter-autoroll@skia.org Roll Flutter Engine from b361a60ae224 to d1a2007a28b4 (1 revision) (flutter/flutter#141285)
2024-01-10 derekx@google.com Unpin package:vm_service (flutter/flutter#141279)
2024-01-10 stuartmorgan@google.com Collapse pubspec.lock by default (flutter/flutter#141282)
2024-01-10 engine-flutter-autoroll@skia.org Roll Packages from 09205ca to 378e700 (2 revisions) (flutter/flutter#141275)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC camillesimon@google.com,rmistry@google.com,stuartmorgan@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: 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 join this conversation on GitHub. Already have an account? Sign in to comment
Labels
f: routes Navigator, Router, and related APIs. framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

onPopInvoked not called when using Navigator.pages
2 participants