·
46994 commits
to master
since this release
The release of the Flutter 3.16 beta contains the changes noted below.
To try out the newest beta run:
flutter channel beta
flutter upgrade
Flutter 3.16 beta (October 11, 2023)
Framework
- CupertinoAlertDialog should not create ScrollController on every build, if null values are passed in constructor. by @polina-c in #133918
- _SearchBarState should dispose FocusNode, if it created it. by @polina-c in #133947
- RenderParagraph should dispose instances of SelectableFragments. by @polina-c in #133915
- _MaterialAppState should dispose MaterialHeroController. by @polina-c in #133951
- Cover more tests with leak tracking. by @polina-c in #133958
- Dispose AnimationSheetRecorder to avoid leaks by @dkwingsmt in #133365
- Revert "_SearchBarState should dispose FocusNode, if it created it." by @polina-c in #134072
- Revert "CupertinoAlertDialog should not create ScrollController on every build, if null values are passed in constructor." by @polina-c in #134071
- _DropdownMenuState should dispose TextEditingController. by @polina-c in #133914
- Fix not disposed items in Cupertino app and route. by @polina-c in #134085
- MinimumTextContrastGuideline should dispose image. by @polina-c in #133861
- Add
CheckedPopupMenuItem.onTap
callback by @piedcipher in #134000 - Fix
subtitleTextStyle.color
isn't applied to theListTile.subtitle
in Material 2 by @burakJs in #133422 - Clean the fixed TODOs. by @polina-c in #133859
- DraggableScrollableActuator should dispose notifier. by @polina-c in #133917
- Reland "Fix
Chip.shape
's side is not used when provided in Material 3" by @TahaTesser in #133856 - Fix
DataTable
'sheadingTextStyle
&dataTextStyle
are not merged with default text style by @TahaTesser in #134138 - Fix
TabBar
doesn't uselabelStyle
&unselectedLabelStyle
color by @TahaTesser in #133989 - Fixed [NavigationRailDestination]'s label opacity while disabled not being coherent with the icon by @matheus-kirchesch-btor in #132345
- SearchDelegate should dispose resources. by @polina-c in #133948
- Cover some test/widgets tests with leak tracking by @ksokolovskyi in #133803
- DropdownRoutePage should dispose the created ScrollController. by @polina-c in #133941
- Fix
ExpansionTile
properties cannot be updated withsetState
by @TahaTesser in #134218 - [integration_test] Allow capture of screenshots for
FlutterFragmentActivity
s by @gmackall in #132406 - _SearchBarState should dispose FocusNode, if it created it. by @polina-c in #134076
- CupertinoAlertDialog should not create ScrollController on every build, if null values are passed in constructor. by @polina-c in #134075
- TestWidgetsFlutterBinding should dispose old RestorationManager on reset. by @polina-c in #133999
- EditableTextState should dispose cursorVisibilityNotifier. by @polina-c in #133858
- Remove non needed controllers in SegmentedButton. by @polina-c in #134064
- _TabBarViewState should dispose created instances of PageController. by @polina-c in #134091
- Fix
Drawer
examples are missingdartpad
tag by @TahaTesser in #134219 - fix a Scrollbar example crash by @xu-baolin in #127925
- Update links to iOS embedder docs to point to new Doxygen docs by @gspencergoog in #134246
- Make
CupertinoTextField
at least as tall as its first line of placeholder by @LongCatIsLooong in #134198 - Update chip docs to clarify how to specify a shape with no border & explain default values for Material 3 by @TahaTesser in #134298
- InputDecoration.error should activate error state by @Renzo-Olivares in #134001
- Remove TextPainter migration flag from the framework by @LongCatIsLooong in #134274
- RestorationManager should dispatch creation in constructor. by @polina-c in #133911
- Fix memory leak in _DraggableScrollableSheetState by @ksokolovskyi in #134212
- Day picker should dispose created MaterialStatesController's. by @polina-c in #133884
- SelectableRegion onSelectionChange should be called when the selection changes by @Renzo-Olivares in #134215
- Cover more tests with leak tracking. by @polina-c in #134363
- Mark leak: instances of OpacityLayer, created by _RenderChip, should be disposed. by @polina-c in #134395
- Fix memory leak in RenderAnimatedSize by @ksokolovskyi in #133653
- Cover focus tests with leak tracking by @ksokolovskyi in #134457
- Fix DataTable example not being scrollable by @Chinmay-KB in #131556
- ScaleGestureRecognizer: make pointerCount public by @kseino in #127310
- [New feature] Allowing the
ListView
slivers to have different extents while still having scrolling performance by @xu-baolin in #131393 - Revert "Adds a parent scope TraversalEdgeBehavior and fixes modal rou⦠by @chunhtai in #134550
- Remove deprecated TextSelectionOverlay.fadeDuration by @Piinks in #134485
- Remove chip tooltip deprecations by @Piinks in #134486
- Enable private field promotion for examples by @goderbauer in #134478
- Enable private field promotion for other packages by @goderbauer in #134475
- Fix SliverList example descriptions by @Piinks in #134483
- Ensure OverlayPortal.overlayChild's renderObject is reachable via treewalk by @LongCatIsLooong in #134497
- Fix TabBarView desynchronized after animation interruption by @bleroux in #132748
- Cover more test/widgets tests with leak tracking #2 by @ksokolovskyi in #134387
- _YearPicker should dispose ScrollController and MaterialSatesController. by @polina-c in #134393
- Update BottomSheetTest by @Hangyujin in #134562
- removed unused variable in the example code of semantic event by @chrisdlangham in #134551
- Cover more test/widgets tests with leak tracking #4 by @ksokolovskyi in #134663
- Updated MaterialStatesController class api doc by @HansMuller in #134592
- Bump gradle heap size limit in everywhere by @zanderso in #134665
- [framework] reduce ink sparkle uniform count. by @jonahwilliams in #133897
- Dispose routes in navigator when throwing exception by @Hangyujin in #134596
- [bug] Fix null check crash by ReorderableList by @opxdelwin in #132153
- Update KeepAlive.debugTypicalAncestorWidgetClass by @Piinks in #133498
- Remove
Path.combine
call fromCupertionoTextSelectionToolbar
by @LongCatIsLooong in #134369 - _DayPicker should build days using separate stetefull widget _Day. by @polina-c in #134607
- LinkedText (Linkify) by @justinmc in #125927
- Fix NavigationRail hover misplaced when using large icons by @bleroux in #134719
- π Setup color tween for
RefreshIndicator
in a better way by @AlexV525 in #134492 - Cover some Services tests with leak tracing by @NobodyForNothing in #134381
- Cover more test/widgets tests with leak tracking #3 by @ksokolovskyi in #134576
- Allows page removal that contains Localhistoryentry by @chunhtai in #134757
- Fix memory leak in ListWheelScrollView by @ksokolovskyi in #134732
- Fix navigation rail hover misplaced when direction is RTL and extended is true by @bleroux in #134815
- Date picker dialog state should dispose members. by @polina-c in #134804
- Dispose layers in test. by @polina-c in #134802
- Add disposal mechanism for created Layers to TestRecordingPaintingContext. by @polina-c in #134768
- Fix memory leak in CupertinoActionSheet by @ksokolovskyi in #134885
- Improve DropdownMenu sample code for requestFocusOnTap on mobile platforms by @huycozy in #134867
- Fix memory leak in _DarwinViewState. by @ksokolovskyi in #134938
- [flutter roll] Revert "LinkedText (Linkify)" by @XilaiZhang in #134955
- Cover more test/widgets tests with leak tracking #5 by @ksokolovskyi in #134869
- Cover more tests with leak tracking. by @polina-c in #134805
- Cover more test/widgets tests with leak tracking #6 by @ksokolovskyi in #134884
- Enable private field promotion for framework by @goderbauer in #134473
- Fixes focus traversal crash if the current node can't request focus by @chunhtai in #134954
- Resolve breaking change of adding a method to ChangeNotifier. by @polina-c in #134953
- Reland Resolve breaking change of adding a method to ChangeNotifier. by @polina-c in #134983
- Remove 'must be non-null' and 'must not be null' comments from non-framework libraries by @gspencergoog in #134994
- Specify suggested format in doc comment. by @polina-c in #134887
- [web] Encode AssetManifest.bin as JSON and use that on the web. by @ditman in #131382
- cover more tests with leak tracking by @NobodyForNothing in #134837
- Remove 'must not be null' comments from painting and rendering libraries. by @gspencergoog in #134993
- Unpin url launcher (remake) by @gmackall in #134958
- Cover more test/widgets tests with leak tracking #9 by @ksokolovskyi in #135054
- Cover more test/widgets tests with leak tracking #8 by @ksokolovskyi in #135045
- Remove 'must not be null' comments from various libraries. by @gspencergoog in #134984
- Remove 'must be non-null' and 'must not be null' comments in widgets library by @gspencergoog in #134992
- cover more tests with leak tracing by @NobodyForNothing in #134833
- Cover more test/widgets tests with leak tracking #10 by @ksokolovskyi in #135143
- Enable strict-inference by @goderbauer in #135043
- Cover more test/widgets tests with leak tracking #7 by @ksokolovskyi in #134943
- Cover cupertino/form_section_test with leak tracing by @NobodyForNothing in #135158
- [deps] Update package:web dependency. by @ditman in #135174
- Fix memory leak in _SelectableTextState by @ksokolovskyi in #135049
- Fix leak in hardware_keyboard_test.dart by @NobodyForNothing in #134380
- cover more tests with leak tracing by @NobodyForNothing in #134834
- Mark ReastaurationManager not disposed by @NobodyForNothing in #134832
- Rename
debugProfilePlatformChannels
to a constant that works in release mode by @jiahaog in #134922 - Form fields onChange callback should be called on reset by @bleroux in #134295
- Cover some cupertino tests with leak tracing by @NobodyForNothing in #135149
- Handle breaking changes in leak_tracker. by @polina-c in #135185
- Add RestorationManager disposals in test/services/restoration_test.dart. by @ksokolovskyi in #135218
- Add a parameter to configure InputDecorator hint fade animations duration by @bleroux in #135211
- Fix a TextSpan test by @LongCatIsLooong in #135187
- Update alwaysNeedsCompositing in RenderParagraph by @Hangyujin in #135076
- Cover more test/widgets tests with leak tracking #11 by @ksokolovskyi in #135231
- Fix memory leak in NestedScrollViewState. by @ksokolovskyi in #135248
- Size CupertinoTextSelectionToolbar to children by @tgucio in #133386
- Remove extra padding if a dropdown menu entry also has a leading icon by @QuncCccccc in #135004
- Added option to disable [NavigationDrawerDestination]s by @matheus-kirchesch-btor in #132349
- _RenderChip should not create OpacityLayer without disposing. by @polina-c in #134708
- Fix memory leak in _MatchesReferenceImage by @ksokolovskyi in #135150
- Fix _paintAvatar in chip.dart to dispose layer. by @polina-c in #135228
- TabController should dispatch creation in constructor. by @polina-c in #133952
- Convert relative to absolute import. by @polina-c in #135337
- [iOS,macOS] Clean up obsolete PlatformView warning by @cbracken in #135040
- Fix failing test at master. by @polina-c in #135394
- Add a basic golden test for
CupertinoTextSelectionToolbar
by @LongCatIsLooong in #135267 - simulatedAccessibilityTraversal account for force merging by @chunhtai in #135178
- [Velocity Tracker] Fix: Issue 97761: Flutter Scrolling does not match iOS; inadvertent scrolling when user lifts up finger by @chipweinberger in #132291
- Fix and Test Conditional Validator Behavior in FormField by @EdgarJan in #132714
- Add "Frame Request Pending" lag to collected metrics by @moffatman in #135279
- SelectionArea long press selection overlay behavior should match native by @Renzo-Olivares in #133967
- Allow multiple ParentDataWidgets to write to ParentData by @Piinks in #133581
- [documentation] remove repeated "For example," in RenderSliverEdgeInsetsPadding documentation by @mateusfccp in #135297
- Fix
SearchAnchor
's search view isn't updated when the theme changes & widgets inside the search view do not inherit local themes by @TahaTesser in #132749 - made top level if checks gaurd clauses by @caseycrogers in #135070
- Support ensureVisible/showOnScreen/showInViewport for 2D Scrolling by @Piinks in #135182
- Implement SelectionArea single click/tap gestures by @Renzo-Olivares in #132682
- Update
TextField.style
documentation for Material 3 by @TahaTesser in #135556 - Fix
RangeSlider
throws an exception in aListView
by @TahaTesser in #135667 - [web] fix: do not call onSubmitted of TextField when switching browser tabs on mobile web by @tauu in #134870
- Add API to read flavor from framework at run time by @andrewkolos in #134179
- π Add more fields to
RefreshProgressIndicator
by @AlexV525 in #135207 - Added option to disable [NavigationDestination]s ([NavigationBar] destination widget) by @matheus-kirchesch-btor in #132361
- Fix TabBarView.viewportFraction change is ignored by @bleroux in #135590
- Remove assertions on getOffsetToReveal by @Piinks in #135634
Tooling
- Retry connecting to device in CI after lost connection by @vashworth in #133769
- [flutter_tools] Fix "FormatException: Invalid date format" during version freshness check by @christopherfujino in #134088
- Add ios analyzer command for universal links by @chunhtai in #134155
- Native assets support for MacOS and iOS by @dcharkes in #130494
- [flutter_tools] disallow -O0 for flutter build web by @christopherfujino in #134185
- Enable private field promotion for flutter_tools by @goderbauer in #134474
- Clean up analytics opt in/out flags by @eliasyishak in #132588
- Set the CONFIGURATION_BUILD_DIR in generated xcconfig when debugging core device by @vashworth in #134493
- [flutter_tools] Run ShutdownHooks when handling signals by @christopherfujino in #134590
- Update plugin_ffi generated file to match FFIgen 9.0.0 by @dcharkes in #134614
- [web] provide serviceWorkerVersion to the getNewServiceWorker function by @p-mazhnik in #131240
- Speed up native assets target by @dcharkes in #134523
- Makes scheme and target optional parameter when getting universal lin⦠by @chunhtai in #134571
- Native assets support for Linux by @dcharkes in #134031
- Don't uninstall before retrying to connect during app launch by @vashworth in #134542
- [flutter roll] Revert "Native assets support for Linux" by @XilaiZhang in #135069
- [Android] Add Java/AGP/Gradle incompatibility warning to
flutter create
by @camsim99 in #131444 - codeisn extension safe iOS framework by @cyanglaz in #134966
- finer grained logging of Chromium launch sequence by @yjbanov in #135078
- Add
--frontend-server-starter-path
option toflutter run
andflutter test
by @derekxu16 in #135038 - Send analytics on 'build ios' and 'build ipa' for plist impeller value by @zanderso in #135193
- remove field override, assign to super field instead by @jakemac53 in #135165
- Reland "Native assets support for Linux" by @dcharkes in #135097
- Refactor "app plugin loader" Gradle Plugin so it can be applied using the declarative
plugins {}
block by @bartekpacia in #127897 - Roll pub packages by @flutter-pub-roller-bot in #135315
- [macOS,iOS] Improve CocoaPods upgrade instructions by @cbracken in #135453
- Wait for CONFIGURATION_BUILD_DIR to update when debugging with Xcode by @vashworth in #135444
- Switch flutter_tools to run frontend server from AOT snapshot by @derekxu16 in #135255
- [flutter_tools] fix tests with no native assets running native asset build by @christopherfujino in #135474
- Revert "Switch flutter_tools to run frontend server from AOT snapshot" by @CaseyHillers in #135537
- β¨
flutter config --list
by @AlexV525 in #135401 - Native assets support for Windows by @dcharkes in #134203
- Roll pub packages by @flutter-pub-roller-bot in #135455
- [tool] fallback to sigkill when closing Chromium by @yjbanov in #135521
- Pin leak_tracker before publishing breaking change. by @polina-c in #135720
- [flutter_tools] remove VmService screenshot for native devices. by @jonahwilliams in #135462
New Contributors
- @burakJs made their first contribution in #133422
- @chrisdlangham made their first contribution in #134551
- @K9i-0 made their first contribution in #134339
- @chipweinberger made their first contribution in #132291
- @EdgarJan made their first contribution in #132714
Engine
Android
- Adds a comment on clang_arm64_apilevel26 toolchain usage by @zanderso in flutter/engine#45467
- Add trace-to-file switch by @derekxu16 in flutter/engine#45553
- [Impeller] moved validation layers on by default logic to gni scripts by @gaaclarke in flutter/engine#45682
- Tighten up ImageReaderPlatformViewRenderTarget code by @johnmccutchan in flutter/engine#45889
- Disable HardwareBuffer backed Platform Views temporarily by @johnmccutchan in flutter/engine#45986
- [Android] Add support for setting thread affinity based on core speed. by @jonahwilliams in flutter/engine#45673
- [Impeller] Affinity adjustments for Vulkan backend. by @jonahwilliams in flutter/engine#46063
- Re-enable HardwareBuffer backed Platform Views on Android >= 29 by @johnmccutchan in flutter/engine#46071
- [Android] Fix enableSuggestions set to false not honored by @bleroux in flutter/engine#46037
- [Android] Rename
allowChannelBufferOverflow
to `setWarnsOnChannelOv⦠by @bleroux in flutter/engine#46361 - Fix damage calculation when not providing populate_existing_damage for gl embedder by @ajihyf in flutter/engine#45611
iOS
- Fix iOS unittests leak in shared.invoke method channel that causes crash by @cyanglaz in flutter/engine#45416
- Reverts part of "fix auto-correction highlight on top left corner (Again)" by @hellohuanlin in flutter/engine#45523
- [ios] Fix testDeallocated failing locally. by @cyanglaz in flutter/engine#45663
- Reland "Build iOS unittest target in unopt builds" (#44356)"" (#45346)" by @cyanglaz in flutter/engine#45519
- [iOS] Remove selectionDidChange call in UndoManager by @LongCatIsLooong in flutter/engine#45657
- [macOS,iOS] Expose channel buffers 'resize' and 'overflow' control co⦠by @bleroux in flutter/engine#44848
- Made the warning about downgrading wide gamut happen at the correct time by @gaaclarke in flutter/engine#46064
- [Impeller] adds hardware gate for wide gamut by @gaaclarke in flutter/engine#46051
- Make a variety of low-impact Clang tidy fixes. by @matanlurey in flutter/engine#46114
- [ios] fix asset url not found when loading app extension by @cyanglaz in flutter/engine#46073
- [Impeller] fail if software backend is chosen and Impeller is enabled on iOS by @dnfield in flutter/engine#46124
- [iOS] Disable spelling corrections when auto correction is disabled by @bleroux in flutter/engine#46144
- Revert "[Impeller] fail if software backend is chosen and Impeller is enabled on iOS" by @CaseyHillers in flutter/engine#46217
- [ios] Fix default assets url by @cyanglaz in flutter/engine#46214
- [ios] Fix app extension not able to find assets from unloaded bundle by @cyanglaz in flutter/engine#46283
- Reverts "[ios] Fix app extension not able to find assets from unloaded bundle" by @auto-submit in flutter/engine#46328
- Reland "[ios] Fix app extension not able to find assets from⦠by @cyanglaz in flutter/engine#46329
Web
- Update deps on DDC build targets by @nshahan in flutter/engine#45404
- [Web] Fix insertions/deletions at inverted selection for TextEditingDeltas by @Renzo-Olivares in flutter/engine#44693
- Remove usage of the Jazzy document formatter for Objective C, in favor of Doxygen. by @gspencergoog in flutter/engine#45561
- Remove some of our hacks around JSPromise now that we have better APIs. by @eyebrowsoffire in flutter/engine#45591
- Update skwasm build to use safer flush call by @kjlubick in flutter/engine#45652
- Revert "Remove some of our hacks around JSPromise now that we have better APIs." by @eyebrowsoffire in flutter/engine#45660
- [Web] Properly report inverted selection by @knopp in flutter/engine#44806
- Fix JS interop signatures to use only JS types. by @eyebrowsoffire in flutter/engine#45668
- Use a single OffscreenCanvas for rendering in CanvasKit by @harryterkelsen in flutter/engine#42672
- Revert "Use a single OffscreenCanvas for rendering in CanvasKit" by @harryterkelsen in flutter/engine#45744
- [web] Use DOM to render paragraphs with letter spacing by @mdebbar in flutter/engine#45651
- Compile a platform dill for dart2wasm by @eyebrowsoffire in flutter/engine#45797
- Update webdriver imports. by @godofredoc in flutter/engine#45816
- Declare the js context as nullable in skwasm surface callback by @eyebrowsoffire in flutter/engine#45810
- Enable private field promotion by @goderbauer in flutter/engine#45722
- Migrate GrMipmapped->skgpu::Mipmapped by @kjlubick in flutter/engine#45881
- [web] De-singletonize MouseCursor for multi-view by @mdebbar in flutter/engine#45295
- [web] ScreenOrientation singleton by @mdebbar in flutter/engine#45304
- Add missing include of SkPath by @kjlubick in flutter/engine#45996
- [web] DOM objects implement JS object by @mdebbar in flutter/engine#46047
- Update CI to Chrome 117 by @eyebrowsoffire in flutter/engine#45842
- Implement JSObject instead of extending by @srujzs in flutter/engine#46070
- Enable strict-inference by @goderbauer in flutter/engine#46062
- Properly transfer objects between the main thread and web worker. by @eyebrowsoffire in flutter/engine#46061
- [web] Make
PlatformViewManager
a clear singleton by @mdebbar in flutter/engine#46044 - [web] Move context menu handling to its own class by @mdebbar in flutter/engine#46042
- Revert "[web] fix clicks on merged semantic nodes (#43620)" by @yjbanov in flutter/engine#46067
- Add description to assert in
history.dart
by @kenzieschmoll in flutter/engine#46072 - [canvaskit] Use DirectionalLight_Shadow flag for drawing shadows by @harryterkelsen in flutter/engine#46292
- Update to use GrDirectContexts::MakeGL by @kjlubick in flutter/engine#46308
- [canvaskit] Do not double-apply ImageFilter transform to children by @harryterkelsen in flutter/engine#46336
Desktop
- Add macOS support for plugin value publishing by @stuartmorgan in flutter/engine#45502
- Merge
Window
intoFlutterWindow
by @yaakovschectman in flutter/engine#45542 - Use
start
instead ofextent
for Windows IME cursor position by @yaakovschectman in flutter/engine#45667 - Handle external window's
WM_CLOSE
in lifecycle manager by @yaakovschectman in flutter/engine#45840 - Revert "[Windows] Update vsync on raster thread (#45310)" by @cbracken in flutter/engine#46000
- Rename
layoutGoals
tokLayoutGoals
to enforce lints on headers. by @matanlurey in flutter/engine#46054 - Add TODO(name) to comply with Clang Tidy. by @matanlurey in flutter/engine#46057
FlutterMouse.*
->kFlutterMouse.*
, so we can lint header files. by @matanlurey in flutter/engine#46056- [macOS] Synchronise modifiers from mouse events for RawKeyboard by @knopp in flutter/engine#46230
- [Windows] Improve logic to update swap intervals by @loic-sharma in flutter/engine#46172
- [macOS] performKeyEquivalent cleanup by @knopp in flutter/engine#45946
- Revert "[macOS] performKeyEquivalent cleanup (#45946)" by @cbracken in flutter/engine#46374
- [macOS] FlutterTextInputPlugin should clip to bounds by @knopp in flutter/engine#46142
- [macOS] TextInputPlugin should mark navigation events in IME popover as handled by @knopp in flutter/engine#46141
- Reland: [macOS] performKeyEquivalent cleanup by @knopp in flutter/engine#46377
New Contributors
- @kenzieschmoll made their first contribution in flutter/engine#46072
- @ajihyf made their first contribution in flutter/engine#45611