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
Was this page's content helpful?
Thank you for your feedback!
Provide details Thank you for your feedback! Please let us know what we can do to improve.
Provide details Unless stated otherwise, the documentation on this site reflects the latest stable version of Flutter. Page last updated on 2025-01-17. View source or report an issue.