Flutter 3.13.0 release notes
This page has release notes for 3.13.0. For information about subsequent bug-fix releases, see our CHANGELOG.
Framework
#- Fix EditableText misplaces caret when selection is invalid by @bleroux in 123777
- Fixes IgnorePointer and AbsorbPointer to only block user interactions… by @chunhtai in 120619
- [flutter_test] Adds method to mock EventChannels by @Rexios80 in 123726
- Revert "[flutter_test] Adds method to mock EventChannels" by @zanderso in 124401
- Reland Refactor reorderable list semantics by @chunhtai in 124395
- Migrate away from deprecated BinaryMessenger API by @goderbauer in 124348
- Fix InkWell ripple visible on right click when not expected by @bleroux in 124386
- Prepare for adding values to AppLifecycleState by @gspencergoog in 119954
- document StaticIconProvider by @christopherfujino in 120935
- [Text Input] Only unfocus when receive connectionClosed on platform except web by @luckysmg in 123929
- [flutter_test] Adds method to mock EventChannels by @Rexios80 in 124415
- [web] Migrate the bulk of JS interop to JS types. by @joshualitt in 123286
- Reduce macOS overscroll friction by @moffatman in 122142
- ExpansionTile audit by @chunhtai in 124281
- Sliver Constrained Cross Axis by @thkim1011 in 124337
- Fix ShaderMask Example issue by @adityathakurxd in 124511
- BottomAppBar: Fix doubled layers of color and shadow by @chrisbobbe in 123294
- Adds
dart_fix
support toflutter_test
by @pdblasi-google in 124347 - Add Mike Rydstrom to AUTHORS by @rydmike in 124561
- [integration_test] upgrade androidx test to 1.4.0 by @micaelcid in 122437
- Remove deprecations from TextSelectionHandleControls instances by @justinmc in 124611
- DraggableScrollableSheet & NestedScrollView should respect NeverScrollableScrollPhysics by @xu-baolin in 123109
- Exposed EdgeDraggingAutoScroller velocityScalar to ReorderableList by @gabrielgarciagava in 124459
- Add
StrokeCap
toCircularProgressIndicator
by @bernaferrari in 122664 - Revert "[integration_test] upgrade androidx test to 1.4.0" by @zanderso in 124644
- Bug report 2 issue template by @exaby73 in 122385
SemanticsFlag
/SemanticsAction
cleanup (part 4) by @bernaferrari in 123329- Localize the 'No Replacements Found' spell check string by @justinmc in 124259
- Improve the docs around the TextSelectionHandleControls deprecations by @justinmc in 123827
- Refactor
SliverAppBar.medium
&SliverAppBar.large
to fix several issues by @TahaTesser in 122542 - Fix
CupertinoContextMenu
throws exception on route animation by @TahaTesser in 124785 - [CupertinoListSection] adds new property separatorColor by @piedcipher in 124803
- iOS context menu shadow by @justinmc in 122429
- Add optional labelText and semanticLabel to Checkbox by @hangyujin in 124555
- [cupertino] improve cupertino picker performance by using at most one opacity layer by @jonahwilliams in 124719
- Revert "[framework] use shader tiling instead of repeated calls to drawImage" by @jonahwilliams in 124640
- Customize color and thickness of connected lines in Stepper.dart by @mub-pro in 122485
- Fix a null crash in SelectableRegion Widget by @hangyujin in 124736
- Deprecates string for reorderable list in material_localizations by @chunhtai in 124711
- Fix Chip highlight color isn't drawn on top of the background color by @TahaTesser in 124673
- SelectionContainer's listeners can remove itself during listener call… by @chunhtai in 124624
- Add an example for SearchBar by @QuncCccccc in 124992
- Add optional axis specifier to static scrollable methods by @Piinks in 124894
- relayout active ListWheelScrollView children every performLayout by @werainkhatri in 124476
- [InputDatePickerFormField] adds acceptEmptyDate to InputDatePickerFormField Widget by @piedcipher in 124143
- iOS spell check cursor placement by @justinmc in 124875
- Remove unused context parameter by @justinmc in 124254
- Fix text theme dart fix cases by @Piinks in 125052
- Remove unused getRootRenderObject and getSelectedRenderObject service extensions by @goderbauer in 124805
- Limit the number of Material spell check suggestions to 3 by @justinmc in 124899
- Add controller argument to SubmenuButton by @gspencergoog in 125000
- Remove package:js/dart:js_interop conflicts by @srujzs in 124879
- Adaptive alert dialog by @MitchellGoodwin in 124336
- Disableable ContextMenuButtonItems by @justinmc in 124253
- fix SliverReorderableList test to use correct custom action id by @chunhtai in 125144
- Dismiss the docked search view when the window size is changed by @QuncCccccc in 125071
- Revert selectable update back to be a postframecallback or microtask by @chunhtai in 125140
- fix DropdownMenu crash when resize window during menu showing by @xu-baolin in 124855
- Show magnifier on touch drag gestures by @Renzo-Olivares in 125151
- Search view shape should clip the view content by @QuncCccccc in 125161
DropdownMenu.width
should support updating at runtime by @xu-baolin in 124847- MinimumTapTargetGuideline skips nodes at scrollable boundaries by @chunhtai in 124615
- Show iOS menu on iOS for TextField by default by @justinmc in 124895
- Implement CheckmarkableChipAttributes on ChoiceChip by @9oya in 124743
- Revert "Sliver Constrained Cross Axis" by @thkim1011 in 125233
- Remove dynamic calls by @Hixie in 125238
- Remove uses of deprecated test_api imports by @natebosch in 124732
- Toolbar should re-appear on drag end by @Renzo-Olivares in 125165
- BottomAppBar doc: Fix doc about surfaceTintColor by @chrisbobbe in 124563
- Updated the BottomNavigationBar API doc to link to NavigationBar by @HansMuller in 125240
- Make selectable text mouse cursor configurable by @bleroux in 125133
- Red spell check selection on iOS by @justinmc in 125162
- Add docs for kIsWeb on defaultTargetPlatform by @gspencergoog in 125313
- Fix the divider_theme space documentation problem by @xcc3641 in 125195
- Remove unecessary reference to ClipboardStatusNotifier by @chunhtai in 125255
- Update Cupertino desktop text selection toolbar by @luccasclezar in 121829
- Remove some ignores for un-deprecated imports by @natebosch in 125261
- Adjust selection rects inclusion criteria by @moffatman in 125022
- Fix the position of the Android-style spell check toolbar by @justinmc in 124897
- Tiny fix doc pointing to incorrect widget confusing the readers by @fzyzcjy in 125394
- Implement url support for RouteInformation and didPushRouteInformation by @chunhtai in 119968
- Fix iOS touch drag behavior by @Renzo-Olivares in 125169
- Fix
OutlinedButton
,TextButton
, andIconButton
throw exception when passing only one cursor tostyleFrom
by @TahaTesser in 125204 - Fix JS types in _test_http_request.dart by @srujzs in 125220
- Add
borderRadius
to LinearProgressIndicator by @bernaferrari in 123517 - Sliver Constrained Cross Axis by @thkim1011 in 125239
- [date_picker] [date_range_picker] add properties to change switch-to icons by @piedcipher in 124881
- Fix
SliverAppBar.medium
&SliverAppBar.large
text scale by @TahaTesser in 125038 - iOS TextField spell check style by @justinmc in 125432
- Relabel JSFunction as JSExportedDartFunction by @srujzs in 125453
- Adds selected semantics flag to radio button for Apple devices by @chunhtai in 125499
- Provide default constraints for M3 bottom sheets by @guidezpl in 120065
- fix:
moreOrLessEquals
does not allowactual
to be integers by @fzyzcjy in 125599 - Fix
SnackBar
material clip by @TahaTesser in 125622 - Add migrator to upgrade gradle version when conflict with Android Studio bundled Java version is detected by @gmackall in 124085
- fix RangeSlider, with no overlayShape shifts to the left by @arvinwli in 125483
- Smallest change required to support host apps using agp 8.0 by @reidbaker in 125657
- enhances OverlayEntry docs by @werainkhatri in 124478
- Allow users to provide route settings to
showMenu
by @fzyzcjy in 124935 - Nit: grammar in documentation by @phlippieb-discovery in 125462
Checkbox.fillColor
should be applied to checkbox's background color when it is unchecked. by @QuncCccccc in 125643- Add a channel to query the engine keyboard state by @bleroux in 122885
- Sliver Cross Axis Group by @thkim1011 in 123862
- Fix crasher in DragableScrollableSheet when controller is animating and switching widgets by @dnfield in 125721
- add support to customize Slider interacivity by @werainkhatri in 121483
- Introduce
TabBar.tabAlignment
by @TahaTesser in 125036 - Revert "Add migrator to upgrade gradle version when conflict with And… by @gmackall in 125813
- Migrate Xcode projects last version checks to Xcode 14.3 by @jmagman in 125827
- Make
future
andstream
required arguments in their respective builder widgets by @caseycrogers in 125838 - Add debugPrintKeyboardEvents flag by @bleroux in 125629
- [framework] delete physical model layer. by @jonahwilliams in 125719
- Clean up in memory_allocations_test.dart. by @polina-c in 125777
- Align the Popup Menu under its child by @ValentinVignal in 125534
ModalBarrier
's gesture recognizer does not callinvokeCallback
by @fzyzcjy in 125386- Add
InlineSpan.visitDirectChildren
by @LongCatIsLooong in 125656 - [Reland] Add migrator to upgrade gradle version when conflict with Android Studio bundled Java version is detected by @gmackall in 125836
- Switch imports from test_api to focused libaries by @natebosch in 125854
- Fix nullability of ClipRRect.borderRadius by @goderbauer in 125878
- Provide default constraints for M3 dialogs by @guidezpl in 120082
- Define testWidgetsWithLeakTracking. by @polina-c in 125063
- Cleans up appbar imply leading logic by @chunhtai in 125315
- Minor fixes found while working on blankcanvas by @Hixie in 125751
- [NavigationDrawer] adds padding property in NavigationDrawer Widget by @piedcipher in 123961
- Fix Material 3 tab indicator weight and position by @TahaTesser in 125883
- Add a ReorderableListView example with cards + cleanup existing tests by @bleroux in 126155
- Add sample code for SliverAppBar by @Istiak-Ahmed78 in 125785
- Add
Switch.trackOutlineWidth
property by @QuncCccccc in 125848 - Added CupertinoDatepicker monthYear mode (flutter#93508) by @lindsaypj in 125603
- add tests for dominant bottom sheet in scaffold by @werainkhatri in 124472
- ✨ Add
rect
argument to_ArcPaintPredicate
for tests by @AlexV525 in 125953 - [ios] fix hold and drag spacebar does not move cursor when obscureTex… by @LinXunFeng in 122383
- [ExpansionPanelList] add materialGapSize property in ExpansionPanelList Widget by @piedcipher in 123971
- Fix leaks by @goderbauer in 126144
- Test AGP 8.0 using java 17 by @reidbaker in 125323
- [Refactor] Fix style in example by @natsuk4ze in 126191
- Tiny cleanup for Navigator code (without introducing dependency) by @fzyzcjy in 125628
- Improve the format in
asset_bundle.dart
by @AlexV525 in 126229 - fix AppBar's docs for backgroundColor by @werainkhatri in 126194
- Remove dead code by @goderbauer in 126266
- Update FocusNode documentation by @bleroux in 126331
- Revert "Provide default constraints for M3 dialogs" by @itsjustkevin in 126355
- ✨ Add
strokeAlign
toCircularProgressIndicator
andRefreshProgressIndicator
by @AlexV525 in 125945 - Reorder
materialStateProperty
defaults by @QuncCccccc in 125905 - Fix
MultiChildLayoutDelegate.hasChild
doc by @TahaTesser in 126433 - Make dpr available during Scrollable disposal by @goderbauer in 126535
- Fix TextSpan gc regression by @LongCatIsLooong in 126382
- Fix
showDatePicker
in input mode throws anArgumentError
by @TahaTesser in 126525 - Hide the context menu on tap down by @justinmc in 126295
- Add
FocusNode
,onFocusChange
, andautofocus
toCupertinoSwitch
by @TahaTesser in 126684 - [Docs] Fix Typo by @MeandNi in 126660
- Fix focus behavior and provided thumb and focus color aren't applied to Cupertino variant of
Switch.adaptive
by @TahaTesser in 126688 - Fix crash from invalid ListWheelViewport assertion by @nt4f04uNd in 126539
- Add spaces after flow control statements by @tgucio in 126320
- rename AssetManifest.bin by @andrewkolos in 126077
- Add more to error message of RestorationScope.of by @Piinks in 126444
- Add ScrollController.onAttach & onDetach, samples/docs on listening/getting scrolling info by @Piinks in 124823
- Minor documentation fixes by @Hixie in 126609
- Updated the
Drawer
API doc to link toNavigationDrawer
by @TahaTesser in 126915 - enable no_literal_bool_comparisons lint by @goderbauer in 126647
- expose
CupertinoDatePicker
andCupertinoTimerPicker
itemExtent
… by @stMerlHin in 125852 - Update SemanticsUpdateBuilderSpy for the conversion of SemanticsUpdateBuilder into a base class by @jason-simmons in 126570
- Alert engine upon registering ServiceBinding by @yaakovschectman in 126075
- Remove outdated comment by @goderbauer in 126927
- Fix copyWith method of ActionIconThemeData by @predatorx7 in 126763
- Fix DataTableThemeData.copyWith handling of dataRowHeight by @jason-simmons in 126943
- Add checkmark style to CupertinoRadio by @MitchellGoodwin in 126480
- Add ScrollMetrics.extentTotal for completeness by @Hixie in 126607
- Make SlottedMultiChildRenderObjectWidgetMixin a concrete class by @Hixie in 126108
- Add missing
Switch.onFocusChange
test by @TahaTesser in 126685 - Expose callback that allows focus traversal customization by @JellyO1 in 120235
- Autocomplete async examples by @justinmc in 126283
- Remove unused (and untested) parameters from private _MasterDetailFlow by @goderbauer in 126935
- Handle null return from WillPopCallback by @goderbauer in 127039
- Ignore unused_element_parameter by @srawlins in 126926
- Remove deprecated fixTextFieldOutlineLabel by @Renzo-Olivares in 125893
- Remove obsolete drawShadow bounds workaround by @flar in 127052
- Clip search view content during animation by @QuncCccccc in 126975
- Revert "Remove obsolete drawShadow bounds workaround" by @justinmc in 127110
- Revert "Handle null return from WillPopCallback" by @goderbauer in 127112
- Fixing richMessage gesture recognizer in tooltip widget by @mhbdev in 126207
- Update
useMaterial3
api doc by @QuncCccccc in 127142 - Remove deprecated
primaryVariant
andsecondaryVariant
fromColorScheme
by @QuncCccccc in 127124 - Properly cleans up routes by @chunhtai in 126453
- Remove deprecated OverscrollIndicatorNotification.disallowGlow by @Piinks in 127050
- fixes to anticipate next Dart linter release by @pq in 127211
- Do not animate
TabBarView
if controller is invalid by @gilnobrega in 123442 - fix: Search anchor box location when used on nested navigator by @VictorOhashi in 127198
- Support keeping a bottom sheet with a DraggableScrollableSheet from closing on drag/fling to min extent by @monkeyswarm in 127339
- Add M3 date picker tests and fix divider by @TahaTesser in 127197
- Fix the breaking of multi-code-unit characters in obscure mode by @justinmc in 123366
- modal bottom sheet barrier label by @NikolajHarderNota in 126431
- Avoid catching errors in TextPainter tests by @tgucio in 127307
Slider.onChangeStart
&Slider.onChangeEnd
are not called on keyboard shortcuts by @dleyba042 in 126896- Fix ScrollPosition overscroll precision error by @bleroux in 127321
- Add missing parameters in
TextFormField
by @lsaudon in 127020 - [web] ui.platformViewRegistry => ui_web.platformViewRegistry by @mdebbar in 127493
- Remove Tooltip mouse tracker listener & update hovering/MouseRegion logic & animation by @LongCatIsLooong in 119199
- Add
ScrollNotificationObserver
sample by @TahaTesser in 127023 SearchBar
should not be impacted by overallInputDecorationTheme
by @QuncCccccc in 127465- Adds
TestDisplay
API for testingDisplay
features by @pdblasi-google in 127525 - Remove a bad assert from tooltip implementation by @LongCatIsLooong in 127629
- Fix
TextField
error in production environment because it wrongly uses ancestor render boxes by @fzyzcjy in 126324 - Support minifcation for apps that depend on AGP 8 and integration_test by @reidbaker in 127628
- TwoDimensional scrolling foundation by @Piinks in 125437
- Update Material 2 tests group comment by @TahaTesser in 127796
- Fix SliverPersistentHeader interactions with SliverCrossAxisGroup by @thkim1011 in 127338
- Revised Floating Action Button examples by @HansMuller in 128058
- Add retry flag to flutter_test by @fzyzcjy in 125851
- Add error message when sliver overlap absorber is missing by @Piinks in 128075
- Updated custom ListTile examples by @HansMuller in 128071
- Add
FilterChip.elevated
,ChoiceChip.elevated
, &ActionChip.elevated
variants by @TahaTesser in 128049 - Text should still be centered when search bar height is less than 48 by @QuncCccccc in 128068
- Tiny remove unnecessary method in text_selection.dart by @fzyzcjy in 127480
- Remove LiveTestRenderView by @goderbauer in 127882
- Pre-migration for dart:ui multi view changes by @goderbauer in 128092
- Reland "Remove obsolete drawShadow bounds workaround (#127052)" by @flar in 127231
- Prefix for dart:ui multiview change by @goderbauer in 128152
- [framework] force flexible space background to rebuild. by @jonahwilliams in 128138
- Migrate SemanticsBinding to onSemanticsActionEvent by @goderbauer in 128254
- Fix update drag error that made NestedScrollView un-scrollable by @Piinks in 127718
- Remove scrollbar deprecations isAlwaysShown and hoverThickness by @Piinks in 127351
- [framework] attempt non-key solution by @jonahwilliams in 128273
- Migration guide for moving from BottomNavigationBar to NavigationBar by @leighajarett in 128263
- Use a
show
over ahide
fortest_api
exports by @natebosch in 128298 - Use Material3 in the 2D viewport tests by @HansMuller in 128155
- Clean-up viewId casts in flutter_test by @goderbauer in 128256
- Adding example for migrating to navigation drawer by @leighajarett in 128295
- Fix
Null check operator used on a null value
on TextField with contextMenuBuilder by @fzyzcjy in 128114 - Remove
textScaleFactor
dependent logic fromAppBar
by @LongCatIsLooong in 128112 - handleSelectWord in MultiSelectableSelectionContainerDelegate should handle rects inside of rects by @Renzo-Olivares in 127478
- Remove more rounding hacks from TextPainter by @LongCatIsLooong in 127826
- Update Draggable YouTube video link by @khanhnwin in 128078
- Show error message in release mode when box is not laid out without losing performance by @fzyzcjy in 126302
- Add viewId to PointerEvents by @goderbauer in 128287
- Make inspector weakly referencing the inspected objects. by @polina-c in 128095
- Refactor tests by @goderbauer in 128371
- Super tiny fix of dead link by @fzyzcjy in 128160
- Addressed Ambiguity in transform.scale constructor docs by @99spark in 128182
- Do not try to load main/default asset image if only higher-res variants exist by @andrewkolos in 128143
- Update menu API docs to help developers migrate to m3 by @leighajarett in 128351
- Revert "Make inspector weakly referencing the inspected objects." by @eyebrowsoffire in 128436
- Super tiny MediaQuery doc update by @fzyzcjy in 127904
- Roll engine, patch expression evaluation by @aam in 128255
- Fix typos 'wether' -> 'whether' by @bleroux in 128392
- Redo make inspector weakly referencing the inspected objects. by @polina-c in 128471
- Fix PointerEventConverter doc by @goderbauer in 128452
- Move RenderObjectElement.updateChildren to Element by @goderbauer in 128458
- [floating_cursor_selection]add more comments on the tricky part by @hellohuanlin in 127227
- Disable blinking cursor when
EditableText.showCursor
is false by @LongCatIsLooong in 127562 - Update flutter to dartdoc 6.3.0 and hide Icons implementation from doc pages by @jcollins-g in 128442
- Update
chip.dart
to use set ofMaterialState
by @TahaTesser in 128507 - Fix navigation rail with long labels misplaced highlights by @bleroux in 128324
- Navigator.pop before PopupMenuItem onTap call by @mhbdev in 127446
- Reland "Migrate benchmarks to package:web" by @eyebrowsoffire in 128266
- Advise developers to use OverflowBar instead of ButtonBar by @leighajarett in 128437
- Sliver Main Axis Group by @thkim1011 in 126596
- Add
AppLifecycleListener
, with support for application exit handling by @gspencergoog in 123274 - Adding migration guide for Material 3 colors by @leighajarett in 128429
- Remove single view assumption from MouseTracker, and unify its hit testing code flow by @dkwingsmt in 127060
- Fix
showBottomSheet
doesn't remove scrim when draggable sheet is dismissed by @TahaTesser in 128455 - Replace
MaterialButton
from test classes by @TahaTesser in 128466 - Improve defaults generation with logging, stats, and token validation by @guidezpl in 128244
- Updated material button theme tests for Material3 by @HansMuller in 128543
- Paint SelectableFragments before text by @hangyujin in 128375
- ExpansionPanel isExpanded callback parameter (Ticket 74114) by @dleyba042 in 128082
- Add tooltips for
SegmentedButton
by @ZhulanovAA in 128501 - Revert "Update
chip.dart
to use set ofMaterialState
" by @HansMuller in 128607 - Clarifies semantics long press and semantics on tap documentation by @chunhtai in 128599
- Add Selected semantics to IconButton by @hangyujin in 128547
- rename generated asset manifest file back to
AssetManifest.bin
(fromAssetManifest.smcbin
) by @andrewkolos in 128529 - Remove unnecessary parentheses by @ZhulanovAA in 128620
- migrate
Tooltip
to useOverlayPortal
by @LongCatIsLooong in 127728 - Update
ListTile
text defaults to useColorScheme
by @TahaTesser in 128581 - Address leak tracker breaking changes. by @polina-c in 128623
- Fix RangeSlider notifies start and end twice when participates in gesture arena by @nt4f04uNd in 128674
- Update button tests for Material 3 by default by @HansMuller in 128628
- Fix paint offset in reverse for 2D by @Piinks in 128724
- Update misc tests for Material3 by @HansMuller in 128712
- Update tests in material library for Material 3 by default by @QuncCccccc in 128300
- Update rest of the unit tests in material library for Material 3 by @QuncCccccc in 128747
- Fix ensureVisible and default focus traversal for reversed scrollables by @Piinks in 128756
- Update unit tests in material library for Material 3 by @QuncCccccc in 128725
- Fix syntax error in docstring by @woprandi in 128692
- Inline AbstractNode into SemanticsNode and Layer by @goderbauer in 128467
- Fixed slider value indicator not disappearing after a bit on desktop platform when slider is clicked not dragged by @cruiser-baxter in 128137
- [web] Migrate framework away from dart:html and package:js by @mdebbar in 128580
- Respect allowlisted count of leaks. by @polina-c in 128823
- Remove temporary default case for PointerSignalKind by @LouiseHsu in 128900
- ContextAction.isEnabled needs a context by @Hixie in 127721
- Improve the error message for non-normalized constraints by @Hixie in 127906
- Update getChildrenSummaryTree to handle Diagnosticable as input. by @polina-c in 128833
- Update golden tests for material by @QuncCccccc in 128839
- [web] Pass creation params to the platform view factory by @mdebbar in 128146
- flutter update-packages --force-upgrade by @mdebbar in 128908
- Update golden tests by @QuncCccccc in 128914
- Set Semantics.button to true for date widget by @QuncCccccc in 128824
- Update getProperties to handle Diagnosticable as input. by @polina-c in 128897
- [web] Don't crash on
const HtmlElementView()
by @mdebbar in 128965 - Remove AbstractNode from RenderObject and deprecate it by @goderbauer in 128973
- Accept Diagnosticable as input in inspector API. by @polina-c in 128962
- Update objectToDiagnosticsNode to stop failing. by @polina-c in 129027
- Fix
InputDecoration.applyDefaults
ignoring some properties by @TahaTesser in 129010 - Introduce MaterialState
color
property for chips by @TahaTesser in 128584 - Add to API docs to explain what Assist and Suggestion chips are by @leighajarett in 129034
- Adding ScrollController support for Stepper widget by @SwaroopSambhayya in 128814
- iOS info.plist template: make UIViewControllerBasedStatusBar to be true by @cyanglaz in 128970
- fixed PreferredSize constuctor invocations by @yeasin50 in 128181
- DecoratedSliver by @thkim1011 in 127823
- Fix: Magnifier appears and won't dismiss by @justinmc in 128545
- update resolution-aware asset docs links by @andrewkolos in 128769
- Relax
OverlayPortal
asserts by @LongCatIsLooong in 129053 - Selection area right click behavior should match native by @Renzo-Olivares in 128224
- Gracefully handle negative position in getWordAtOffset by @justinmc in 128464
- Remove incorrect non-nullable assumption from
ShapeDecoration.lerp
by @guidezpl in 129298 - [framework,web] add FlutterTimeline and semantics benchmarks that use it by @yjbanov in 128366
- Add
InputDecorationTheme.merge
by @TahaTesser in 129011 - Fix: Closing bottom sheet and removing FAB cause assertion failure by @utisam in 128566
- Fix Material 3 Scrollable
TabBar
by @TahaTesser in 125974 - Remove unnecessary variable
_hasPrimaryFocus
by @AhmedLSayed9 in 129066 - Add
onSubmitted
property toSearchBar
by @QuncCccccc in 129365 - [web] Migrate framework to fully use package:web by @mdebbar in 128901
- Fix
Slider
overlay remains when unfocused by @TahaTesser in 129115 - fix: SearchAnchor View not resizing when in nested navigator by @VictorOhashi in 128357
_TapStatusTrackerMixin
should wait until the nextPointerDownEvent
before resetting its state when the tap timer has elapsed by @Renzo-Olivares in 129312- fix: Inconsistency of SelectionArea when scrolling by @paurakhsharma in 128765
- Add CallbackShortcuts widget of the week video by @loic-sharma in 129296
- Fix
AnimatedList
&AnimatedGrid
doesn't applyMediaQuery
padding by @TahaTesser in 129556 - Updated chip_test.dart tests for M3 by @HansMuller in 129570
- Fix chinese text is not selected by long press by @hangyujin in 129320
- Make a paragraph test involving Chinese characters work with inconsistent host system fonts by @jason-simmons in 129628
- iOS TextSelectionToolbar fidelity by @luccasclezar in 127757
- Adds
dart_fix
support tointegration_test
by @pdblasi-google in 129579 - Remove Editable.onCaretChanged callback by @tgucio in 109114
- Automatically migrate ClipboardData.text to non-null by @loic-sharma in 129567
- [flutter roll] Revert "Fix
AnimatedList
&AnimatedGrid
doesn't applyMediaQuery
padding" by @XilaiZhang in 129645 - Make
DropdownMenu
be able to scroll to the highlighted item when searching. by @QuncCccccc in 129740 - Update
SwitchListTile
tests for M2/M3 by @QuncCccccc in 129809 - Update
Switch
tests for M2/M3 by @QuncCccccc in 129810 - Update
Radio
tests for M2/M3 by @QuncCccccc in 129814 - Updated some golden image tests for M2/M3 by @HansMuller in 129794
- Fix NetworkImage causing spurious warning in tests by @gnprice in 129537
- Update
SwitchTheme
tests for M2/M3 by @QuncCccccc in 129811 - Update links to old linter site to dart.dev by @parlough in 129866
- Cleanup: stop accepting DiagnosticsNode as input from DevTools. by @polina-c in 129302
- Improve documentation for
ColorSheme.fromImageProvider
by @guidezpl in 129952 - fix a bug when android uses CupertinoPageTransitionsBuilder... by @ipcjs in 114303
- Add simple unit tests for annotations.dart file by @moylanm in 128902
- Removes deprecated APIs from v2.6 in
binding.dart
andwidget_tester.dart
by @pdblasi-google in 129663 - Reland Fix AnimatedList & AnimatedGrid doesn't apply MediaQuery padding #129556 by @HansMuller in 129860
- MergeableMaterial: Fix adding a slice and separating it by @Snonky in 128804
- Enable unreachable_from_main lint - it is stable now!!1 by @goderbauer in 129854
- Allow long-press gestures to continue even if buttons change. by @Hixie in 127877
- [framework] Add textField OCR support for framework side by @luckysmg in 96637
- Add option for flexible space on material SearchDelegate by @HenriqueNas in 128132
- [a11y] CupertinoSwitch On/Off labels by @gilnobrega in 127776
- Next attempt to make inspector weakly referencing the inspected objects. by @polina-c in 129962
- Revert "fix a bug when android uses CupertinoPageTransitionsBuilder..… by @Jasguerrero in 130155
- Revert "[a11y] CupertinoSwitch On/Off labels" (#130166) by @Jasguerrero in 130172
- [CP] Minor adjustments on 2D APIs (#131358) by @Piinks in 131436
- [CP] Allow
OverlayPortal
to be added/removed from the tree in a layout callback (#130670) by @LongCatIsLooong in 131290 - [CP]
_RenderScaledInlineWidget
constrains child size (#130648) by @LongCatIsLooong in 131289 - [Cp] Fix Tooltip crash when selected in a SelectableRegion (#130181) by @LongCatIsLooong in 131288
- [CP] Constrain _RenderScaledInlineWidget child size in computeDryLayout #131765 by @LongCatIsLooong in 132096
Tooling
#- Update getGradleVersion to ignore commented out lines by @reidbaker in 124260
- Update gradle_utils.dart and flutter.gradle to have the same versions as the documentation in file says is required. by @reidbaker in 123213
- Force plugin transitive dependencies to an ARC compatible version by @jmagman in 124349
- Add support to the flutter tool to compile against the skwasm renderer by @eyebrowsoffire in 124296
- Update MCU version by @esouthren in 124512
- Allow daemon to start DDS remotely when proxied devices are used. by @chingjun in 124061
- Debounce the proxied connection over proxied devices. by @chingjun in 124540
- Add omit-type-checks flag for wasm builds by @kevmoo in 124341
- flutter_tools: Flutter Web CLI cleanup by @kevmoo in 124564
- Remove the old canvaskit artifacts to not confuse the web runner. by @eyebrowsoffire in 124641
- Update runner to handle logic for both analytics packages by @eliasyishak in 124606
- Update re-thrown error for incompatible Java/Gradle versions to include migration guide by @camsim99 in 124327
- [flutter_tools] Disable flaky
output_web_test
test case by @elliette in 124257 - i123643 print java version gradle by @reidbaker in 123644
- flutter-tool: enum cleanup by @kevmoo in 124760
- flutter-tool, web: update HTML template serviceWorkerVersion to be const by @kevmoo in 124826
- Remove Finder extended attributes in build target before code signing iOS frameworks by @jmagman in 123896
- [flutter_tools] Reorganize android_studio_test.dart by @andrewkolos in 124834
- Add option to run wasm-opt on module output. by @eyebrowsoffire in 124831
- [flutter_tools] Remove
Version.unknown
by @andrewkolos in 124771 - Update usage of standalone
pub
executable in flutter_tools testing docs by @bartekpacia in 124898 - Add vmservice for android build options by @chunhtai in 123034
- l10n.yaml's nullable-getter option should default to true by @thkim1011 in 124353
- Remove double.fromEnvironment from dart-define doc by @Mastersam07 in 124102
- Update helper message for
--suppress-analytics
by @eliasyishak in 124810 - Revert "Update helper message for
--suppress-analytics
" by @godofredoc in 125141 - Refactor Flutter Gradle Plugin so it can be applied using the declarative
plugins {}
block by @bartekpacia in 123511 - [reland] Update helper message for
--suppress-analytics
by @eliasyishak in 125145 - Use term wireless instead of network by @vashworth in 124232
- [flutter_tools] add todo for userMessages by @andrewkolos in 125156
- Report web compiler used with
buildEventSettings
by @kevmoo in 125092 - [flutter_tools] make overall_experience_test resilient to extraneous pub output by @christopherfujino in 125172
- Fix race condition in flutter test when passing --serve-observatory by @bkonyi in 123556
- When searching for the JDK bundled with an unrecognized version of Android Studio, assume the version to be the latest by @andrewkolos in 125247
- Cleanup flutter config output by @mit-mit in 122384
- add gradle error handler for when the remote ssl host terminates handshake process by @christopherfujino in 125270
- [tool,web] track web-renderer, and Wasm build args in analytics by @kevmoo in 125336
- [tool,web] Include more info URI on Wasm init failure by @kevmoo in 125312
- tool: Move cdKey to CustomDimensionsEnum by @kevmoo in 125335
- Handle dollar signs properly when generating localizations by @thkim1011 in 125514
- Refactor "gen-l10n" command to use same code path when "l10n.yaml" is present or not present by @thkim1011 in 125429
- tools: Drop unused function by @kevmoo in 125590
- Bump the default minSdkVersion to 19 by @dnfield in 125515
- [flutter_tools] more debugging for timeouts in break_on_framework_exceptions test by @christopherfujino in 125584
- Increase Xcode minimum version to 14 by @jmagman in 125639
- Opt into CMake policy CMP0135 by @yaakovschectman in 125502
- fix package template create platform folders by @Anas35 in 125292
- [tools] Apply Android Studio version detection logic to explicitly configured installation directory (
flutter config --android-studio-dir
) by @andrewkolos in 125596 - [tools] fix
expect
calls inFakeCommand
by @andrewkolos in 125783 - Clarify Visual Studio isn't strictly necessary for Windows development by @loic-sharma in 125837
- Allow .xcworkspace and .xcodeproj to be renamed from default name 'Runner' by @LouiseHsu in 124533
- Adding printOnFailure for result of process by @eliasyishak in 125910
- tool: DRY up DepfileService by @kevmoo in 125922
- tool: use switch expressions by @kevmoo in 125930
- [tool] Improve help info with build web --wasm flags by @kevmoo in 125907
- [tool] consistently use environment (not globals) in targets/web.dart by @kevmoo in 125937
- tool-web-wasm: make wasm-opt an "option" instead of a "flag" by @kevmoo in 126035
- Adding vmservice to get iOS app settings by @chunhtai in 123156
- tool-web: use ProcessUtil.run to invoke child processes by @kevmoo in 126109
- tool: replace top-level functions with enum properties by @kevmoo in 126167
- Fix incorrect assert hint in flutter.groovy by @b7woreo in 125283
- improvement : removed required kotlin dependency by @albertoazinar in 125002
- Rename iosdeeplinksettings to iosuniversallinksettings by @chunhtai in 126173
- targets/web.dart - fix typo by @kevmoo in 126114
- Update packages by @guidezpl in 126140
- Clearer text about what happens with
--disable-telemetry
+ enable-telemetry command by @eliasyishak in 125995 - Add
--verbose
flags for flakey tests by @eliasyishak in 126162 - Always use
--concurrency=1
for web tests. by @eyebrowsoffire in 126179 - [Tool] Output help on 'flutter pub' by @loic-sharma in 126211
- Fix that
flutter test
does not understandconcurrency
by @fzyzcjy in 125942 - tool/web: tiniest tweak to wasm help content by @kevmoo in 126284
- tool/web: correctly log all options to web wasm compile by @kevmoo in 126379
- [tool] Move Java functions to their own file by @andrewkolos in 126086
- Revert "[tool] Move Java functions to their own file" by @andrewkolos in 126569
- Add namespace to Android plugin templates by @stuartmorgan in 126354
- Add debugging for Dart VM timeout flake by @vashworth in 126437
- Replace rsync when unzipping artifacts on a Mac by @vashworth in 126703
- [flutter_tools] unpin and roll camera_android by @christopherfujino in 126945
- [Windows] Improve version migration message by @loic-sharma in 127048
- Migrate benchmarks to package:web by @joshualitt in 126848
- fix(flutter_tools):
findBundleFile
w/multiple flavor dimensions by @felangel in 127133 - [iOS] Dispose of log readers and port forwarders if launch fails by @vashworth in 127140
- [tool] delete xcresult bundle file before each xcode retry. by @cyanglaz in 127144
- [flutter_tools] only try to take a screenshot from flutter drive if the --screenshot flag is passed by @christopherfujino in 127150
- [Windows] Ensure window is shown by @loic-sharma in 127046
- Reland "[tool] Move Java functions to their own file" by @andrewkolos in 126577
- [flutter_tools] delete entitlements files after copying to macos build dir by @christopherfujino in 126875
- add test for setting JAVA_HOME and PATH when invoking
sdkmanager --licenses
by @andrewkolos in 127344 - Suggest that people move to "beta" when they upgrade on "master" by @Hixie in 127146
- Show warning when attempting to flutter run on an ios device with developer mode turned off by @LouiseHsu in 125710
- Fix wasm-opt location when using local_web_sdk by @eyebrowsoffire in 127355
- [Android] Adds
namespace
to module build file templates by @camsim99 in 126963 - Log all output of ios-deploy by @vashworth in 127222
- Revert "Log all output of ios-deploy" by @vashworth in 127405
- [flutter_tools] delete entitlements files after copying to macos build dir by @christopherfujino in 127417
- Give channel descriptions in
flutter channel
, use branch instead of upstream for channel name by @Hixie in 126936 - Revert "Replace rsync when unzipping artifacts on a Mac (#126703)" by @vashworth in 127430
- Log all lines from ios-deploy by @vashworth in 127502
- Revert "Log all lines from ios-deploy (#127502)" by @vashworth in 127684
- [Windows] Address feedback for show window comment by @loic-sharma in 127998
- [flutter_tools] Use process matcher for multidex test by @christopherfujino in 127996
- Fix issue where DevTools would not be immediately available when using --start-paused by @bkonyi in 126698
- Revert "Fix issue where DevTools would not be immediately available when using --start-paused" by @zanderso in 128117
- [Refactor] fix quote style in template by @natsuk4ze in 127762
- Make --flutter-repo analyze whole repo by @goderbauer in 127990
- Workaround for Dart VM timeout by @vashworth in 127875
- Roll dds dependency to 2.8.3 for expression evaluation upcoming fixes. by @aam in 128124
- [flutter_tools] never tree shake 0x20 (space) font codepoints on web by @christopherfujino in 128302
- [Android] Update plugin and module templates to use Flutter constant for
compileSdkVersion
by @camsim99 in 128073 - [tools] allow explicitly specifying the JDK to use via a new config setting by @andrewkolos in 128264
- Adds vmservices to retrieve android applink settings by @chunhtai in 125998
- Use
--target-os
for appropriate precompiled targets. by @sstrickl in 127567 - [flutter_tools] Precache after channel switch by @christopherfujino in 118129
- [flutter_tools] [DAP] Don't try to restart/reload if app hasn't started yet by @DanTup in 128267
- [testing] Make the FLUTTER_STORAGE_BASE_URL warning non-fatal by @whesse in 128335
- Ignore app.stop events received before the app.detach response in attach integration tests by @jason-simmons in 128593
- [flutter_tools] pass through enable impeller flag to macOS. by @jonahwilliams in 128720
- [flutter_tools] Suppress git output in flutter channel by @christopherfujino in 128475
- Unpin flutter_plugin_android_lifecycle by @gmackall in 128898
- Fix inconsistently suffixed macOS flavored bundle directory by @arnemolland in 127997
- [flutter_tools] cache flutter sdk version to disk by @christopherfujino in 124558
- flutter update-packages --cherry-pick-package by @Hixie in 128917
- [flutter_tools] refactor license collector by @christopherfujino in 128748
- [flutter_tools] Migrate more integration tests to process result matcher by @christopherfujino in 128737
- Fix dart pub cache clean command on pub.dart by @deryrahman in 128171
- [flutter_tools] Add support for vmServiceFileInfo when attaching by @DanTup in 128503
- [flutter_tools] fix cast error when dart-defines-json file includes null by @christopherfujino in 128909
- Fix an ordering dependency in the flutter_tools upgrade test by @jason-simmons in 129131
- Refactor generate_localizations_test.dart by @thkim1011 in 128974
- Use the new
getIsolatePauseEvent
method from VM service to check for pause event. by @chingjun in 128834 - Fix duplicate devices from xcdevice with iOS 17 by @vashworth in 128802
- Refactor
Analytics
global getter to point to context only by @eliasyishak in 129196 - [flutter_tools] add a gradle error handler for could not open cache directory by @christopherfujino in 129222
- Prevent crashes on range errors when selecting device by @eliasyishak in 129290
- Unpin path_provider_android by @gmackall in 129205
- [flutter_tools] delete flutter format command by @christopherfujino in 129360
- [web] Hides that Flutter uses requireJS in debug. by @ditman in 129032
- Prepare for making
intl
toBeginningOfSentenceCase
non-nullable by @oprypin in 127488 - Reland "Fix issue where DevTools would not be immediately available when using --start-paused (#126698)" by @bkonyi in 129368
- Remove
@NonNull
to avoid warning by @fzyzcjy in 129472 - Add .env file support for option
--dart-define-from-file
by @PiotrFLEURY in 128668 - Add new hot reload case string by @helin24 in 130008
- [flutter_tools] modify Skeleton template to use ListenableBuilder instead of AnimatedBuilder by @fabiancrx in 128810
- [CP] Fix ConcurrentModificationError in DDS by @christopherfujino in 130740
New Contributors
#- @Rexios80 made their first contribution in 123726
- @adityathakurxd made their first contribution in 124511
- @gabrielgarciagava made their first contribution in 124459
- @mub-pro made their first contribution in 122485
- @Harishwarrior made their first contribution in 124684
- @Mastersam07 made their first contribution in 124102
- @9oya made their first contribution in 124743
- @xcc3641 made their first contribution in 125195
- @luccasclezar made their first contribution in 121829
- @arvinwli made their first contribution in 125483
- @phlippieb-discovery made their first contribution in 125462
- @natsuk4ze made their first contribution in 126053
- @Istiak-Ahmed78 made their first contribution in 125785
- @b7woreo made their first contribution in 125283
- @albertoazinar made their first contribution in 125002
- @lindsaypj made their first contribution in 125603
- @Bungeefan made their first contribution in 126232
- @MeandNi made their first contribution in 126660
- @stMerlHin made their first contribution in 125852
- @JellyO1 made their first contribution in 120235
- @mhbdev made their first contribution in 126207
- @felangel made their first contribution in 127133
- @NikolajHarderNota made their first contribution in 126431
- @sun-jiao made their first contribution in 127019
- @dleyba042 made their first contribution in 126896
- @JsGjKJzi made their first contribution in 127114
- @matheus-kirchesch-btor made their first contribution in 127113
- @vasilich6107 made their first contribution in 127269
- @leighajarett made their first contribution in 128263
- @khanhnwin made their first contribution in 128078
- @99spark made their first contribution in 128182
- @ZhulanovAA made their first contribution in 128501
- @cruiser-baxter made their first contribution in 128137
- @arnemolland made their first contribution in 127997
- @deryrahman made their first contribution in 128171
- @SwaroopSambhayya made their first contribution in 128814
- @yeasin50 made their first contribution in 128181
- @utisam made their first contribution in 128566
- @AhmedLSayed9 made their first contribution in 129066
- @oprypin made their first contribution in 127488
- @paurakhsharma made their first contribution in 128765
- @crazytan made their first contribution in 129606
- @ipcjs made their first contribution in 114303
- @moylanm made their first contribution in 128902
- @Snonky made their first contribution in 128804
- @fabiancrx made their first contribution in 128810
- @HenriqueNas made their first contribution in 128132
Full Changelog: https://github.com/flutter/flutter/compare/3.10.0...3.13.0
Engine
#Android
#- Revert "Add support for double tap action from Apple Pencil 2" by @LouiseHsu in 41138
- [Android] Send connectionClosed message when keyboard becomes invisible to ensure framework focus state is correct. by @ksballetba in 40746
- Revert "[Android] Send connectionClosed message when keyboard becomes invisible to ensure framework focus state is correct." by @CaseyHillers in 41211
- Adds AndroidSurfaceGLImpeller unit tests by @gaaclarke in 40979
- null check added to avoid NPE while calling FlutterView.detachFromFlutterEngine() by @bastionkid in 41082
- focus SkiaGPUObject wrappers on only those objects that need the protection by @flar in 41237
- Determine lifecycle by looking at window focus also by @gspencergoog in 41094
- [flutter roll] Revert "Determine lifecycle by looking at window focus also" by @XilaiZhang in 41626
- Clone the parent Android engine's asset provider into a spawned engine by @jason-simmons in 41642
- Reland: "Determine lifecycle by looking at window focus also" (#41094) by @gspencergoog in 41702
- Close connection on keyboard close by @ksballetba in 41500
- Add a
Display
API to dart:ui that reports the physical size, DPR, and refresh rate of the main display by @dnfield in 41685 - [Android] Fix incorrect viewInsets during keyboard animation with EdgeToEdge by @JonathanPeterCole in 39391
- [Android] Lifecycle defaults to focused instead of unfocused by @gspencergoog in 41875
- [Impeller] [Android] Refactor the Android context/surface implementation to work more like Skia. by @dnfield in 41059
- [Impeller] Include AndroidSurfaceVulkanImpeller behind a flag by @CaseyHillers in 42033
- Migrate uses of SkSurface factories by @kjlubick in 41978
- [Android] Do not collapse text selection on shift key up by @Renzo-Olivares in 42075
- [Android] Return keyboard pressed state by @bleroux in 41695
- Makes android embedding to send full uri by @chunhtai in 41836
- [Android] Fix BasicMessageChannel.resizeChannelBuffer by @bleroux in 41982
- [Impeller] avoid creating multiple concurrent message loops for Andorid Vulkan by @dnfield in 42146
- Move SkSurface::MakeNull to SkSurfaces::Null by @kjlubick in 42158
- Adding app lifecycle notification for macOS and Linux, add
hidden
state. by @gspencergoog in 40542 - Revert "Adding app lifecycle notification for macOS and Linux, add
hidden
state." by @zanderso in 42384 - Reland: "Adding app lifecycle notification for macOS and Linux, add
hidden
state." (#40542) by @gspencergoog in 42418 - Handle a11y focus event on Ios and android by @hangyujin in 41777
- Fix crash getting spell-check suggestions by @moffatman in 42466
- [Impeller] Add Impeller Metal support in the embedder API by @bdero in 42411
- Ensure PlatformView engine life cycle callbacks are invoked by @johnmccutchan in 42491
- [Android] Bump unit test robolectric version to 4.10.3 by @camsim99 in 42454
- Revert "[Impeller] Add Impeller Metal support in the embedder API (#42411)" by @bdero in 42532
- [Impeller] Reland: Add Impeller Metal support in the embedder API (#42411) by @bdero in 42545
- Revert "[Impeller] Reland: Add Impeller Metal support in the embedder API (#42411)" by @zanderso in 42593
- [Impeller] Reland 2: Add Impeller Metal support in the embedder API (#42411) by @bdero in 42597
- Revert "[Android] Return keyboard pressed state" by @dkwingsmt in 42616
- [Impeller] Added a switch to turn on vulkan by @gaaclarke in 42585
- Revert "[Impeller] Added a switch to turn on vulkan" by @zanderso in 42660
- Platform channel for predictive back by @justinmc in 39208
- [Impeller] Makes validation layers flag work for android by @gaaclarke in 42625
- [Impeller] Reland: Added a switch to turn on vulkan by @gaaclarke in 42669
- Predictive back breakage fix by @justinmc in 42789
- Capture additional final inset states in ImeSyncDeferringInsetsCallback by @gmackall in 42700
- [Impeller] Reland attempt Vulkan setup and fallback to GLES. by @jonahwilliams in 42820
- [Android] Return the keyboard pressed state by @bleroux in 42758
- [android]: Make Robolectric tests work with SDK 33 by @utzcoz in 42965
- Add a note in ImeSyncDeferringInsetsCallback explaining the reason behind capturing the latest final inset state by @gmackall in 43109
- [Impeller] Give Impeller a dedicated raster priority level worker loop. by @jonahwilliams in 43166
iOS
#- Fix UIWindowSceneGeometryPreferencesIOS leak by @jmagman in 40957
- Reland [iOS] Send connectionClosed message when resignFirstResponder to ensure framework focus state is correct. by @luckysmg in 41022
- [ios] fix background crash when FlutterViewController is destroyed after engine destroyed context by @cyanglaz in 41037
- [Impeller] Make Metal layers readable by @bdero in 41085
- Makes iOS VoiceOver treat radio buttons as regualr buttons by @chunhtai in 41036
- [rotation_distortion] Use "delayed swap" solution to reduce rotation distortion by @hellohuanlin in 40730
- [Impeller] Turned on wide gamut support by default. by @gaaclarke in 39801
- Some minor doc typo and diagnostic fixes. by @gspencergoog in 40982
- Revert "[Impeller] Turned on wide gamut support by default." by @zanderso in 41382
- [Impeller] Always use BGRA10_XR for wide gamut by @bdero in 41385
- [ios] Fix hold and drag spacebar does not move cursor when obscureText is true. by @LinXunFeng in 40216
- Made sure not to turn on wide gamut support without impeller. by @gaaclarke in 41460
- [Impeller] iOS/macOS: Only wait for command scheduling prior to present (redux) by @bdero in 41501
- [platform_view] Only dispose view when it is removed from the composition order by @cyanglaz in 41521
- Disable flaky tests on arm64 by @dnfield in 41740
- Fix flaky FlutterChannelsTests, stop mocking
NSObject
by @jmagman in 41747 - [backdrop_filter]Avoid relying on internal class details by @hellohuanlin in 41873
- iPhone floating cursor selection by @moffatman in 36643
- [Impeller] switches the wide gamut surface to f16 by @gaaclarke in 41994
- [ios_platform_view] Only remove platform views from flutter view in reset. by @cyanglaz in 41709
- [ios_platform_view] only recycle maskView when the view is applying mutators by @cyanglaz in 41573
- Revert "[ios_platform_view] only recycle maskView when the view is applying mutators" by @zanderso in 42080
- [Impeller] Turned on wide gamut support by default. (#39801) by @gaaclarke in 41965
- Make iOS embedding to send full uri for deeplinks by @chunhtai in 41992
- [floating_cursor_selection]add some comments on the tricky part by @hellohuanlin in 42136
- Overrides accessibilityScrollToVisible by @chunhtai in 42047
- Reland "[ios_platform_view] only recycle maskView when the view is applying mutators #41573" by @cyanglaz in 42115
- Revert "[ios_platform_view] only recycle maskView when the view is applying mutators #41573" by @zanderso in 42231
- [Impeller] Encode render passes concurrently on iOS. by @jonahwilliams in 42028
- [Impeller] Disable the wide gamut settings flag on iOS simulators by @jason-simmons in 42331
- Fix unitialized SkRect by @knopp in 42403
- Improve getting non-overlapping rectangles from RTree by @knopp in 42399
- [iOS] Fix TextInputAction.continueAction sends wrong action to framework by @bleroux in 42615
- Use ShellTest::Config struct to create Shell by @dkwingsmt in 42332
- Fix crash with CJK keyboard with emoji at end of text field by @moffatman in 42540
- [floating_cursor_selection] a somewhat "design doc" for floating cursor feature by @hellohuanlin in 42173
- [iOS][Keyboard] Wait vsync on UI thread and update viewport inset to avoid jitter. by @luckysmg in 42312
- Reland "[ios_platform_view] only recycle maskView when the view is applying mutators #42115" by @cyanglaz in 42823
- Remove some trivial deprecated symbol usages in iOS Embedder by @cyanglaz in 42711
- [ios] view controller based status bar by @cyanglaz in 42643
- [ios] use interfaceOrientation orientation on iOS 13 and above by @cyanglaz in 42846
- [CP][iOS][Keyboard] Fix crash when FlutterEngine destroys at the same time with keyboard animation vsync callback by @cyanglaz in 43522
- [iOS] Fix FlutterViewController retain cycle (#43379) by @cyanglaz in 43523
- [CP][iOS][A11Y] fix hittest with non-SemanticsObject by @cyanglaz in 44342
- [CP][ios][autocorrection]disable autocorrection for ios 17 by @hellohuanlin in 44354
Web
#- [web] Make 'Noto Color Emoji' opt-in by @mdebbar in 40990
- Skwasm scene by @eyebrowsoffire in 40330
- Re-enable some wasm tests which have been fixed now. by @eyebrowsoffire in 40931
SemanticsFlag
/SemanticsAction
cleanup (part 3) by @bernaferrari in 40567- [web] - Move text editing nodes outside of shadowDOM, reland by @htoor3 in 40968
- Implement shadows in the skwasm renderer. by @eyebrowsoffire in 41056
- Improve Wasm Debugging. by @eyebrowsoffire in 41054
SemanticsAction
/SemanticsFlag
cleanup part 5 by @bernaferrari in 41126- Include
ui_web
API files in sky_engine. by @eyebrowsoffire in 40846 - Don't use
OffscreenCanvas
in Safari, it doesn't support WebGL. by @eyebrowsoffire in 41135 - [web:canvaskit] move path API to UniqueRef by @yjbanov in 41136
- Implement Gradient Shaders and Fragment Shaders in Skwasm by @eyebrowsoffire in 41144
- Fix skwasm's canvasDrawArc declaration and write tests. by @eyebrowsoffire in 41165
- [web:canvaskit] move shaders to UniqueRef; fix minor memory leaks by @yjbanov in 41172
- [web:canvaskit] migrate Paint API to UniqueRef by @yjbanov in 41230
- Reland ui_web files in sky_engine by @eyebrowsoffire in 41169
- [web:canvaskit] clean up the rest of skia_object_cache usages by @yjbanov in 41259
- [web:canvaskit] remove unnecessary instrumentation from picture by @yjbanov in 41313
- [web] Remove non-ShadowDom mode by @mdebbar in 39915
- [web] Fix trivial type issue. by @joshualitt in 40956
- [web] change status bar color based on SystemUiOverlayStyle by @maRci002 in 40599
- [web] Fix HashUrlStrategy.addPopStateListener by @ditman in 41384
- Remove package:js references and move to dart:js_interop by @srujzs in 41212
- Turn @staticInterop tear-off into closure by @srujzs in 41643
- Web - Fix selection jump on Chrome for Android by @bleroux in 41202
- [web] Add
dart:js_interop_unsafe
to SDK. by @joshualitt in 41591 - [web] Remove unused function parameter by @mdebbar in 41700
- [web] Improve null safety for color->css by @mdebbar in 41699
- Remove physical model layer by @jonahwilliams in 41593
- Populate fallback fonts from CIPD in tests by @eyebrowsoffire in 41656
- Skwasm Font Loading by @eyebrowsoffire in 41246
- Revert "Skwasm Font Loading" by @eyebrowsoffire in 41750
- Reland "Skwasm Font Loading by @eyebrowsoffire in 41756
- Get rid of "outrageous" default text styles for HTML renderer. by @eyebrowsoffire in 41822
- Implement text rendering in Skwasm by @eyebrowsoffire in 41832
- [web] dialog a11y fixes by @yjbanov in 41681
- [web] Re-enable history tests on Safari by @mdebbar in 41901
- [web] generalize focusability in semantics by @yjbanov in 41831
- [web] Expose PlatformLocation and HashUrlStrategy through ui_web by @mdebbar in 41163
- Turn @staticInterop tear-off into closure by @srujzs in 41885
- Return fonts in a deterministic order. by @eyebrowsoffire in 41907
- [web] Fix crash on old versions of Chrome (Intl.Segmenter missing) by @mdebbar in 41986
- [Web+Linux] Fix pressing Meta keys throws by @bleroux in 41694
- [web] Cleaner output on LUCI by @mdebbar in 41989
- Compile skwasm at -Oz. by @eyebrowsoffire in 42002
- Use new
unresolvedCodePoints
API from skia. by @eyebrowsoffire in 41991 - Initial support for images in Skwasm by @eyebrowsoffire in 42019
- Use client ICU data with skwasm. by @eyebrowsoffire in 42018
- [web] Simplify handling of custom url strategy by @mdebbar in 42043
- [web:a11y] support dialogs described by descendants by @yjbanov in 42108
- [web] Cleanup Vector3 by @mdebbar in 42096
- [web] Fix event offset for transformed widgets (and text input nodes). by @htoor3 in 41870
- Implement
ImageFilter
/ColorFilter
/MaskFilter
in Skwasm by @eyebrowsoffire in 42088 - [web] Move platformViewRegistry to ui_web by @mdebbar in 41877
- Roll watcher dependency for web_ui to 1.1.0. by @aam in 42248
- [web] Cleanup assertionsEnabled by @mdebbar in 41829
- [web] Update a11y announcements to append divs instead of setting content. by @marcianx in 42258
- [web] Hide JS types from dart:ui_web by @mdebbar in 42252
- [web] Remove comment about dart:html migration by @mdebbar in 42290
- Implement PlatformDispatcher.displays on web by @dnfield in 42297
- Only use 8 cores for web test compilation. by @eyebrowsoffire in 42321
- Implement Web Codecs for Skwasm by @eyebrowsoffire in 42184
- [Skwasm] Implement miscellaneous drawing APIs by @eyebrowsoffire in 42324
- Proper memory management in Skwasm by @eyebrowsoffire in 42328
- Apply the drawShadow bounds workaround to the Web HTML backend by @jason-simmons in 42304
- [web] - Fix autofill group input ordering by @htoor3 in 42268
- Don't use a factory constructor on the finalization registry. by @eyebrowsoffire in 42350
- [web] Use the new js_util.callMethod(Object, Object) by @mdebbar in 42352
- [web] Correct JS property name for baseUri by @mdebbar in 42357
- [web] Remove the JS API for url strategy by @mdebbar in 42134
- Revert "[web] Remove the JS API for url strategy" by @jonahwilliams in 42468
- Reland "[web] Remove the JS API for url strategy (#42134)" by @mdebbar in 42486
- [web] Move announcement live elements to the end of the DOM and make them
div
s instead oflabel
s. by @marcianx in 42432 - [web] New platform view API to get view by ID by @mdebbar in 41784
- MultiView changes for dart:ui by @goderbauer in 42493
- [web] Support platform view creation params by @mdebbar in 42255
- Add missing includes of GrBackendSurface.h by @kjlubick in 42563
- Remove onSemanticsAction by @goderbauer in 42579
- Use proper sampling options in Skwasm's drawAtlas. by @eyebrowsoffire in 42595
- [web] Remove /#/ from home page URL by @mdebbar in 42598
- Fix prefer_final_in_for_each by @scheglov in 42899
- [web] Move webOnlyAssetManager to
dart:ui_web
by @mdebbar in 42642 - add dart_internal override where necessary by @jakemac53 in 42920
- [web] Fix for Safari autofill flickering bug by @htoor3 in 42830
- [web] Don't get break type from v8BreakIterator by @mdebbar in 43053
- [web] - Fix for Safari partially autofilling form by @htoor3 in 43058
- Refactor JSNumber.toDart and Object.toJS by @srujzs in 43149
- [web] Removes patchCanvasKitModule. by @ditman in 42941
- Initialize skwasm codecs before handing them back to the user. by @eyebrowsoffire in 43274
- [web:a11y] introduce primary role responsible for ARIA roles by @yjbanov in 43159
- Revert "Refactor JSNumber.toDart and Object.toJS" by @srujzs in 43286
- Include the SkRTreeFactory headers in the skwasm picture recorder by @jason-simmons in 43292
- Prepare for utf8.encode() to return more precise Uint8List type by @mkustermann in 43335
- [web] Move web-only initialization APIs to
dart:ui_web
by @mdebbar in 43111 - [web] Add nonce configuration. by @ditman in 42829
Desktop
#- Fix flaky Windows exit unit test, remove error messages by @yaakovschectman in 40945
- [mac] Build mac framework with app extension flag by @cyanglaz in 41011
- [Windows] Ignore case optionally in
AXPlatformNodeTextRangeProviderWin::FindText
by @yaakovschectman in 39922 - [Windows] Shutdown the engine before destroying the surface by @loic-sharma in 41012
- [macOS] Fix arm64 floating-point test failure by @cbracken in 41228
- [macOS] Fix Ctrl+Tab is broken by @bleroux in 40706
- Move ownership of
AccessibilityBridgeWindows
toFlutterWindowsView
by @yaakovschectman in 41308 - [Windows] Don't block raster thread until v-blank by @loic-sharma in 41231
- [macOS] Add lookupKeyForAsset to FlutterPluginRegistrar by @zhongwuzw in 37421
- [macOS] Remove view ID from public by @dkwingsmt in 41712
- [macOS] Change view ID's type to signed and a typedef by @dkwingsmt in 41653
- Only register top level window message listener upon registering service binding by @yaakovschectman in 41733
- [macos] Disable background colour tests by @cbracken in 41904
- [macOS - TextInput] Insert new line only when TextInputAction.newline by @bleroux in 41977
- [Windows] Add force redraw to the C++ client wrapper by @loic-sharma in 42061
- [macOS] Wait for binding to be ready before requesting exits from framework by @gspencergoog in 41753
- Report displays for macOS by @dnfield in 41998
- [macOS] Clean up PlatformView mutator scaling by @cbracken in 42110
- [macOS] Refactor PlatformView mutators by @cbracken in 42130
- [macOS] Extract PlatformView mutator clip updating by @cbracken in 42164
- [macOS] Clean up unused methods in FlutterRenderer by @dkwingsmt in 42196
- [macOS] Fix FlutterViewController retain cycle by @knopp in 42317
- [macOS] Multi-view thread synchronizer by @dkwingsmt in 41915
- [macOS] Do not bounce editing state back to framework on setEditState by @Renzo-Olivares in 42091
- [macOS] Extract more PlatformViewMutator code by @cbracken in 42361
- [Windows - TextInput] Insert new line only when TextInputAction.newline by @bleroux in 42244
- [macOS] Top-left origin for PlatformView container by @cbracken in 42523
- [macOS] Force clipping to path when platform view clip rect is rotated by @knopp in 42539
- [macOS] Add platformview creation parameter support by @cbracken in 42607
- [Impeller] allowing enabling Impeller on macOS. by @jonahwilliams in 42639
- Fix inverted boolean in Windows document selection changed a11y event by @yaakovschectman in 43281
New Contributors
#- @drwez made their first contribution in 41154
- @bastionkid made their first contribution in 41082
- @maRci002 made their first contribution in 40599
- @andoriyaprashant made their first contribution in 41397
- @maruel made their first contribution in 41585
- @JonathanPeterCole made their first contribution in 39391
- @Mayb3Nots made their first contribution in 41739
- @selfisekai made their first contribution in 41794
- @marcianx made their first contribution in 42258
- @mk12 made their first contribution in 42667
Full Changelog: https://github.com/flutter/engine/compare/3.10.0...3.13.0
Unless stated otherwise, the documentation on this site reflects the latest stable version of Flutter. Page last updated on 2024-07-25. View source or report an issue.