Skip to content

Conversation

@dnfield
Copy link
Contributor

@dnfield dnfield commented Nov 6, 2023

Fixes #137924
Fixes #136885

The framework defaults to keeping the widget tree alive and ready to render regardless of application lifecycle events such as showing or hiding a view controller.

Add-to-app developers may be surprised by this, and tend to file bugs asking why dispose isn't called when the view is dismissed (or why memory usage is higher than expected after dismissing Flutter UI).

Adds documentation to explain the limitation and what to do instead.

/cc @zanderso @chinmaygarde @jonahwilliams @jason-simmons since we were discussing this in triage.

@dnfield dnfield requested review from Hixie and goderbauer November 6, 2023 20:06
@github-actions github-actions bot added the framework flutter/packages/flutter repository. See also f: labels. label Nov 6, 2023
Comment on lines 1197 to 1199
/// To release resources more eagerly, establish a [platform channel](https://flutter.dev/platform-channels/)
/// and use it call [runApp] with a widget such as [SizedBox.shrink] when
/// the framework should dispose of the active widget tree.
Copy link
Member

Choose a reason for hiding this comment

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

Something is missing in this sentence, maybe a "to" between "it" and "call"?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, done

Comment on lines 1308 to 1309
/// This method is _not_ invoked at times where a developer might otherwise
/// expect it.
Copy link
Member

Choose a reason for hiding this comment

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

This seems like an overly broad statement. Can we specify what these cases are where one might expect this to be called, but it isn't?

Copy link
Member

Choose a reason for hiding this comment

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

Maybe this just needs to verbally link to the next two sections to indicate that they talk about two common cases of this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added another clause here, wdyt?

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

@dnfield dnfield added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 8, 2023
@auto-submit auto-submit bot merged commit a3f2c7a into flutter:master Nov 8, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 9, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 9, 2023
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Nov 9, 2023
flutter/flutter@4b4a1fe...f662150

2023-11-09 [email protected] Roll Packages from 94c7623 to b69f54e (1 revision) (flutter/flutter#138149)
2023-11-09 [email protected] prevent tool crash when `IntelliJValidatorOnMac` encounters an installation with a missing `CFBundleIdentifier` (flutter/flutter#138095)
2023-11-09 [email protected] Roll Flutter Engine from 233bd6263c62 to 8b490a9f1650 (1 revision) (flutter/flutter#138118)
2023-11-09 [email protected] Roll pub packages (flutter/flutter#138114)
2023-11-09 [email protected] Roll Flutter Engine from b3af5d64d3e6 to 233bd6263c62 (8 revisions) (flutter/flutter#138116)
2023-11-08 [email protected] Use specific version of mac_toolchain (flutter/flutter#138115)
2023-11-08 [email protected] [flutter_tools] disable flutter build AAR for plugins (flutter/flutter#137878)
2023-11-08 [email protected] Roll Flutter Engine from 21f055f7d8d0 to b3af5d64d3e6 (1 revision) (flutter/flutter#138113)
2023-11-08 [email protected] Roll Flutter Engine from 5306213d9d19 to 21f055f7d8d0 (3 revisions) (flutter/flutter#138111)
2023-11-08 [email protected] Remove physicalGeometry (flutter/flutter#138103)
2023-11-08 [email protected] [Android] Fix `FlutterTestRunner.java` deprecations (flutter/flutter#138093)
2023-11-08 [email protected] Remove fuchsia mac version (flutter/flutter#138101)
2023-11-08 [email protected] Roll Flutter Engine from 6dbcf8f13132 to 5306213d9d19 (4 revisions) (flutter/flutter#138108)
2023-11-08 [email protected] Marks Mac_android hot_mode_dev_cycle__benchmark to be flaky (flutter/flutter#138073)
2023-11-08 [email protected] Document additional cases  (flutter/flutter#137957)
2023-11-08 [email protected] Roll Flutter Engine from b0310da3254d to 6dbcf8f13132 (2 revisions) (flutter/flutter#138100)
2023-11-08 [email protected] Add support for color and color blendmode in FadeInImage (flutter/flutter#137681)

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 [email protected],[email protected],[email protected] 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
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App framework flutter/packages/flutter repository. See also f: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The dispose method is not called after closing FlutterViewController Under multiple engines, destroying the page will not trigger dispose

2 participants