This page has release notes for 3.13.0. For information about subsequent bug-fix releases, see our CHANGELOG.

框架

#
  • 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 to flutter_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 to CircularProgressIndicator 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, and IconButton throw exception when passing only one cursor to styleFrom 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 allow actual 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 and stream 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 call invokeCallback 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 to CircularProgressIndicator and RefreshProgressIndicator 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 an ArgumentError by @TahaTesser in 126525
  • Hide the context menu on tap down by @justinmc in 126295
  • Add FocusNode, onFocusChange, and autofocus to CupertinoSwitch 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 to NavigationDrawer by @TahaTesser in 126915
  • enable no_literal_bool_comparisons lint by @goderbauer in 126647
  • expose CupertinoDatePicker and CupertinoTimerPicker 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 and secondaryVariant from ColorScheme 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 overall InputDecorationTheme by @QuncCccccc in 127465
  • Adds TestDisplay API for testing Display 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 a hide for test_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 from AppBar 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 of MaterialState 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 of MaterialState" 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 (from AssetManifest.smcbin) by @andrewkolos in 128529
  • Remove unnecessary parentheses by @ZhulanovAA in 128620
  • migrate Tooltip to use OverlayPortal by @LongCatIsLooong in 127728
  • Update ListTile text defaults to use ColorScheme 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 to SearchBar 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 next PointerDownEvent 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 apply MediaQuery 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 to integration_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 apply MediaQuery 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 and widget_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

工具

#
  • 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 standalonepub 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 in FakeCommand 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 understand concurrency 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
  • 在 attach 整合測試中忽略在 app.detach 響應之前收到的 app.stop 事件,由 @jason-simmons 在 128593 中完成
  • [flutter_tools] 將 enable impeller 標誌傳遞給 macOS。由 @jonahwilliams 在 128720 中完成
  • [flutter_tools] 在 flutter channel 中抑制 git 輸出,由 @christopherfujino 在 128475 中完成
  • 解除 flutter_plugin_android_lifecycle 的固定,由 @gmackall 在 128898 中完成
  • 修復不一致字尾的 macOS flavor bundle 目錄,由 @arnemolland 在 127997 中完成
  • [flutter_tools] 將 flutter sdk 版本快取到磁碟,由 @christopherfujino 在 124558 中完成
  • flutter update-packages --cherry-pick-package,由 @Hixie 在 128917 中完成
  • [flutter_tools] 重構 license collector,由 @christopherfujino 在 128748 中完成
  • [flutter_tools] 將更多整合測試遷移到 process result matcher,由 @christopherfujino 在 128737 中完成
  • 修復 dart pub cache clean 命令在 pub.dart 上的問題,由 @deryrahman 在 128171 中完成
  • [flutter_tools] 在 attach 時新增對 vmServiceFileInfo 的支援,由 @DanTup 在 128503 中完成
  • [flutter_tools] 當 dart-defines-json 檔案包含 null 時修復型別轉換錯誤,由 @christopherfujino 在 128909 中完成
  • 修復 flutter_tools 升級測試中的排序依賴問題,由 @jason-simmons 在 129131 中完成
  • 重構 generate_localizations_test.dart,由 @thkim1011 在 128974 中完成
  • 使用 VM service 的新 getIsolatePauseEvent 方法來檢查暫停事件。由 @chingjun 在 128834 中完成
  • 修復 iOS 17 下 xcdevice 導致裝置重複的問題,由 @vashworth 在 128802 中完成
  • 重構 Analytics 全域性 getter,使其僅指向 context,由 @eliasyishak 在 129196 中完成
  • [flutter_tools] 為 could not open cache directory 新增 gradle 錯誤處理器,由 @christopherfujino 在 129222 中完成
  • 防止在選擇裝置時因範圍錯誤而崩潰,由 @eliasyishak 在 129290 中完成
  • 解除 path_provider_android 的固定,由 @gmackall 在 129205 中完成
  • [flutter_tools] 刪除 flutter format 命令,由 @christopherfujino 在 129360 中完成
  • [web] 隱藏 Flutter 在 debug 模式下使用 requireJS 的細節。由 @ditman 在 129032 中完成
  • 為使 intl toBeginningOfSentenceCase 變為非可空做準備,由 @oprypin 在 127488 中完成
  • 重新提交 "修復 DevTools 在使用 --start-paused 時不可立即用的問題 (#126698)",由 @bkonyi 在 129368 中完成
  • 移除 @NonNull 以避免警告,由 @fzyzcjy 在 129472 中完成
  • 為選項 --dart-define-from-file 新增 .env 檔案支援,由 @PiotrFLEURY 在 128668 中完成
  • 新增新的熱過載 case 字串,由 @helin24 在 130008 中完成
  • [flutter_tools] 修改 Skeleton 模板以使用 ListenableBuilder 而不是 AnimatedBuilder,由 @fabiancrx 在 128810 中完成
  • [CP] 修復 DDS 中的 ConcurrentModificationError,由 @christopherfujino 在 130740 中完成

新貢獻者

#
  • @Rexios80 首次貢獻,在 123726 中完成
  • @adityathakurxd 首次貢獻,在 124511 中完成
  • @gabrielgarciagava 首次貢獻,在 124459 中完成
  • @mub-pro 首次貢獻,在 122485 中完成
  • @Harishwarrior 首次貢獻,在 124684 中完成
  • @Mastersam07 首次貢獻,在 124102 中完成
  • @9oya 首次貢獻,在 124743 中完成
  • @xcc3641 首次貢獻,在 125195 中完成
  • @luccasclezar 首次貢獻,在 121829 中完成
  • @arvinwli 首次貢獻,在 125483 中完成
  • @phlippieb-discovery 首次貢獻,在 125462 中完成
  • @natsuk4ze 首次貢獻,在 126053 中完成
  • @Istiak-Ahmed78 首次貢獻,在 125785 中完成
  • @b7woreo 首次貢獻,在 125283 中完成
  • @albertoazinar 首次貢獻,在 125002 中完成
  • @lindsaypj 首次貢獻,在 125603 中完成
  • @Bungeefan 首次貢獻,在 126232 中完成
  • @MeandNi 首次貢獻,在 126660 中完成
  • @stMerlHin 首次貢獻,在 125852 中完成
  • @JellyO1 首次貢獻,在 120235 中完成
  • @mhbdev 首次貢獻,在 126207 中完成
  • @felangel 首次貢獻,在 127133 中完成
  • @NikolajHarderNota 首次貢獻,在 126431 中完成
  • @sun-jiao 首次貢獻,在 127019 中完成
  • @dleyba042 首次貢獻,在 126896 中完成
  • @JsGjKJzi 首次貢獻,在 127114 中完成
  • @matheus-kirchesch-btor 首次貢獻,在 127113 中完成
  • @vasilich6107 首次貢獻,在 127269 中完成
  • @leighajarett 首次貢獻,在 128263 中完成
  • @khanhnwin 首次貢獻,在 128078 中完成
  • @99spark 首次貢獻,在 128182 中完成
  • @ZhulanovAA 首次貢獻,在 128501 中完成
  • @cruiser-baxter 首次貢獻,在 128137 中完成
  • @arnemolland 首次貢獻,在 127997 中完成
  • @deryrahman 首次貢獻,在 128171 中完成
  • @SwaroopSambhayya 首次貢獻,在 128814 中完成
  • @yeasin50 首次貢獻,在 128181 中完成
  • @utisam 首次貢獻,在 128566 中完成
  • @AhmedLSayed9 首次貢獻,在 129066 中完成
  • @oprypin 首次貢獻,在 127488 中完成
  • @paurakhsharma 首次貢獻,在 128765 中完成
  • @crazytan 首次貢獻,在 129606 中完成
  • @ipcjs 首次貢獻,在 114303 中完成
  • @moylanm 首次貢獻,在 128902 中完成
  • @Snonky 首次貢獻,在 128804 中完成
  • @fabiancrx 首次貢獻,在 128810 中完成
  • @HenriqueNas 首次貢獻,在 128132 中完成

完整變更日誌: https://github.com/flutter/flutter/compare/3.10.0...3.13.0

引擎

#

Android

#
  • Revert "Add support for double tap action from Apple Pencil 2",由 @LouiseHsu 在 41138 中完成
  • [Android] 當鍵盤變得不可見時傳送 connectionClosed 訊息,以確保框架焦點狀態正確。由 @ksballetba 在 40746 中完成
  • Revert "[Android] Send connectionClosed message when keyboard becomes invisible to ensure framework focus state is correct.",由 @CaseyHillers 在 41211 中完成
  • 新增 AndroidSurfaceGLImpeller 單元測試,由 @gaaclarke 在 40979 中完成
  • 在呼叫 FlutterView.detachFromFlutterEngine() 時新增 null 檢查以避免 NPE,由 @bastionkid 在 41082 中完成
  • 僅保護需要保護的 SkiaGPUObject,由 @flar 在 41237 中完成
  • 透過檢視視窗焦點來確定生命週期,由 @gspencergoog 在 41094 中完成
  • [flutter roll] Revert "Determine lifecycle by looking at window focus also",由 @XilaiZhang 在 41626 中完成
  • 將父 Android engine 的 asset provider 克隆到衍生的 engine 中,由 @jason-simmons 在 41642 中完成
  • Reland: "Determine lifecycle by looking at window focus also" (#41094),由 @gspencergoog 在 41702 中完成
  • 鍵盤關閉時關閉連線,由 @ksballetba 在 41500 中完成
  • 向 dart:ui 新增一個 Display API,報告主顯示器的物理尺寸、DPR 和重新整理率,由 @dnfield 在 41685 中完成
  • [Android] 在 EdgeToEdge 鍵盤動畫期間修復不正確的 viewInsets,由 @JonathanPeterCole 在 39391 中完成
  • [Android] 生命週期預設為已聚焦而不是未聚焦,由 @gspencergoog 在 41875 中完成
  • [Impeller] [Android] 重構 Android context/surface 實現,使其更像 Skia。由 @dnfield 在 41059 中完成
  • [Impeller] 在標誌下包含 AndroidSurfaceVulkanImpeller,由 @CaseyHillers 在 42033 中完成
  • 遷移 SkSurface 工廠的使用,由 @kjlubick 在 41978 中完成
  • [Android] Shift 鍵抬起時不折疊文字選擇,由 @Renzo-Olivares 在 42075 中完成
  • [Android] 返回鍵盤按下狀態,由 @bleroux 在 41695 中完成
  • 使 android 嵌入器傳送完整的 uri,由 @chunhtai 在 41836 中完成
  • [Android] 修復 BasicMessageChannel.resizeChannelBuffer,由 @bleroux 在 41982 中完成
  • [Impeller] 避免為 Android Vulkan 建立多個併發訊息迴圈,由 @dnfield 在 42146 中完成
  • 將 SkSurface::MakeNull 移動到 SkSurfaces::Null,由 @kjlubick 在 42158 中完成
  • 為 macOS 和 Linux 新增應用程式生命週期通知,並新增 hidden 狀態。由 @gspencergoog 在 40542 中完成
  • Revert "Adding app lifecycle notification for macOS and Linux, add hidden state.",由 @zanderso 在 42384 中完成
  • Reland: "Adding app lifecycle notification for macOS and Linux, add hidden state." (#40542),由 @gspencergoog 在 42418 中完成
  • 處理 iOS 和 Android 上的 a11y 焦點事件,由 @hangyujin 在 41777 中完成
  • 修復獲取拼寫檢查建議時崩潰的問題,由 @moffatman 在 42466 中完成
  • [Impeller] 在 embedder API 中新增 Impeller Metal 支援,由 @bdero 在 42411 中完成
  • 確保呼叫 PlatformView engine 的生命週期回撥,由 @johnmccutchan 在 42491 中完成
  • [Android] 將單元測試 robolectric 版本升級到 4.10.3,由 @camsim99 在 42454 中完成
  • Revert "[Impeller] Add Impeller Metal support in the embedder API (#42411)",由 @bdero 在 42532 中完成
  • [Impeller] Reland: Add Impeller Metal support in the embedder API (#42411),由 @bdero 在 42545 中完成
  • Revert "[Impeller] Reland: Add Impeller Metal support in the embedder API (#42411)",由 @zanderso 在 42593 中完成
  • [Impeller] Reland 2: Add Impeller Metal support in the embedder API (#42411),由 @bdero 在 42597 中完成
  • Revert "[Android] Return keyboard pressed state",由 @dkwingsmt 在 42616 中完成
  • [Impeller] 添加了一個用於開啟 vulkan 的開關,由 @gaaclarke 在 42585 中完成
  • Revert "[Impeller] Added a switch to turn on vulkan",由 @zanderso 在 42660 中完成
  • 用於預測性返回的 Platform channel,由 @justinmc 在 39208 中完成
  • [Impeller] 使 validation layers 標誌適用於 android,由 @gaaclarke 在 42625 中完成
  • [Impeller] Reland: Added a switch to turn on vulkan,由 @gaaclarke 在 42669 中完成
  • Predictive back 相容性修復,由 @justinmc 在 42789 中完成
  • 在 ImeSyncDeferringInsetsCallback 中捕獲額外的最終 insets 狀態,由 @gmackall 在 42700 中完成
  • [Impeller] Reland attempt Vulkan setup and fallback to GLES.,由 @jonahwilliams 在 42820 中完成
  • [Android] 返回鍵盤按下狀態,由 @bleroux 在 42758 中完成
  • [android]: 使 Robolectric 測試與 SDK 33 相容,由 @utzcoz 在 42965 中完成
  • 在 ImeSyncDeferringInsetsCallback 中新增說明,解釋捕獲最新最終 inset 狀態的原因,由 @gmackall 在 43109 中完成
  • [Impeller] 為 Impeller 分配一個專用的光柵優先順序 worker 迴圈。由 @jonahwilliams 在 43166 中完成

iOS

#
  • 修復 UIWindowSceneGeometryPreferencesIOS 洩露,由 @jmagman 在 40957 中完成
  • Reland "[iOS] Send connectionClosed message when resignFirstResponder to ensure framework focus state is correct.",由 @luckysmg 在 41022 中完成
  • [ios] 在 engine destroyed context 後,修復 background 崩潰,由 @cyanglaz 在 41037 中完成
  • [Impeller] 使 Metal 層可讀,由 @bdero 在 41085 中完成
  • 使 iOS VoiceOver 將單選按鈕視為普通按鈕,由 @chunhtai 在 41036 中完成
  • [rotation_distortion] 使用“延遲交換”解決方案減少旋轉失真,由 @hellohuanlin 在 40730 中完成
  • [Impeller] 預設開啟寬色域支援。由 @gaaclarke 在 39801 中完成
  • 一些文件拼寫和診斷修復。由 @gspencergoog 在 40982 中完成
  • Revert "[Impeller] Turned on wide gamut support by default.",由 @zanderso 在 41382 中完成
  • [Impeller] 始終使用 BGRA10_XR 進行寬色域,由 @bdero 在 41385 中完成
  • [ios] 修復 hold and drag spacebar 在 obscureText 為 true 時不移動游標的問題。由 @LinXunFeng 在 40216 中完成
  • 確保在沒有 impeller 的情況下不開啟寬色域支援。由 @gaaclarke 在 41460 中完成
  • [Impeller] iOS/macOS: 在 present 之前僅等待命令排程 (redux),由 @bdero 在 41501 中完成
  • [platform_view] 僅當 view 從 composition order 中移除時才 dispose view,由 @cyanglaz 在 41521 中完成
  • 停用 arm64 上的不穩定測試,由 @dnfield 在 41740 中完成
  • 修復不穩定的 FlutterChannelsTests,停止模擬 NSObject,由 @jmagman 在 41747 中完成
  • [backdrop_filter] 避免依賴內部類細節,由 @hellohuanlin 在 41873 中完成
  • iPhone 浮動游標選擇,由 @moffatman 在 36643 中完成
  • [Impeller] 將寬色域 surface 切換到 f16,由 @gaaclarke 在 41994 中完成
  • [ios_platform_view] 僅在 reset 時將 platform views 從 flutter view 中移除。由 @cyanglaz 在 41709 中完成
  • [ios_platform_view] 僅在 view 應用 mutator 時回收 maskView,由 @cyanglaz 在 41573 中完成
  • Revert "[ios_platform_view] only recycle maskView when the view is applying mutators",由 @zanderso 在 42080 中完成
  • [Impeller] 預設開啟寬色域支援。(#39801),由 @gaaclarke 在 41965 中完成
  • 使 iOS 嵌入器為 deep links 傳送完整的 uri,由 @chunhtai 在 41992 中完成
  • [floating_cursor_selection] 新增一些關於棘手部分的註釋,由 @hellohuanlin 在 42136 中完成
  • 覆蓋 accessibilityScrollToVisible,由 @chunhtai 在 42047 中完成
  • Reland "[ios_platform_view] only recycle maskView when the view is applying mutators #41573",由 @cyanglaz 在 42115 中完成
  • Revert "[ios_platform_view] only recycle maskView when the view is applying mutators #41573",由 @zanderso 在 42231 中完成
  • [Impeller] 在 iOS 上併發編碼渲染通道。由 @jonahwilliams 在 42028 中完成
  • [Impeller] 在 iOS 模擬器上停用寬色域設定標誌,由 @jason-simmons 在 42331 中完成
  • 修復未初始化的 SkRect,由 @knopp 在 42403 中完成
  • 改進從 RTree 獲取非重疊矩形,由 @knopp 在 42399 中完成
  • [iOS] 修復 TextInputAction.continueAction 向框架傳送錯誤操作,由 @bleroux 在 42615 中完成
  • 使用 ShellTest::Config 結構體建立 Shell,由 @dkwingsmt 在 42332 中完成
  • 修復 CJK 鍵盤在文字欄位末尾包含 emoji 時崩潰的問題,由 @moffatman 在 42540 中完成
  • [floating_cursor_selection] 為浮動游標功能新增一些設計文件,由 @hellohuanlin 在 42173 中完成
  • [iOS][Keyboard] 在 UI 執行緒上等待 vsync 並更新 viewport inset 以避免抖動。由 @luckysmg 在 42312 中完成
  • Reland "[ios_platform_view] only recycle maskView when the view is applying mutators #41573",由 @cyanglaz 在 42823 中完成
  • 移除 iOS Embedder 中一些不重要的已棄用符號用法,由 @cyanglaz 在 42711 中完成
  • [ios] 基於 view controller 的狀態列,由 @cyanglaz 在 42643 中完成
  • [ios] 在 iOS 13 及更高版本上使用 interfaceOrientation,由 @cyanglaz 在 42846 中完成
  • [CP][iOS][Keyboard] 修復 FlutterEngine 在鍵盤動畫 vsync 回撥的同時銷燬時崩潰的問題,由 @cyanglaz 在 43522 中完成
  • [iOS] 修復 FlutterViewController 迴圈引用 (#43379),由 @cyanglaz 在 43523 中完成
  • [CP][iOS][A11Y] 修復與非 SemanticsObject 的 hittest,由 @cyanglaz 在 44342 中完成
  • [CP][ios][autocorrection] 對 iOS 17 停用自動糾正,由 @hellohuanlin 在 44354 中完成

Web

#
  • [web] 使 'Noto Color Emoji' 可選,由 @mdebbar 在 40990 中完成
  • Skwasm 場景,由 @eyebrowsoffire 在 40330 中完成
  • 重新啟用一些已修復的 wasm 測試。由 @eyebrowsoffire 在 40931 中完成
  • SemanticsFlag/SemanticsAction 清理 (第 3 部分),由 @bernaferrari 在 40567 中完成
  • [web] - 將文字編輯節點移出 shadowDOM,重新提交,由 @htoor3 在 40968 中完成
  • 在 Skwasm 渲染器中實現陰影。由 @eyebrowsoffire 在 41056 中完成
  • 改進 Wasm 除錯。由 @eyebrowsoffire 在 41054 中完成
  • SemanticsAction / SemanticsFlag 清理第 5 部分,由 @bernaferrari 在 41126 中完成
  • 將 ui_web API 檔案包含在 sky_engine 中。由 @eyebrowsoffire 在 40846 中完成
  • 在 Safari 中不要使用 OffscreenCanvas,它不支援 WebGL。由 @eyebrowsoffire 在 41135 中完成
  • [web:canvaskit] 將 path API 移至 UniqueRef,由 @yjbanov 在 41136 中完成
  • 在 Skwasm 中實現漸變著色器和片段著色器,由 @eyebrowsoffire 在 41144 中完成
  • 修復 skwasm 的 canvasDrawArc 宣告並編寫測試。由 @eyebrowsoffire 在 41165 中完成
  • [web:canvaskit] 將著色器移至 UniqueRef;修復少量記憶體洩漏,由 @yjbanov 在 41172 中完成
  • [web:canvaskit] 將 Paint API 遷移到 UniqueRef,由 @yjbanov 在 41230 中完成
  • 在 sky_engine 中重新提交 ui_web 檔案,由 @eyebrowsoffire 在 41169 中完成
  • [web:canvaskit] 清理其餘的 skia_object_cache 用法,由 @yjbanov 在 41259 中完成
  • [web:canvaskit] 從 picture 中移除不必要的 instrumentation,由 @yjbanov 在 41313 中完成
  • [web] 移除非 ShadowDom 模式,由 @mdebbar 在 39915 中完成
  • [web] 修復微小的型別問題。由 @joshualitt 在 40956 中完成
  • [web] 根據 SystemUiOverlayStyle 更改狀態列顏色,由 @maRci002 在 40599 中完成
  • [web] 修復 HashUrlStrategy.addPopStateListener,由 @ditman 在 41384 中完成
  • 移除 package:js 引用並遷移到 dart:js_interop,由 @srujzs 在 41212 中完成
  • 將 @staticInterop tear-off 轉換為閉包,由 @srujzs 在 41643 中完成
  • Web - 修復 Chrome for Android 的選擇跳動問題,由 @bleroux 在 41202 中完成
  • [web] 將 dart:js_interop_unsafe 新增到 SDK。由 @joshualitt 在 41591 中完成
  • [web] 移除未使用的函式引數,由 @mdebbar 在 41700 中完成
  • [web] 改進 color->css 的空安全,由 @mdebbar 在 41699 中完成
  • 移除物理模型層,由 @jonahwilliams 在 41593 中完成
  • 在測試中從 CIPD 填充回退字型,由 @eyebrowsoffire 在 41656 中完成
  • Skwasm 字型載入,由 @eyebrowsoffire 在 41246 中完成
  • Revert "Skwasm Font Loading",由 @eyebrowsoffire 在 41750 中完成
  • Reland "Skwasm Font Loading",由 @eyebrowsoffire 在 41756 中完成
  • 移除 HTML 渲染器的“過分”預設文字樣式。由 @eyebrowsoffire 在 41822 中完成
  • 在 Skwasm 中實現文字渲染,由 @eyebrowsoffire 在 41832 中完成
  • [web] dialog a11y 修復,由 @yjbanov 在 41681 中完成
  • [web] 重新啟用 Safari 上的歷史記錄測試,由 @mdebbar 在 41901 中完成
  • [web] 在 semantics 中通用 focusability,由 @yjbanov 在 41831 中完成
  • [web] 透過 ui_web 公開 PlatformLocation 和 HashUrlStrategy,由 @mdebbar 在 41163 中完成
  • 將 @staticInterop tear-off 轉換為閉包,由 @srujzs 在 41885 中完成
  • 以確定的順序返回字型。由 @eyebrowsoffire 在 41907 中完成
  • [web] 修復舊版本 Chrome 上的崩潰(Intl.Segmenter 缺失),由 @mdebbar 在 41986 中完成
  • [Web+Linux] 修復按下 Meta 鍵時丟擲異常,由 @bleroux 在 41694 中完成
  • [web] 在 LUCI 上輸出更清晰,由 @mdebbar 在 41989 中完成
  • 以 -Oz 編譯 skwasm。由 @eyebrowsoffire 在 42002 中完成
  • 使用 skia 的新 unresolvedCodePoints API。由 @eyebrowsoffire 在 41991 中完成
  • Skwasm 中的初始影像支援,由 @eyebrowsoffire 在 42019 中完成
  • 使用客戶端 ICU 資料與 skwasm。由 @eyebrowsoffire 在 42018 中完成
  • [web] 簡化自定義 url strategy 的處理,由 @mdebbar 在 42043 中完成
  • [web:a11y] 支援由後代描述的 dialogs,由 @yjbanov 在 42108 中完成
  • [web] 清理 Vector3,由 @mdebbar 在 42096 中完成
  • [web] 修復轉換 widget(以及文字輸入節點)的事件偏移。由 @htoor3 在 41870 中完成
  • 在 Skwasm 中實現 ImageFilter/ColorFilter/MaskFilter,由 @eyebrowsoffire 在 42088 中完成
  • [web] 將 platformViewRegistry 移至 ui_web,由 @mdebbar 在 41877 中完成
  • 將 web_ui 的 watcher 依賴更新到 1.1.0。由 @aam 在 42248 中完成
  • [web] 清理 assertionsEnabled,由 @mdebbar 在 41829 中完成
  • [web] 更新 a11y announcements 以追加 div 而不是設定內容。由 @marcianx 在 42258 中完成
  • [web] 從 dart:ui_web 中隱藏 JS 型別,由 @mdebbar 在 42252 中完成
  • [web] 移除關於 dart:html 遷移的註釋,由 @mdebbar 在 42290 中完成
  • 在 web 上實現 PlatformDispatcher.displays,由 @dnfield 在 42297 中完成
  • 僅為 web 測試編譯使用 8 個核心。由 @eyebrowsoffire 在 42321 中完成
  • 為 Skwasm 實現 Web Codecs,由 @eyebrowsoffire 在 42184 中完成
  • [Skwasm] 實現雜項繪圖 API,由 @eyebrowsoffire 在 42324 中完成
  • Skwasm 的正確記憶體管理,由 @eyebrowsoffire 在 42328 中完成
  • 將 drawShadow 邊界的變通方法應用於 Web HTML 後端,由 @jason-simmons 在 42304 中完成
  • [web] - 修復 autofill group 輸入順序,由 @htoor3 在 42268 中完成
  • 不要在 finalization registry 上使用 factory 建構函式。由 @eyebrowsoffire 在 42350 中完成
  • [web] 使用新的 js_util.callMethod(Object, Object),由 @mdebbar 在 42352 中完成
  • [web] 修正 baseUri 的 JS 屬性名,由 @mdebbar 在 42357 中完成
  • [web] 移除 url strategy 的 JS API,由 @mdebbar 在 42134 中完成
  • Revert "[web] Remove the JS API for url strategy",由 @jonahwilliams 在 42468 中完成
  • Reland "[web] Remove the JS API for url strategy (#42134)",由 @mdebbar 在 42486 中完成
  • [web] 將 announcement live elements 移至 DOM 末尾,並將其設定為 div 而不是 label。由 @marcianx 在 42432 中完成
  • [web] 新的 platform view API,用於透過 ID 獲取 view,由 @mdebbar 在 41784 中完成
  • dart:ui 的 MultiView 更改,由 @goderbauer 在 42493 中完成
  • [web] 支援 platform view 建立引數,由 @mdebbar 在 42255 中完成
  • 新增 GrBackendSurface.h 的缺失包含,由 @kjlubick 在 42563 中完成
  • 移除 onSemanticsAction,由 @goderbauer 在 42579 中完成
  • 在 Skwasm 的 drawAtlas 中使用正確的取樣選項。由 @eyebrowsoffire 在 42595 中完成
  • [web] 移除主頁 URL 中的 /#/, 由 @mdebbar 在 42598 中完成
  • 修復 prefer_final_in_for_each,由 @scheglov 在 42899 中完成
  • [web] 將 webOnlyAssetManager 移至 dart:ui_web,由 @mdebbar 在 42642 中完成
  • 在必要的地方新增 dart_internal override,由 @jakemac53 在 42920 中完成
  • [web] 修復 Safari 自動填充閃爍錯誤,由 @htoor3 在 42830 中完成
  • [web] 不要從 v8BreakIterator 獲取 break type,由 @mdebbar 在 43053 中完成
  • [web] - 修復 Safari 部分自動填充表單的問題,由 @htoor3 在 43058 中完成
  • 重構 JSNumber.toDart 和 Object.toJS,由 @srujzs 在 43149 中完成
  • [web] 移除 patchCanvasKitModule。由 @ditman 在 42941 中完成
  • 在將 skwasm codecs 交還給使用者之前對其進行初始化。由 @eyebrowsoffire 在 43274 中完成
  • [web:a11y] 引入負責 ARIA 角色的 primary role,由 @yjbanov 在 43159 中完成
  • Revert "Refactor JSNumber.toDart and Object.toJS",由 @srujzs 在 43286 中完成
  • 在 skwasm picture recorder 中包含 SkRTreeFactory 標頭檔案,由 @jason-simmons 在 43292 中完成
  • 為 utf8.encode() 返回更精確的 Uint8List 型別做準備,由 @mkustermann 在 43335 中完成
  • [web] 將 web-only 初始化 API 移至 dart:ui_web,由 @mdebbar 在 43111 中完成
  • [web] 新增 nonce 配置。由 @ditman 在 42829 中完成

桌面端

#
  • 修復不穩定的 Windows exit 單元測試,移除錯誤訊息,由 @yaakovschectman 在 40945 中完成
  • [mac] 使用 app extension 標誌構建 mac framework,由 @cyanglaz 在 41011 中完成
  • [Windows] 在 AXPlatformNodeTextRangeProviderWin::FindText 中可選地忽略大小寫,由 @yaakovschectman 在 39922 中完成
  • [Windows] 在銷燬 surface 之前關閉 engine,由 @loic-sharma 在 41012 中完成
  • [macOS] 修復 arm64 浮點測試失敗,由 @cbracken 在 41228 中完成
  • [macOS] 修復 Ctrl+Tab 無法工作的問題,由 @bleroux 在 40706 中完成
  • 將 AccessibilityBridgeWindows 的所有權移交給 FlutterWindowsView,由 @yaakovschectman 在 41308 中完成
  • [Windows] 在 v-blank 之前不阻塞光柵執行緒,由 @loic-sharma 在 41231 中完成
  • [macOS] 向 FlutterPluginRegistrar 新增 lookupKeyForAsset,由 @zhongwuzw 在 37421 中完成
  • [macOS] 從 public 中移除 view ID,由 @dkwingsmt 在 41712 中完成
  • [macOS] 將 view ID 的型別更改為 signed 並使用 typedef,由 @dkwingsmt 在 41653 中完成
  • 僅在註冊 service binding 時註冊頂級視窗訊息監聽器,由 @yaakovschectman 在 41733 中完成
  • [macos] 停用背景顏色測試,由 @cbracken 在 41904 中完成
  • [macOS - TextInput] 僅在 TextInputAction.newline 時插入新行,由 @bleroux 在 41977 中完成
  • [Windows] 向 C++ 客戶端包裝器新增 force redraw,由 @loic-sharma 在 42061 中完成
  • [macOS] 在請求框架退出之前等待 binding 就緒,由 @gspencergoog 在 41753 中完成
  • 報告 macOS 的顯示器,由 @dnfield 在 41998 中完成
  • [macOS] 清理 PlatformView mutator scaling,由 @cbracken 在 42110 中完成
  • [macOS] 重構 PlatformView mutators,由 @cbracken 在 42130 中完成
  • [macOS] 提取 PlatformView mutator clip 更新,由 @cbracken 在 42164 中完成
  • [macOS] 清理 FlutterRenderer 中未使用的函式,由 @dkwingsmt 在 42196 中完成
  • [macOS] 修復 FlutterViewController 迴圈引用,由 @knopp 在 42317 中完成
  • [macOS] Multi-view 執行緒同步器,由 @dkwingsmt 在 41915 中完成
  • [macOS] 在 setEditState 時不將編輯狀態 bounce 回框架,由 @Renzo-Olivares 在 42091 中完成
  • [macOS] 提取更多 PlatformViewMutator 程式碼,由 @cbracken 在 42361 中完成
  • [Windows - TextInput] 僅在 TextInputAction.newline 時插入新行,由 @bleroux 在 42244 中完成
  • [macOS] PlatformView 容器的左上角原點,由 @cbracken 在 42523 中完成
  • [macOS] 當 platform view clip rect 旋轉時,強制剪裁到路徑,由 @knopp 在 42539 中完成
  • [macOS] 新增 platformview 建立引數支援,由 @cbracken 在 42607 中完成
  • [Impeller] 允許在 macOS 上啟用 Impeller。由 @jonahwilliams 在 42639 中完成
  • 修復 Windows 文字選擇更改 a11y 事件中的反向布林值,由 @yaakovschectman 在 43281 中完成

新貢獻者

#
  • @drwez 首次貢獻,在 41154 中完成
  • @bastionkid 首次貢獻,在 41082 中完成
  • @maRci002 首次貢獻,在 40599 中完成
  • @andoriyaprashant 首次貢獻,在 41397 中完成
  • @maruel 首次貢獻,在 41585 中完成
  • @JonathanPeterCole 首次貢獻,在 39391 中完成
  • @Mayb3Nots 首次貢獻,在 41739 中完成
  • @selfisekai 首次貢獻,在 41794 中完成
  • @marcianx 首次貢獻,在 42258 中完成
  • @mk12 首次貢獻,在 42667 中完成

完整變更日誌: https://github.com/flutter/engine/compare/3.10.0...3.13.0