Flutter 3.24.0 release notes

This page has release notes for 3.24.0. For information about subsequent bug-fix releases, check out the Flutter CHANGELOG.

Flutter framework

#

Framework

#
  • RenderFlex baseline intrinsics by @LongCatIsLooong in 145483
  • Upgrade leak_tracker. by @polina-c in 145940
  • Upgrade leak_tracker. by @polina-c in 145997
  • Remove state shared across tests by @Hixie in 145281
  • Add flutter_goldens README by @Hixie in 145278
  • Implement computeDryBaseline for cupertino RenderBoxes by @LongCatIsLooong in 145951
  • Fixes some gesture recognizers are not disposed. by @Dimilkalathiya in 146072
  • Fix SliverMainAxisGroup layout in reverse by @Piinks in 145572
  • Add test for animated_container.0.dart API example. by @ksokolovskyi in 145995
  • Implement SelectionArea triple click gestures by @Renzo-Olivares in 144563
  • Dispose FocusNode in tests. by @polina-c in 146161
  • Update material_color_utilities package version to latest 0.11.1 by @QuncCccccc in 145959
  • Avoid calling TextPainter.plainText for simple static text by @LongCatIsLooong in 146084
  • Renderflex cross intrinsic size with baseline alignment by @LongCatIsLooong in 146185
  • Fix TextStyle.lerp() to properly interpolate text shadows by @leoafarias in 145666
  • computeDryBaseline for rendering / widgets RenderBoxes by @LongCatIsLooong in 146143
  • Add tests for theme_extension.1.dart API example. by @ksokolovskyi in 145819
  • Update documentation to discourage using the TextEditingController.text setter by @victorsanni in 146151
  • Bump to AGP 8.1/Gradle 8.3 (almost) everywhere by @gmackall in 146181
  • Reverts "Bump to AGP 8.1/Gradle 8.3 (almost) everywhere (#146181)" by @auto-submit in 146305
  • Fix cursor is not centered when cursorHeight is set (non-Apple platforms). by @bleroux in 145829
  • Reland "Bump to AGP 8.1/Gradle 8.3 (almost) everywhere" by @gmackall in 146307
  • Make FileSystem dependency explicit througout. by @Hixie in 146008
  • Remove double heading by @goderbauer in 146441
  • Roll pub packages by @flutter-pub-roller-bot in 146444
  • Correct doc for AnimationMin by @goderbauer in 146531
  • Remove additional references to engine v1 android embedding by @gmackall in 146523
  • [Windows] Drop support for Windows 7/8 apps in template by @cbracken in 146668
  • Fix curved animation memory leak for scrollbar by @ValentinVignal in 146670
  • Support flutter run --wasm and flutter drive --wasm. by @eyebrowsoffire in 146231
  • Update gen_keycodes templates by @jmagman in 146481
  • Fix getOffsetForCaret crash by @LongCatIsLooong in 146669
  • Light sliver clean up before SliverTree by @Piinks in 146696
  • [flutter_tools] Fix conductor for package args roll by @christopherfujino in 146646
  • test: Fix memory leak in transitions test by @ValentinVignal in 146747
  • Update leak related TODOs. by @polina-c in 146743
  • Add hitTestBehavior and rootOverlay to LongPressDraggable constructor… by @Amir-P in 146386
  • Roll pub packages by @flutter-pub-roller-bot in 146797
  • Fix doc reference to RendererBinding.renderViews by @goderbauer in 146837
  • Roll pub packages by @flutter-pub-roller-bot in 146842
  • Remove checked mode references by @goderbauer in 146845
  • Added missing tests for OverflowBar example. by @matthew-carroll in 146780
  • [iOS] Migrate @UIApplicationMain attribute to @main by @loic-sharma in 146707
  • fix test-case for RenderView by @Dimilkalathiya in 146825
  • Rewrap some lines that are about to get much longer. by @Hixie in 146803
  • Unpin frontend_server_client and roll packages by @derekxu16 in 146650
  • Try to be more consistent about deleting test apps in devicelab logic. by @Hixie in 146856
  • Reverts "Try to be more consistent about deleting test apps in devicelab logic. (#146856)" by @auto-submit in 146927
  • Get rid of _NullElement. by @polina-c in 146741
  • Remove now-redundant tests for isForEnvironment by @Hixie in 146804
  • Try to be more consistent about deleting test apps in devicelab logic by @Hixie in 146931
  • Reverts "Try to be more consistent about deleting test apps in devicelab logic (#146931)" by @auto-submit in 146947
  • Assert that the goldenFileComparator is a LocalFileComparator by @Hixie in 146802
  • Make goldenFileComparator a field instead of a trivial property by @Hixie in 146800
  • Bump meta to 1.14.0 by @goderbauer in 146925
  • [macOS] Migrate @NSApplicationMain attribute to @main by @loic-sharma in 146848
  • Dispose the curved animation in transition test by @ValentinVignal in 146961
  • Add Swift Package Manager as new opt-in feature for iOS and macOS by @vashworth in 146256
  • Update link branches to main (continued) by @guidezpl in 146985
  • Add test for preferred_size.0.dart API example. by @ksokolovskyi in 146725
  • Add test for dismissible.0.dart API example. by @ksokolovskyi in 146723
  • Add test for animated_padding.0.dart API example. by @ksokolovskyi in 146718
  • Add tests for gesture_detector.0.dart and gesture_detector.1.dart API examples. by @ksokolovskyi in 146724
  • fixes some gesture not getting disposed by @Dimilkalathiya in 147112
  • Update examples/api for android platform by @lamnhan066 in 147102
  • fixes cupertino page transition leak by @Dimilkalathiya in 147133
  • Add test for animated_positioned.0.dart API example. by @ksokolovskyi in 146720
  • Fix typos related to Navigator by @choi88andys in 147221
  • Add test for animated_align.0.dart API example. by @ksokolovskyi in 146719
  • Fix frozen StretchingOverscrollIndicator animation by @gilnobrega in 147195
  • Add test for focus_node.0.dart API example. by @ksokolovskyi in 146943
  • Adds AutovalidateMode.onFocusChange to Form and FormField by @Mairramer in 140962
  • Add test for sliver_animated_opacity.0.dart API example. by @ksokolovskyi in 146722
  • Remove unneeded local variables and comments in Editable and RenderParagraph by @tgucio in 146843
  • Remove hidden dependencies on the default goldenFileComparator. by @Hixie in 146956
  • Allow the SceneBuilder, PictureRecord, and Canvas constructor calls from the rendering layer to be hooked by @Hixie in 147271
  • Fix memory leaks in Hero widget by @ValentinVignal in 147303
  • zero-sized RenderConstraintsTransformBox respects clipBehavior by @LongCatIsLooong in 147349
  • Clean up leaks in a test. by @polina-c in 147312
  • Refactor route focus node creation by @gspencergoog in 147390
  • fixes CupertinoFullscreenDialogTransition leaks by @Dimilkalathiya in 147168
  • Added missing tests for Table api example table.0.dart. by @kishan-dhankecha in 147318
  • Add tests for character_activator.0.dart API example. by @ksokolovskyi in 147384
  • Add configurable hitTestBehavior to Scrollable by @Amir-P in 146403
  • Added missing code block language in docs by @kishan-dhankecha in 147481
  • Add tests for single_activator.0.dart API example. by @ksokolovskyi in 147426
  • Update reorderable_list.dart to use Dart 3 return switch statement for consistency by @EchoEllet in 147505
  • Add test for animated_fractionally_sized_box.0.dart API example. by @ksokolovskyi in 146721
  • Draggable feedback positioning by @timcreatedit in 145647
  • Reverts "Draggable feedback positioning (#145647)" by @auto-submit in 147658
  • Implement computeDryBaseline for RenderWrap by @LongCatIsLooong in 146260
  • Update selectable_text_test.dart by @polina-c in 147677
  • Implement getDryBaseline for Stack and Overlay by @LongCatIsLooong in 146253
  • Allow explicit exclusion of packages from pinned packages in flutter update-packages --force-update by @gspencergoog in 147679
  • Reverts "Implement computeDryBaseline for RenderWrap (#146260)" by @auto-submit in 147692
  • Improved documentation for SpringSimulation by @drown0315 in 146674
  • Fix memory leaks in CupertinoSwitch by @ValentinVignal in 147821
  • Fix leak in a test. by @polina-c in 147846
  • Fix janks and memory leaks in CupertinoPageTransition and CupertinoFullscreenDialogTransition by @ValentinVignal in 146999
  • Roll pub packages by @flutter-pub-roller-bot in 147891
  • MultiSelectableSelectionContainerDelegate documentation fixes. by @davidhicks980 in 147843
  • Roll pub packages by @flutter-pub-roller-bot in 147896
  • test focus example 0 by @NobodyForNothing in 147564
  • Added missing tests for ButtonStyle example by @osama383 in 147457
  • Add tests for shortcuts.dart API examples. by @ksokolovskyi in 147433
  • Add tests for callback_shortcuts.0.dart API example. by @ksokolovskyi in 147536
  • Change dialog font family by @MitchellGoodwin in 141295
  • improve focus example by @NobodyForNothing in 147464
  • Implement RenderEditable.computeDryBaseline by @LongCatIsLooong in 147911
  • [web] Use platform detection from Flutter web engine. by @ditman in 147346
  • fixes RawDialogRoute memory leak by @Dimilkalathiya in 147817
  • Fix more memory leaks in cupertino page transition by @ValentinVignal in 147907
  • Unpin DDS and roll pub packages by @DanTup in 147925
  • Fix memory leaks in context menu by @ValentinVignal in 147822
  • Fix semantic debugger by @goderbauer in 147953
  • Exclude abi key in local golden file testing by @Piinks in 148023
  • Remove hidden dependencies on the default LocalPlatform by @Hixie in 147342
  • Don't pin package:macros by @christopherfujino in 148087
  • Reland "Implement computeDryBaseline for RenderWrap (#146260)" by @LongCatIsLooong in 148086
  • Add tests for stream_builder.0.dart API example. by @ksokolovskyi in 147832
  • Add test for draggable.0.dart API example. by @ksokolovskyi in 147941
  • Add test for animated_size.0.dart API example. by @ksokolovskyi in 147828
  • Add test for scaffold.1.dart by @ValentinVignal in 147966
  • test sliver fill remaining examples by @NobodyForNothing in 148041
  • Native ios context menu by @justinmc in 143002
  • Reverts "Native ios context menu (#143002)" by @auto-submit in 148237
  • Reland Native ios context menu (#143002) by @justinmc in 148238
  • Reverts "Reland Native ios context menu (#143002) (#148238)" by @auto-submit in 148254
  • Use super.key instead of manually passing the Key parameter to the parent class by @EchoEllet in 147621
  • test material text field example by @NobodyForNothing in 147864
  • Maintain the same layout constraints for item in the ReorderableList during dragging as before dragging. by @yiiim in 147863
  • Fix abi key for local golden file testing by @Piinks in 148072
  • Reland Native ios context menu (#143002) (#148238) by @justinmc in 148265
  • Update _handlePushRouteInformation to Futureto indicate whether any of the observer has handled the route or not by @hangyujin in 147901
  • Fix leaky tests. by @polina-c in 148434
  • Enhanced enum features for AnimationStatus by @nate-thegrate in 147801
  • Add tests for scaffold.of.#.dart API examples. by @ksokolovskyi in 147637
  • Add test for fade_transition.0.dart API example. by @ksokolovskyi in 148178
  • Add test for tab_controller.1.dart API example. by @ksokolovskyi in 148189
  • Add test for image.error_builder.0.dart API example. by @ksokolovskyi in 148497
  • fixes CupertinoModalPopupRoute by @Dimilkalathiya in 147823
  • Fix painting API examples tests directories structure. by @ksokolovskyi in 148177
  • Add tests for logical_key_set.0.dart API example. by @ksokolovskyi in 147735
  • Add tests for shared_app_data.#.dart API examples. by @ksokolovskyi in 147830
  • SelectionArea's selection should not be cleared on loss of window focus by @Renzo-Olivares in 148067
  • Make FileSystem dependency explicit througout (more). by @Hixie in 148095
  • Adds tests to NestedScrollView examples by @NobodyForNothing in 148170
  • Remove hidden dependencies on LocalProcessManager by @Hixie in 148096
  • [wiki migration] Infra team pages by @Piinks in 148718
  • Add test for focus example 2 by @NobodyForNothing in 147624
  • Fix test that leaks images. by @polina-c in 148494
  • Add test for undo_history_controller.0.dart by @ValentinVignal in 148205
  • Fix two dimensional viewport unexpected null exception when no child is laid out by @Amir-P in 148256
  • Add tests for actions.0.dart API example. by @ksokolovskyi in 148678
  • CupertinoDialogRoute leak fix by @Dimilkalathiya in 148774
  • Try removing robolectric from integration_test tests by @gmackall in 148803
  • Remove an assert with false positives by @LongCatIsLooong in 148795
  • Add frame number and widget location map service extension by @helin24 in 148702
  • Allow RenderObject.getTransformTo to take an arbitrary RenderObject in the same tree by @LongCatIsLooong in 148897
  • Add tests for restorable_value.0.dart API example. by @ksokolovskyi in 148676
  • Add test for scaffold.0.dart and scaffold.2.dart by @ValentinVignal in 148166
  • Test raw autocomplete api examples by @NobodyForNothing in 148234
  • Fix DecoratedSliver sample code to reflect the description by @huycozy in 148621
  • Update FocusManager platform check to include iOS by @nate-thegrate in 148612
  • Remove hidden dependencies on HttpClient by @Hixie in 148773
  • Test snack bar examples by @NobodyForNothing in 147774
  • Test remaining transitions api examples by @NobodyForNothing in 148302
  • [wiki migration] Remaining pages under docs/contributing/ by @Piinks in 148790
  • Reland "Update FocusManager platform check to include iOS" by @nate-thegrate in 148984
  • Fix TwoDimensionalViewport's keep alive child not always removed (when no longer should be kept alive) by @gawi151 in 148298
  • Add test for text_editing_controller.0.dart API example. by @ksokolovskyi in 148872
  • Add tests for editable_text.on_changed.0.dart API example. by @ksokolovskyi in 148874
  • Fix Linux numpad shortcuts on web by @bleroux in 148988
  • Add test for future_builder.0.dart by @ValentinVignal in 148453
  • Remove TextEditingController private member access by @LongCatIsLooong in 149042
  • Add selectionOverlayBuilder in CupertinoDatePicker and CupertinoTimer… by @varunkamanibosc in 143079
  • Fix the RenderFlex.computeDryBaseline implementation to match computeDistanceToActualBaseline by @LongCatIsLooong in 149062
  • Add link to golden file test docs in the framework gardener guide by @loic-sharma in 149207
  • sliverGridDelegate mainAxisExtent add assert by @hello-coder-xu in 148470
  • Reverts "sliverGridDelegate mainAxisExtent add assert (#148470)" by @auto-submit in 149224
  • Add tests for animated_switcher.0.dart API example. by @ksokolovskyi in 149180
  • Clean leak in editable_text_test.dart. by @polina-c in 149223
  • Add a sentinel value for TextStyle.height by @LongCatIsLooong in 149049
  • Add test for radio.toggleable.0.dart by @ValentinVignal in 149153
  • Add test for inherited_theme.0.dart by @ValentinVignal in 149120
  • Prevent LayoutBuilder from rebuilding more than once by @LongCatIsLooong in 147856
  • temporarily disable SemanticsAction tests to unblock engine change by @yjbanov in 149274
  • Reverts "Prevent LayoutBuilder from rebuilding more than once (#147856)" by @auto-submit in 149279
  • disable Impeller on external texture test. by @jonahwilliams in 149292
  • [GAR] [a11y] Update text button page in a11y assessment app by @hangyujin in 148905
  • Remove hidden dependency on ABI. by @Hixie in 148987
  • Add tests for tween_animation_builder.0.dart API example. by @ksokolovskyi in 148902
  • Adding a default case to unblock engine roll. by @chingjun in 149353
  • Add feedback for long press on iOS by @victorsanni in 148922
  • Manual pub roll w/ gradle lockfile regeneration by @gmackall in 149342
  • Wire up SemanticsAction.focus to the framework by @yjbanov in 149374
  • DRY up FakeCodec by @kevmoo in 149381
  • Fix incorrect behavior of ScrollViewKeyboardDismissBehavior.onDrag for ScrollViewers with Drawer by @dawidope in 148948
  • Rewrite CupertinoActionSheet by @dkwingsmt in 149334
  • _NoOpCodec review feedback by @kevmoo in 149442
  • Reland "Prevent LayoutBuilder from rebuilding more than once (#147856)" by @LongCatIsLooong in 149303
  • [CupertinoActionSheet] Fix overflow of the overscroll section when the user scrolls far by @dkwingsmt in 149542
  • Roll pub packages by @flutter-pub-roller-bot in 149617
  • Fix the scrolling layout deviation of CupertinoActionSheet by @dkwingsmt in 149439
  • Allow find.byTooltip to use a RegEx by @gspencergoog in 149348
  • Scrollbar thumb drag gestures now produce one start and one end scroll notification by @HansMuller in 146654
  • Prepares semantics_update_test for upcoming heading level changes by @chunhtai in 149671
  • TreeSliver & associated classes by @Piinks in 147171
  • Feature: Add AnimatedList with separators by @Peetee06 in 144899
  • Reverts "TreeSliver & associated classes (#147171)" by @auto-submit in 149754
  • Remove temporary LayoutBuilder migration flag, defer markNeedsLayout by @LongCatIsLooong in 149637
  • Fixes Router transaction to respect operation order by @chunhtai in 149763
  • Remove abi key from local golden file testing by @Piinks in 149696
  • Fix some links in the "Handling breaking change" section by @mdebbar in 149821
  • Fix leaky test. by @polina-c in 149822
  • Add support for setting the heading level for web semantics (#97894) by @victorgalo in 125771
  • SliverResizingHeader by @HansMuller in 143325
  • Roll pub packages by @flutter-pub-roller-bot in 149852
  • [CupertinoActionSheet] Add sliding tap gesture by @dkwingsmt in 149471
  • Remove abi key permanently from golden file testing by @Piinks in 149858
  • Remove some vestigial /!/ comments by @Hixie in 149361
  • Add test for standard_fab_location.0.dart by @ValentinVignal in 149225
  • Add test for dropdown_menu.1.dart by @ValentinVignal in 149547
  • Refactor widget_inspector_test.dart by @elliette in 149850
  • Prepare images for tests individually to enable clean up of cache. by @polina-c in 149693
  • Fix test case in "getRootWidgetSummaryTree" test by @elliette in 149923
  • PinnedHeaderSliver by @HansMuller in 143196
  • Refactor getRootWidgetSummaryTree tests in widget_inspector_test.dart by @elliette in 149930
  • [CupertinoActionSheet] Match colors to native by @dkwingsmt in 149568
  • Revert "[CupertinoActionSheet] Match colors to native (#149568)" by @vashworth in 149998
  • Retain the toString method for subclasses of Key in profile/release mode by @jason-simmons in 149926
  • Update hasTrailingSpaces by @ttorii20 in 149698
  • Cut no-longer-accurate microtask reference in finalizeTree doc by @gnprice in 149941
  • [web] Notify engine of handled PointerScrollEvents. by @ditman in 145500
  • Use const bool.fromEnvironment("dart.tool.dart2wasm") to detect dart2wasm by @mkustermann in 149996
  • Fixes TextField hinttext in a11y_assessment by @chunhtai in 150007
  • Reland: [CupertinoActionSheet] Match colors to native (#149568) by @dkwingsmt in 150015
  • Reverts "Reland: [CupertinoActionSheet] Match colors to native (#149568) (#150015)" by @auto-submit in 150021
  • Fixes a bug where NavigatorState.pop does not consider any possible s… by @chunhtai in 150014
  • Fix copy-paste-o in MethodChannel.invokeListMethod doc by @gnprice in 149976
  • Add tests for scaffold drawer and end drawer by @ValentinVignal in 149383
  • Fix ColorScheme example and tests by @gspencergoog in 150018
  • Add new WidgetInspector service extension: getRootWidgetTree by @elliette in 150010
  • Remove double MaterialApp wrap from api samples by @goderbauer in 150055
  • Roll pub packages by @flutter-pub-roller-bot in 150070
  • Reland "Add tests for scaffold drawer and end drawer" (#150045) by @ValentinVignal in 150047
  • Fix markdown hyperlinks in the style guide by @nate-thegrate in 150071
  • Update WidgetStatesController docs by @FMorschel in 150081
  • Reland 2: [CupertinoActionSheet] Match colors to native by @dkwingsmt in 150129
  • RawScrollbar: don't listen for drag gestures when scrolling is not possible by @HansMuller in 149925
  • Revert "[CupertinoActionSheet] Add sliding tap gesture" by @dkwingsmt in 150147
  • Fix leaky test. by @polina-c in 150235
  • Include transform in static Gradient lerp methods by @Zabadam in 149624
  • Switch to Iterable.cast instance method by @parlough in 150185
  • Add tests for navigator.0.dart by @ValentinVignal in 150034
  • Roll pub packages by @flutter-pub-roller-bot in 150267
  • Add transparent color to Cupertino colors by @victorsanni in 150149
  • Make CupertinoTextField respect decoration color when disabled by @victorsanni in 149774
  • Fix flaky complex_layout_scroll_perf__memory test by @jtmcdole in 150287
  • Reverts "Fix flaky complex_layout_scroll_perf__memory test (#150287)" by @auto-submit in 150293
  • Reland: [CupertinoActionSheet] Add sliding tap gesture by @dkwingsmt in 150219
  • Reland TreeSliver by @Piinks in 149839
  • Reland "sliverGridDelegate mainAxisExtent add assert (#148470)" by @hello-coder-xu in 149720
  • Reland 3: [CupertinoActionSheet] Match colors to native by @dkwingsmt in 150386
  • Update matchesGoldenFile documentation reference to goldenFileComparator by @alestiago in 150343
  • Fix doc comment references to 'this' by @srawlins in 150379
  • Fix typo in SliverLayoutDimensions.hashCode where not all properties are used in the hash code. by @PurplePolyhedron in 150306
  • Reverts "Reland 3: [CupertinoActionSheet] Match colors to native (#150386)" by @auto-submit in 150413
  • Add test for icon_button.3.dart by @ValentinVignal in 149988
  • Remove duplicate testOutputsDirectory definition from integration_test package by @jakemac53 in 150224
  • Add tests for about_list_tile.0.dart by @ValentinVignal in 150181
  • Add test for inherited_notifier.0.dart by @ValentinVignal in 150344
  • Update Material token to the latest 4.1.0 by @QuncCccccc in 150382
  • made SelectionArea alignment consistent between web and other platform by @LimaneGaya in 150037
  • Enable SelectionArea double tap/triple tap gesture support for mobile platforms by @Renzo-Olivares in 149295
  • Reland 4: [CupertinoActionSheet] Match colors to native by @dkwingsmt in 150442
  • Remove discontinued device_info and connectivity plugins from flutter_gallery, roll pub packages by @gmackall in 150585
  • [CupertinoActionSheet] Fix the layout (part 1) by @dkwingsmt in 149636
  • Fix: Memory leak in UndoHistory widget because it never de-registered itself as global UndoManager client (Resolves #148291) by @matthew-carroll in 150661
  • Add tests for form_text_field.1.dart by @ValentinVignal in 150481
  • Reverts "Add tests for form_text_field.1.dart (#150481)" by @auto-submit in 150696
  • Fix flaky sliver tree test by @Piinks in 150707
  • Manual engine roll to be7db94196fe by @jason-simmons in 150714
  • Manual engine roll to 6884e83 by @gmackall in 150733
  • Reverts "Manual engine roll to 6884e83 (#150733)" by @auto-submit in 150746
  • Add an example for CupertinoPopupSurface by @huycozy in 150357
  • Reland Add tests for form_text_field.1.dart (#150481) (#150696) by @ValentinVignal in 150750
  • Fix link in RenderObjectWidget doc comment by @swrenn in 150600
  • fix a typo by @foxmind1 in 150682
  • Document RenderObject._relayoutBoundary and its invariant; small refactors by @gnprice in 150527
  • Add focusNode, focusColor, onFocusChange, autofocus to CupertinoButton by @victorsanni in 150721
  • Remove reference to MaterialApp and showCupertinoModalPopup from CupertinoAlertDialog by @dkwingsmt in 150725
  • Fix leaky tests. by @polina-c in 150817
  • Fixes for Style Guide for Flutter Repo by @swrenn in 150167
  • Remove dual_screen from new_gallery integration test by @gmackall in 150808
  • Reverts "Remove dual_screen from new_gallery integration test (#150808)" by @auto-submit in 150871
  • Adding @docImports to the animation library by @goderbauer in 150798
  • Reland "Remove dual_screen from new_gallery integration test" by @gmackall in 150873
  • Improve the behavior of scrollbar drag-scrolls triggered by the trackpad by @HansMuller in 150275
  • Copy any previous IconThemeData instead of overwriting it in CupertinoButton by @ricardoboss in 149777
  • Manual engine roll to ddd4814 by @gmackall in 150952
  • Draggable feedback positioning by @timcreatedit in 149040
  • Add test for segmented_button.0.dart by @ValentinVignal in 150676
  • Reduce the depth used in a test that applies finders to deep widget trees by @jason-simmons in 151049
  • More docimports for animation library by @goderbauer in 151011
  • Fix: CupertinoActionSheet should take up max height when actions section is short by @dkwingsmt in 150708
  • [flutter_driver] add allocator mtl to memory event allowlist. by @jonahwilliams in 151153
  • docimports for semantics by @goderbauer in 151132
  • Docimports for foundation by @goderbauer in 151119
  • docimports for gestures by @goderbauer in 151123
  • docimports for cupertino by @goderbauer in 151149
  • docimports for services by @goderbauer in 151134
  • docimports for physics by @goderbauer in 151125
  • dismissible.dart code cleanup by @nate-thegrate in 150276
  • docimports for scheduler by @goderbauer in 151126
  • docimports for painting by @goderbauer in 151143
  • ScrollEndNotification example: auto-scroll based on RenderSliver constraints and geometry by @HansMuller in 143538
  • Fix typo by @QuncCccccc in 151192
  • Interactable ScrollView content when settling a scroll activity by @Michal-MK in 145848
  • docImports for flutter_test by @goderbauer in 151189
  • Fix result propagation in RenderSliverEdgeInsetsPadding.hitTestChildren by @knopp in 149825
  • Fix scheduler event loop being stuck due to task with Priority.idle by @lauweijie in 151168

Material

#
  • Update tokens to v2.3.5 by @QuncCccccc in 145356
  • InputDecorator M3 tests migration - Step7 - container by @bleroux in 145583
  • Add DataColumn.headingRowAlignment for DataTable by @TahaTesser in 144006
  • Deprecate ButtonBar, ButtonBarThemeData, and ThemeData.buttonBarTheme by @TahaTesser in 145523
  • Fix MenuItemButton overflow by @TahaTesser in 143932
  • Implements RenderBox.computeDryBaseline for material render boxes by @LongCatIsLooong in 146027
  • Fix border color is wrong for a focused and hovered TextField by @bleroux in 146127
  • Add tests for material_state_mouse_cursor.0.dart API example. by @ksokolovskyi in 145987
  • Fix chip baseline implementation by @LongCatIsLooong in 146162
  • Fix typos in bottom_sheet.dart by @bleroux in 146188
  • Enhance ColorScheme.fromSeed with a new variant parameter by @Hixie in 144805
  • Add SegmentedButton expand feature by @AcarFurkan in 142804
  • Add DropdownMenu cursor behavior sample by @TahaTesser in 146133
  • Magnifier cleanup by @Hixie in 143558
  • Fix InputDecorator suffix and prefix IconButtons ignore IconButtonTheme by @TahaTesser in 145473
  • Adds semanticsLabel to MenuItemButton by @philipfranchi in 145846
  • ExpansionTile Unable to remove right padding from title by @Michal-MK in 145271
  • Prepare for RenderDecorator.computeBaseline changes. by @LongCatIsLooong in 146363
  • Add a custom shape example for AppBar.shape by @TahaTesser in 146421
  • Fix DropdownButtonFormField throws when onChange is null by @bleroux in 146342
  • Text editing inside of Transformed.scale by @justinmc in 146019
  • Fix skwasm tests by @eyebrowsoffire in 145570
  • Fix InputDecorator label position ignore visual density by @bleroux in 146488
  • Fix IconButton theming in the InputDecorator by @TahaTesser in 146567
  • Fix out of sync templates files and add a check by @TahaTesser in 145747
  • Fix leaking curved animation. by @polina-c in 146644
  • Fix label text color is wrong for a focused and hovered TextField by @bleroux in 146572
  • Fix memory leaks in FloatingActionButton by @ValentinVignal in 146711
    • Fixes _DropdownMenuState leaking text controller by @Dimilkalathiya in 146571
  • Fix filled text field active indicator overflows container bounds by @bleroux in 146637
  • Implementing control flow collections by @nate-thegrate in 146601
  • Fix memory leak in BottomNavigationBar by @ValentinVignal in 146748
  • Fix leak memory in Tooltip and account detail by @ValentinVignal in 146833
  • Update link branches to main by @guidezpl in 146558
  • Fix Tab indicator image configuration doesn't inherit device pixel ratio by @TahaTesser in 146812
  • Revert "Update link branches to main" by @guidezpl in 146880
  • Reland: Update link branches to main by @guidezpl in 146882
  • Fix memory leak in paginated tables by @ValentinVignal in 146755
  • Fix memory leak in data table by @ValentinVignal in 146892
  • Fix memory leaks in MaterialBanner by @ValentinVignal in 146963
  • Fix memory leaks in navigation rail by @ValentinVignal in 146988
  • Add generic type for result in PopScope by @chunhtai in 139164
  • Reverts "Add generic type for result in PopScope (#139164)" by @auto-submit in 147015
  • [material] Fix info text by @jagomf in 147040
  • Fixed few typos by @anisalibegic in 147087
  • Re-land fix for not disposed TabController by @polina-c in 146745
  • Fix memory leaks in PopupMenu by @ValentinVignal in 147174
  • Fix memory leaks in CupertinoTextMagnifier by @ValentinVignal in 147208
  • Mention visualDensity impact on ButtonStyle.padding documentation by @bleroux in 147048
  • flutter/lib/src/: refactoring if-chains into switch expressions by @nate-thegrate in 146293
  • Fix memory leak in switch painter by @ValentinVignal in 147228
  • Fix chips delete icon override the default icon size and ignores IconTheme from the chip property and ChipThemeData by @TahaTesser in 146509
  • Add missing overlayColor property in styleFrom methods by @TahaTesser in 146685
  • Disable leak tracking for selection text area by @ValentinVignal in 147273
  • Fix memory leaks in BottomNavigationBar by @ValentinVignal in 147213
  • Add support for overriding reverseCurve with ExpansionTile.expansionAnimationStyle by @chika3742 in 147103
  • Fix filled color is wrong for a focused and hovered TextField by @bleroux in 146976
  • Makes badge to auto size with content by @chunhtai in 146853
  • add a new PopScope.onPopWithResultInvoke widget to replace PopScope.onPopInvoke by @chunhtai in 147016
  • Fix DateRangePickerDialog does not use rangePickerHeaderBackgroundColor from DatePickerTheme in M2 by @TahaTesser in 147370
  • Fix FloatingActionButton docs for background and foreground properties by @TahaTesser in 147372
  • Fix helperMaxLines and errorMaxLines documentation by @bleroux in 147409
  • Fix _RenderValueIndicator leak by @Dimilkalathiya in 147451
  • Add ability to disable FloatingActionButton scale and rotation animations using FloatingActionButtonAnimator.noAnimation by @TahaTesser in 146126
  • [Fix]: showDateRangePicker with "large" helpText cutoffs the save button by @zeqinjie in 146049
  • Fix wide DatePicker input mode button padding for Material 3 by @TahaTesser in 147236
  • Fix memory leak in TabPageSelector by @ValentinVignal in 147403
  • Revert "add a new PopScope.onPopWithResultInvoke widget to replace Po… by @chunhtai in 147597
  • Reverts "Fix memory leak in TabPageSelector (#147403)" by @auto-submit in 147622
  • flutter/lib/src/: refactoring if-chains into switch expressions by @nate-thegrate in 147472
  • Fix TextField horizontal drag conflicts by @Renzo-Olivares in 147341
  • fix DropdownMenu overflow by @PurplePolyhedron in 147233
  • Remove obsolete performance analysis tools. by @Hixie in 147663
  • _RenderDecorator.computeDryBaseline by @LongCatIsLooong in 146365
  • Add default arguments to AnimatedPhysicalModel by @nate-thegrate in 147424
  • Always relies on floatingLabelStyle when FloatingLabelBehavior.always by @bleroux in 147374
  • fixes SearchAnchor leak by @Dimilkalathiya in 147652
  • Fix memory leak in ExpansionTile. by @ksokolovskyi in 147596
  • Reland fix memory leaks for tab selector by @ValentinVignal in 147689
  • Fix test. by @polina-c in 147813
  • Fix Tooltip.decoration comment by @karelklic in 147858
  • fix MenuItemButton if child is null by @zeqinjie in 147485
  • DropdownMenu cleanup by @bleroux in 147860
  • Reapply new PopScope API by @chunhtai in 147607
  • Properly guard context access in then clauses by @goderbauer in 147935
  • Introduce TabBar.textScaler for tab label upper text scale limit by @TahaTesser in 147232
  • Implement computeDryBaseline for RenderChip by @LongCatIsLooong in 146224
  • Fix floating SnackBar is not centered when RTL and Material 2 by @bleroux in 147861
  • 🐛 : FIX : Long labels overflowing in extended navigation rail. by @aliasgar4558 in 145474
  • _RenderValueIndicator leak fix used on RangeSlider by @Dimilkalathiya in 147581
  • Tweak to fix context.mounted in dialog_demo by @srawlins in 147998
  • Fix ExpandIcon color when ExpansionPanel.canTapOnHeader true (#147097) by @BenjiFarquhar in 147098
  • Add Badge example by @huycozy in 148053
  • Getting rid of containers by @nate-thegrate in 147432
  • if chains → switch expressions by @nate-thegrate in 147793
  • Fix DropdownMenu keyboard navigation by @PurplePolyhedron in 147294
  • Add clipBehavior to DialogTheme by @ValentinVignal in 147635
  • Docs on TextField disposed by a scrollable by @justinmc in 148149
  • Fix MaterialStateBorderSide lerp in the Checkbox and chips by @TahaTesser in 148124
  • Refactors page API by @chunhtai in 137792
  • Move toggleable to widget layer by @victorsanni in 148272
  • Add missing InputDecorator.hintText tests by @bleroux in 148113
  • Fixes semantics ordering when there are multiple TextFields with pref… by @chunhtai in 148267
  • Fix memory leaks in open upwards page transition by @ValentinVignal in 148046
  • Fix memory leaks in SnackBar by @ValentinVignal in 147212
  • Add clipBehavior to DrawerThemeData by @ValentinVignal in 148061
  • Fix memory leaks in _PopupMenuRoute by @ValentinVignal in 148373
  • Removing duplicate assert on VisualDensity constructor by @FMorschel in 148281
  • Reland fix TextField helper top padding on M3 by @bleroux in 146754
  • ThemeData minor spring cleaning by @guidezpl in 148408
  • fixes DialogRoute memory leak by @Dimilkalathiya in 147816
  • switch statement cleanup by @nate-thegrate in 148382
  • Add test for material_banner.0.dart and material_banner.1.dart by @ValentinVignal in 148452
  • Revert "if chains → switch expressions" by @zanderso in 148556
  • Move Feedback to widgets layer by @victorsanni in 148523
  • Factor out RawView, make View listen to engine generated view focus events by @gspencergoog in 143259
  • Reland "if chains → switch expressions" by @nate-thegrate in 148634
  • Implement new AnimationStatus getters by @nate-thegrate in 148570
  • [wiki migration] Framework team pages by @Piinks in 148721
  • Removed brand references from MenuAnchor.dart by @davidhicks980 in 148760
  • switch expressions: finale by @nate-thegrate in 148711
  • Adds Missing onHover & onFocusChange for OutlinedButton.icon by @piedcipher in 144374
  • Add DropdownButton.menuWidth by @bleroux in 148125
  • Make hover tests functional and cleanup mouse pointers in Material toggleables by @victorsanni in 148808
  • Introduce WidgetStateBorderSide.lerp by @TahaTesser in 148122
  • Update tokens to 4.0.0 by @QuncCccccc in 148789
  • Fix the second TextFormField to trigger onTapOutside by @wyqlxf in 148206
  • Add tests for material banner example by @NobodyForNothing in 147733
  • Fix the second TextFormField to trigger onTapOutside by @wyqlxf in 148930
  • Fix SnackBar action text button overlay color by @TahaTesser in 148961
  • [a11y] Slider should respect bold text setting by @hangyujin in 149053
  • fix popup menu offset when using useRootNavigator in PopupMenu by @joodo in 144670
  • Mouse onEnter and onExit now support hovering stylus by @justinmc in 149006
  • fix M2 InputDecorator suffix icon doesn't turn red on error by @bleroux in 149161
  • Clean leaky test. by @polina-c in 149199
  • Remove opt out for CurvedAnimation. by @polina-c in 147594
  • Fix SearchAnchor suggestions not refreshing after long API call by @luis901101 in 148767
  • Change snack bar default hitTestBehavior to deferToChild when SnackBarThemeData.insetPadding is not null by @hany-achraf in 148568
  • _ModalScopeStatus as InheritedModel by @LinXunFeng in 149022
  • Update progress_indicator.dart to indicate the adaptive option is for both macOS and iOS by @EchoEllet in 145246
  • Enable explicitChildNodes for the AlertDialog content by @TahaTesser in 149130
  • Fix Slider throws an error when _labelPainter text is null by @hello-coder-xu in 148462
  • allow changing textAlign of TextField in DropdownMenu by @angelocordero in 148074
  • Reverts "Enable explicitChildNodes for the AlertDialog content (#149130)" by @auto-submit in 149333
  • Add locale in DatePickerThemeData by @MajdSallora in 148292
  • Refactor Material build method by @nate-thegrate in 147430
  • Have Material widgets in a Cupertino App partially use Cupertino theme by @MitchellGoodwin in 139253
  • Add support for ExpansionPanel custom splash color by @BenjiFarquhar in 147126
  • Switch to FilterQuality.medium for images by @goderbauer in 148799
  • Fix InputDecorator default hint text style on M3 by @bleroux in 148944
  • InputDecorator M3 tests migration - prefixIcon/suffixIcon by @bleroux in 149437
  • Reverts "Fix InputDecorator default hint text style on M3 (#148944)" by @auto-submit in 149448
  • Add a simplified SimpleCascadingMenuApp example by @kaljitism in 149147
  • Added filter callback on dropdown menu by @dacianf in 143939
  • Fix InputDecorator.prefixIcon color when disabled by @bleroux in 149595
  • Fixes multi line textfield hint text gets ellipsized by @chunhtai in 148423
  • Request focus if SemanticsAction.focus is sent to a focusable widget by @gspencergoog in 142942
  • Reverts "Request focus if SemanticsAction.focus is sent to a focusable widget (#142942)" by @auto-submit in 149741
  • Create CarouselView widget - Part 1 by @QuncCccccc in 148094
  • Add contrastLevel parameter to ColorScheme.fromSeed by @QuncCccccc in 149705
  • Fix InputDecorator suffixIcon color when in error and hovered by @bleroux in 149643
  • Introduce ChipAnimationStyle to override default chips animations durations by @TahaTesser in 149245
  • Reverts "Introduce ChipAnimationStyle to override default chips animations durations (#149245)" by @auto-submit in 149847
  • Fix leaky test. by @polina-c in 149823
  • Fix SegmentedButton clipping when drawing segments by @TahaTesser in 149739
  • Reverts "Fix SegmentedButton clipping when drawing segments (#149739)" by @auto-submit in 149927
  • Fix DropdownMenu can be focused and updated when disabled by @bleroux in 149737
  • Add mouse cursor property to CupertinoRadio by @victorsanni in 149681
  • [Reland] Fix SegmentedButton clipping when drawing segments (#149739) by @TahaTesser in 150090
  • Reland: Request focus if accessibility focus is given to a Focus widget (#142942) by @gspencergoog in 149840
  • Replace InputDecorator M3 golden test by @bleroux in 150111
  • Update framework and flutter fix flutter.dev/docs links by @parlough in 150174
  • [Reland] Introduce ChipAnimationStyle to override default chips animations durations by @TahaTesser in 149876
  • Update doc for ColorScheme.surface by @QuncCccccc in 150212
  • Validate the contrastLevel during ColorScheme creation by @parlough in 150176
  • ScaffoldBackgroundColor should default to ColorScheme.surface by @QuncCccccc in 149772
  • [a11y] Add semantics: button to bottom navigation bar items and dropdown menu items by @hangyujin in 149375
  • Fix scrollable TabBar jittering by @TahaTesser in 150041
  • Fix transparent dividerColor breaks TabBar.tabAlignment by @TahaTesser in 150350
  • add forceErrorText to FormField & TextFormField. by @hasanmhallak in 132903
  • Revert "[a11y] Add semantics: button to bottom navigation bar items and dropdown menu items" by @hangyujin in 150445
  • Clean leaky tests. by @polina-c in 150335
  • Test InputDecoration API examples by @NobodyForNothing in 148560
  • [material/menu_anchor.dart] Remove _MenuAnchorState from parent when disposed. by @davidhicks980 in 149586
  • Make popup menu hardcoded padding configurable by @bleroux in 150506
  • Update flutter.dev links from misc packages to more permanent destinations by @parlough in 150532
  • [a11y] Update semantics in bottom_navigation_bar.dart by @hangyujin in 150576
  • Fix a number of broken doc comment references by @srawlins in 150540
  • Update flutter.dev links from framework to more permanent destinations by @parlough in 150531
  • Linkify 'see also' sections by @goderbauer in 150734
  • Fix collapsed InputDecorator minimum height by @bleroux in 150770
  • Reland fix inputDecorator hint color on M3 by @bleroux in 150278
  • feat: Add autofocus for MenuItemButton by @Fernthedev in 139396
  • add onFocus to text fields by @yjbanov in 150648
  • [a11y] Reland [#149375 ] Update semantics in dropdown.dart by @hangyujin in 150578
  • Fix teardown of a FocusScopeNode in material/app_test by @jason-simmons in 151115
  • Fix missing [ in docs by @Pante in 151091
  • Implementing a few switch statements by @nate-thegrate in 150946

iOS

#
  • Implementing switch expressions in flutter_tools/ by @nate-thegrate in 145632
  • Remove dead compareIosVersions function by @jmagman in 146298
  • Support mdns when attaching to proxied devices. by @chingjun in 146021
  • Convert ProjectMigration and ProjectMigrator to be async by @vashworth in 146537
  • Control flow collections: flutter_tools/ by @nate-thegrate in 147450
  • Switch to more reliable flutter.dev link destinations in the tool by @parlough in 150587
  • [tool] when writing to openssl as a part of macOS/iOS code-signing, flush the stdin stream before closing it by @andrewkolos in 150120

Android

#
  • [wiki migration] Android team pages by @Piinks in 148585

Tooling

#
  • Point kotlin message in gradle_errors.dart towards new place where templates define the kotlin version by @gmackall in 145936
  • Remove trailing commas in android dependency version checking gradle plugin by @gmackall in 145718
  • Flutter Gradle Plugin: add versionName and versionCode to FlutterExtension by @bartekpacia in 146044
  • Add info strings to code blocks. by @kallentu in 146085
  • Add none language strings to code blocks. by @kallentu in 146154
  • Roll pub packages by @flutter-pub-roller-bot in 146245
  • Flutter templates example app Gradle memory settings by @dcharkes in 146275
  • refactor: Perform plugin resolution per platform by @Gustl22 in 144506
  • Copy part files and sourcemaps when building with dart2js. by @eyebrowsoffire in 146356
  • Increase the recommended Xcode version to Xcode 15 by @jmagman in 146367
  • Roll pub packages by @flutter-pub-roller-bot in 146606
  • Disable single character mode in the terminal when exiting flutter_tools by @jason-simmons in 146534
  • [tools] Fix --template=plugin_ffi formatting by @dcharkes in 146269
  • Update app Android gradle scripts to use flutter.versionName and flutter.versionCode by @bartekpacia in 146604
  • Update the gradle task to add fallback scheme and host if needed when retrieving deep links. by @hangyujin in 146470
  • Avoid forwarding the data after socket is disconnected. by @chingjun in 146665
  • [Doctor] Improve CocoaPods messages by @loic-sharma in 146701
  • Roll pub packages by @flutter-pub-roller-bot in 146929
  • [tools] Make SnapshotType.platform non-nullable by @cbracken in 146958
  • Changing the renderer on the web target should change its build key. by @eyebrowsoffire in 147003
  • Redundant message fix by @ShrootBuck in 143978
  • Add a breadcrumb for the pub autoroller by @Hixie in 146786
  • Send event to GA3 for telemetry status mismatches between GA3 and GA4 by @eliasyishak in 146453
  • Replace CocoaPods deprecated exists? with exist? by @vashworth in 147056
  • Update docs around ga3 ga4 mismatch by @eliasyishak in 147075
  • Reland "Expose build mode in environment of asset transformer processes" by @andrewkolos in 144958
  • print traces when transforming an asset by @andrewkolos in 146374
  • Roll pub packages by @flutter-pub-roller-bot in 147220
  • Update icon tree shaker to allow system font fallback by @Piinks in 147202
  • Add create app and plugin templates for Swift Package Manager by @vashworth in 147082
  • [native_assets] Use kernel concatenation by @dcharkes in 147158
  • Catch any FileSystemException thrown when trying to read the template manifest during flutter create by @andrewkolos in 145620
  • Add integration test for asset transformation feature by @andrewkolos in 145715
  • Bump dependencies in Flutter by @elliette in 147546
  • include exception details in tool exit displayed when adb call fails by @andrewkolos in 147498
  • add verbose logging to select hot reload/hot restart tests by @andrewkolos in 147673
  • Roll pub packages by @flutter-pub-roller-bot in 147741
  • Improve Android SDK and NDK mistmatch warning message by @bartekpacia in 147809
  • Add kotlinOptions jvmTarget to templates by @gmackall in 147326
  • Fix dep tracking by @dcharkes in 147709
  • feat: Rework getting plugin implementation candidates and plugin resolution by @Gustl22 in 145258
  • [flutter web] Listen for service extension registration events to determine hot-restart method name by @elliette in 147897
  • add print traces to reload isolate resume logic by @andrewkolos in 147997
  • [web] Update wasm CLI details to be clear JavaScript is ALSO compiled by @kevmoo in 147944
  • Bump flutter_lints to 4.0 by @goderbauer in 148020
  • bump cupertino_icons to 1.08 by @LongCatIsLooong in 146806
  • add more print traces in hot runner workflow by @andrewkolos in 148258
  • add another print trace to runInView by @andrewkolos in 148337
  • plugin_ffi template comment fix by @dcharkes in 148378
  • [macOS] codesign native assets during embed by @knopp in 148310
  • Fix iOS reference in macOS Cocoapods error by @stuartmorgan in 148506
  • Add PrivacyInfo.xcprivacy to plugin template by @stuartmorgan in 148485
  • Swap crash reporting with unified analytics by @andrewkolos in 148525
  • Disable shuffling in the flutter_tools create_test suite by @jason-simmons in 148619
  • Fix template manifest test by @nate-thegrate in 148616
  • log incoming vm service messages in FlutterVMService::runInView by @andrewkolos in 148596
  • Remove the no-shuffle tag on the flutter_tools create_test suite by @jason-simmons in 148688
  • Fixes incorrect read/write permissions on Flutter.framework and FlutterMacOS.framework by @LouiseHsu in 148580
  • Remove add-to-app bitcode warning by @jmagman in 148587
  • Skip flaky test in expression_evaluation_test.dart by @zanderso in 148737
  • [iOS] specify minimum os version for native asset frameworks by @knopp in 148504
  • Add a migrator to remove FlutterMultiDexApplication.java by @gmackall in 148515
  • Fix warnings in dependency_version_checker.gradle.kts by @gmackall in 148699
  • add default-flavor field to flutter pubspec, which will be used as the flavor in flutter build/run if --flavor is not provided by @holzgeist in 147968
  • [native_assets] Add support for link hooks by @dcharkes in 148474
  • Prevent test folder deletion on running flutter create --empty on an existing app project by @victoreronmosele in 147160
  • [iOS] fix hot restart with native assets by @knopp in 148752
  • [web] Remove --dart-sdk flag to dart2wasm compiler by @mkustermann in 149129
  • [tool] Use kebabCase directly by @kevmoo in 149150
  • Change android_plugin_new_output_dir_test.dart test description by @gmackall in 149198
  • Unskip expression evaluation test by @DanTup in 149253
  • Use correct type for abi version code by @runarheggset in 149087
  • update generated localized message files in the stocks test app by @andrewkolos in 148741
  • Support failures-only and silent reporters in flutter test by @gnprice in 148739
  • Place flutter_gpu in the package cache. by @bdero in 149299
  • Disable sandboxing for macOS apps and tests in CI by @vashworth in 149618
  • Identify and re-throw our dependency checking errors in flutter.groovy by @gmackall in 149609
  • [flutter_tools] Remove additional listener on VM service that simply logged incoming messages by @andrewkolos in 149756
  • Unpin archive package from tool, update to version without security advisories by @jmagman in 149430
  • Attempt to fix some web test flakiness. by @eyebrowsoffire in 149828
  • [native_assets] Fix framework name deduplication by @dcharkes in 149761
  • Revert "Identify and re-throw our dependency checking errors in flutter.groovy (#149609)" by @gmackall in 149918
  • [web] Change --web-renderer default from auto to canvaskit by @mdebbar in 149773
  • Unpin camera_android and remove its only usage by @gmackall in 150017
  • closes #issue136763, changed a command to generate gradle error message according to platform by @D-extremity in 149877
  • Improve build time when using SwiftPM by @vashworth in 150052
  • Suppress Flutter update check if --machine is present at all. by @matanlurey in 150138
  • Use --(no-)strip-wams instead of --(no-)-name-section in dart compile wasm by @mkustermann in 150180
  • Reland "Identify and re-throw our dependency checking errors in flutter.groovy" by @gmackall in 150128
  • Use --(no-)strip-wams instead of --(no-)-name-section in dart compile wasm by @mkustermann in 149641
  • Roll pub packages by @flutter-pub-roller-bot in 150206
  • Add 'fail-fast' argument to flutter test by @Lexycon in 149587
  • Add test for engine artifact framework permissions by @jmagman in 148786
  • Make flutter tool enforce >= kotlin 1.7.0, Gradle 7.0.2, and AGP 7.0.0, and Fix test failures blocking androidx upgrade by @gmackall in 149204
  • [CLI tool] in flutter test, consider --flavor when validating the cached asset bundle by @andrewkolos in 150461
  • [flutter_tools] un-hide the --dds flag by @christopherfujino in 150280
  • Stop looking for .packages when analyzing by @sigurdm in 150349
  • Fix link hook typo by @mosuem in 150194
  • Update android_device.dart to have clearLogs not print to standard error by @reidbaker in 150197
  • Roll pub packages by @flutter-pub-roller-bot in 150712
  • Remove dubious comment by @sigurdm in 150608
  • [flutter_tools/dap] Handle app.stop errors when launching/attaching by @DanTup in 149734
  • [tool] make ErrorHandlingFileSystem.deleteIfExists catch error code 3 (ERROR_PATH_NOT_FOUND on Windows) by @andrewkolos in 150741
  • Roll pub packages by @flutter-pub-roller-bot in 150739
  • [flutter_tools] Shut down Chromium cleanly using a command sent through the debug protocol by @jason-simmons in 150645
  • Read AndroidManifest.xml and emit manifest-impeller-(enabled|disabled) analytics by @matanlurey in 150791
  • Roll pub packages by @flutter-pub-roller-bot in 150810
  • Use `Isolate.packageConfigSync! to locate the packageconfig of flutter tools by @sigurdm in 150340
  • Fixes flutter build ipa failure: Command line name "app-store" is deprecated. Use "app-store-connect" by @LouiseHsu in 150407
  • Have flutter.js load local canvaskit instead of the CDN when appropriate by @eyebrowsoffire in 150806
  • [tool] make the systemTempDirectory getter on ErrorHandlingFileSystem wrap the underlying filesystem's temp directory in aErrorHandlingDirectory by @andrewkolos in 150876
  • local lint copy gradle task config by @reidbaker in 150957
  • [flutter_tools] Include more details in structured errors sent to a DAP client by @DanTup in 150698
  • Use caret syntax with flutter create command by @alestiago in 150920
  • Add support for type-safe plugin apply by @DRSchlaubi in 150958
  • Roll pub packages by @flutter-pub-roller-bot in 150827
  • Read AndroidManifest.xml and emit manifest-aar-impeller-(enabled|disabled) analytics by @jtmcdole in 150970
  • Upgrade template Gradle, App AGP, Module AGP, and Kotlin versions, and tests by @gmackall in 150969
  • Reverts "Upgrade template Gradle, App AGP, Module AGP, and Kotlin versions, and tests (#150969)" by @auto-submit in 151147
  • [tool] remove some temporary printTrace calls by @andrewkolos in 151074
  • Refactor BuildInfo to always require packageConfigPath by @sigurdm in 150559
  • Use ErrorHandlingFileSystem.deleteIfExists when deleting .plugin_symlinks by @andrewkolos in 151073
  • [tool] Fix stdin.flush calls on processes started by FakeProcessManager by @andrewkolos in 151183
  • [flutter_tools] Update the mapping for the Dart SDK internal URI by @DanTup in 151170

Other changes

#
  • Use reporter extended consistently. by @godofredoc in 145617
  • Refactor flutter_plugins by @sealesj in 145870
  • Generate test metrics consistently. by @godofredoc in 145943
  • Refactor realm_checker by @sealesj in 145905
  • Reverts "Roll Flutter Engine from e6f19409b613 to ea93c5d91b12 (3 revisions) (#146100)" by @auto-submit in 146106
  • Sync lints and enable annotate_redeclares by @goderbauer in 146144
  • Refactor analyze by @sealesj in 146138
  • Refactor docs by @sealesj in 145998
  • Refactor customer_testing by @sealesj in 145911
  • Refactor fuchsia_precache by @sealesj in 145978
  • Update ownership to GitHub handles by @keyonghan in 146221
  • Set up Kotlin linting step in ci with ktlint by @gmackall in 143478
  • Add missing_code_block_language_in_doc_comment lint. by @kallentu in 145354
  • Give generate_gradle_lockfiles.dart functionality to exclude certain subdirectories by @gmackall in 146228
  • Bump codecov/codecov-action from 4.1.1 to 4.2.0 by @dependabot in 146310
  • Roll pub packages by @flutter-pub-roller-bot in 146331
  • Roll pub packages by @flutter-pub-roller-bot in 146348
  • Bump github/codeql-action from 3.24.9 to 3.24.10 by @dependabot in 146368
  • Fix Flutter README.md image sources by @TahaTesser in 146430
  • Roll pub packages by @flutter-pub-roller-bot in 146515
  • Bump codecov/codecov-action from 4.2.0 to 4.3.0 by @dependabot in 146528
  • Refactor verify codesigned by @sealesj in 146450
  • Allow A/B tests to run as just aggregator of local engine benchmarks by @jmagman in 146479
  • Bump peter-evans/create-pull-request from 6.0.2 to 6.0.3 by @dependabot in 146702
  • Roll pub packages by @flutter-pub-roller-bot in 146704
  • Roll pub packages by @flutter-pub-roller-bot in 146782
  • Bump github/codeql-action from 3.24.10 to 3.25.0 by @dependabot in 146784
  • Roll pub packages by @flutter-pub-roller-bot in 146851
  • Switch to relevant Remote constructors by @nate-thegrate in 146773
  • Create web tests suite & update utils by @sealesj in 146592
  • Bump peter-evans/create-pull-request from 6.0.3 to 6.0.4 by @dependabot in 146954
  • Bump github/codeql-action from 3.25.0 to 3.25.1 by @dependabot in 146953
  • Refactor framework coverage tests by @sealesj in 146210
  • Bump actions/upload-artifact from 4.3.1 to 4.3.2 by @dependabot in 147011
  • Clean up flutterRoot by @sealesj in 147010
  • Refactor android preview tool integration tests by @sealesj in 146518
  • Bump actions/checkout from 4.1.2 to 4.1.3 by @dependabot in 147090
  • Roll pub packages by @flutter-pub-roller-bot in 147030
  • Add Kostiantyn Sokolovskyi to the AUTHORS. by @ksokolovskyi in 147065
  • Add Amir Panahandeh to AUTHORS by @Amir-P in 147052
  • Roll pub packages by @flutter-pub-roller-bot in 147094
  • Bump github/codeql-action from 3.25.1 to 3.25.2 by @dependabot in 147193
  • Bump actions/upload-artifact from 4.3.2 to 4.3.3 by @dependabot in 147192
  • Refactor framework + test harness tests by @sealesj in 146213
  • Add Valentin Vignal to AUTHORS by @ValentinVignal in 147314
  • Mark firebase tests as bringup: true by @keyonghan in 147338
  • Run new_gallery__transition_perf on mokey in staging by @zanderso in 147339
  • Bump actions/checkout from 4.1.3 to 4.1.4 by @dependabot in 147334
  • [devicelab] explicitly enable vulkan validation in test. by @jonahwilliams in 147382
  • Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 by @dependabot in 147388
  • Bump github/codeql-action from 3.25.2 to 3.25.3 by @dependabot in 147437
  • [macOS] Eliminate flutter_gallery_macos__start_up benchmark by @cbracken in 147442
  • Reverts "Roll Flutter Engine from 752b146df767 to f4c20e97e6aa (2 revisions) (#147495)" by @auto-submit in 147502
  • Move docs_test and docs_publish to bringup by @zanderso in 147645
  • add lang attribute to the a11y_assessments app by @yjbanov in 147586
  • [web] remove platform_messages_integration test by @yjbanov in 147654
  • Bump codecov/codecov-action from 4.3.0 to 4.3.1 by @dependabot in 147674
  • [web] increase chromedriver logging level by @yjbanov in 147687
  • [web] skip debug mode CanvasKit e2e tests due to flakiness; unskip all other modes by @yjbanov in 147736
  • Move snippets package back into flutter repo by @gspencergoog in 147690
  • [new gallery] Reisze gallery images by @jonahwilliams in 147882
  • Bump actions/checkout from 4.1.4 to 4.1.5 by @dependabot in 147888
  • Fix document generation, eliminate template support from snippets tool. by @gspencergoog in 147893
  • Revert "Move docs_test and docs_publish to bringup (#147645)" by @gspencergoog in 147928
  • Roll pub packages by @flutter-pub-roller-bot in 147995
  • Roll pub packages by @flutter-pub-roller-bot in 148011
  • Update dependabot reviewers by @jmagman in 148101
  • Bump ossf/scorecard-action from 2.3.1 to 2.3.3 by @dependabot in 148091
  • Update TESTOWNERS by @jmagman in 148108
  • Roll pub packages by @flutter-pub-roller-bot in 148148
  • Try fix module test by @dcharkes in 147934
  • Bump github/codeql-action from 3.25.3 to 3.25.5 by @dependabot in 148262
  • Mark platform_views_scroll_perf_ad_banners__timeline_summary not flaky by @jmagman in 148263
  • Bump codecov/codecov-action from 4.3.1 to 4.4.0 by @dependabot in 148355
  • Stop running module_test_ios in devicelab and x64 Macs by @jmagman in 148264
  • Reverts "Roll Flutter Engine from 6fa734d68688 to 1850def2ccff (1 revision) (#148507)" by @auto-submit in 148517
  • Bump actions/checkout from 4.1.5 to 4.1.6 by @dependabot in 148516
  • const vs. non-const widget build benchmark by @goderbauer in 148261
  • Shift a test on MotoG4 to staging, add it on Mokey by @zanderso in 148552
  • Migrate the flutter/flutter wiki to docs/unsorted_wiki by @Piinks in 148562
  • Remove all tests from a02s. Replace with mokey in bringup by @zanderso in 148563
  • [wiki migration] Ecosystem team pages by @Piinks in 148589
  • Bump codecov/codecov-action from 4.4.0 to 4.4.1 by @dependabot in 148714
  • Bump github/codeql-action from 3.25.5 to 3.25.6 by @dependabot in 148715
  • Manual roll camera dependency by @goderbauer in 148426
  • [wiki migration] Engine team pages by @Piinks in 148696
  • Fix the output of the CDN test. by @eyebrowsoffire in 148730
  • Fix leaky test. by @polina-c in 148788
  • [wiki migration] Pages under docs/postmortems/ by @Piinks in 148798
  • Move Linux web_long_running_tests_2_5 to bringup by @zanderso in 148854
  • [wiki migration] Tool team pages by @Piinks in 148779
  • [wiki migration] Remaining pages under docs/about/ by @Piinks in 148782
  • Revert "const vs. non-const widget build benchmark" by @goderbauer in 148970
  • [wiki migration] Web team pages by @Piinks in 148777
  • [GAR][a11y] Update assessment app to unblock tester from testing dark mode by @hangyujin in 149055
  • Remove dynamic_layouts from issue template by @Piinks in 149252
  • Adds benchmark for rrect_blur. by @gaaclarke in 149261
  • Fixed typo in devicelab test name by @gaaclarke in 149327
  • Rounded Rect Blur Benchmark: Made the number of circles a fixed number by @gaaclarke in 149323
  • Bump github/codeql-action from 3.25.6 to 3.25.7 by @dependabot in 149444
  • Cleanup triage reports from docs/ by @Piinks in 149545
  • Move some benchmarks from MotoG4 to Mokey by @zanderso in 149567
  • Switch to triage-* labels for platform package triage by @stuartmorgan in 149614
  • Bump github/codeql-action from 3.25.7 to 3.25.8 by @dependabot in 149691
  • make output of flutter run web tests verbose by @yjbanov in 149694
  • Revert "make output of flutter run web tests verbose (#149694)" by @yjbanov in 149766
  • Fix signature for TokenTemplate.updateFile by @goderbauer in 149673
  • Remove unused code from an older test artifact. by @matanlurey in 149746
  • Send q once by @yjbanov in 149767
  • Roll pub packages by @flutter-pub-roller-bot in 149630
  • Run tests on macOS 13 or 14 by @vashworth in 149827
  • Roll pub packages by @flutter-pub-roller-bot in 149864
  • Shift consistently passing tests on mokey to prod by @zanderso in 149902
  • Remove zanderso from TESTOWNERS by @zanderso in 149935
  • Reverts "Roll Flutter Engine from 1cdbebee1901 to 45cf05f7a580 (10 revisions) (#149944)" by @auto-submit in 149960
  • Remove package:platform from issue template by @mit-mit in 149995
  • Temporarily run Mac_arm64 framework_tests_misc on only Mac-13 by @vashworth in 150009
  • [docs] Per-platform desktop triage instructions by @cbracken in 150019
  • Manual Pub Roll by @goderbauer in 150025
  • Add high-contrast theme by @QuncCccccc in 149779
  • Add a doc for the flutter/packages gardener by @stuartmorgan in 149682
  • Update to Chrome for Testing 125, since we haven't updated in a bit. by @eyebrowsoffire in 149933
  • Update packages desktop PR triage link lables by @jmagman in 150124
  • Bump github/codeql-action from 3.25.8 to 3.25.9 by @dependabot in 150133
  • Bump actions/checkout from 4.1.6 to 4.1.7 by @dependabot in 150132
  • Update testowners by @Piinks in 150141
  • Bump new release for a11y_assessment by @chunhtai in 150213
  • Document CIPD role & login for upgrading Android engine by @yaakovschectman in 149433
  • Bump github/codeql-action from 3.25.9 to 3.25.10 by @dependabot in 150228
  • Fix flaky complex_layout_scroll_perf__memory & flutter_gallery__memory_nav by @jtmcdole in 150368
  • Update API docs footer by @mit-mit in 150347
  • Rename doc file to use standard hyphens by @parlough in 150314
  • Extend the Windows web_tool_tests_1_2 shard timeout to 45 minutes by @jason-simmons in 150393
  • Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 by @dependabot in 150456
  • Let the lockfile script generate lockfiles for kotlin gradle files as well by @gmackall in 150471
  • Update issue link in analysis_options.yaml by @goderbauer in 150395
  • allow adb to set canfail then use canFail=true for clearing logs by @reidbaker in 150517
  • Add more warm up frame docs by @loic-sharma in 150464
  • Remove bringup: true from web test shard. by @eyebrowsoffire in 150785
  • Remind folks we are moving. by @matanlurey in 150872
  • Remove CODEOWNERS trailing whitespace by @jmagman in 150882
  • Bump dartdoc to 8.0.9+1 by @goderbauer in 150935
  • Bump github/codeql-action from 3.25.10 to 3.25.11 by @dependabot in 151012
  • Roll pub packages by @flutter-pub-roller-bot in 151022
  • Roll pub packages by @flutter-pub-roller-bot in 151028
  • Bump dartdoc to 8.0.10 by @goderbauer in 151107
  • Roll pub packages by @flutter-pub-roller-bot in 151129

New contributors

#
  • @Dimilkalathiya made their first contribution in 146072
  • @leoafarias made their first contribution in 145666
  • @philipfranchi made their first contribution in 145846
  • @ShrootBuck made their first contribution in 143978
  • @jagomf made their first contribution in 147040
  • @lamnhan066 made their first contribution in 147102
  • @choi88andys made their first contribution in 147221
  • @chika3742 made their first contribution in 147103
  • @kishan-dhankecha made their first contribution in 147318
  • @zeqinjie made their first contribution in 146049
  • @EchoEllet made their first contribution in 147505
  • @timcreatedit made their first contribution in 145647
  • @drown0315 made their first contribution in 146674
  • @karelklic made their first contribution in 147858
  • @davidhicks980 made their first contribution in 147843
  • @osama383 made their first contribution in 147457
  • @aliasgar4558 made their first contribution in 145474
  • @BenjiFarquhar made their first contribution in 147098
  • @FMorschel made their first contribution in 148281
  • @holzgeist made their first contribution in 147968
  • @wyqlxf made their first contribution in 148206
  • @joodo made their first contribution in 144670
  • @luis901101 made their first contribution in 148767
  • @hany-achraf made their first contribution in 148568
  • @angelocordero made their first contribution in 148074
  • @MajdSallora made their first contribution in 148292
  • @runarheggset made their first contribution in 149087
  • @dawidope made their first contribution in 148948
  • @kaljitism made their first contribution in 149147
  • @Peetee06 made their first contribution in 144899
  • @ttorii20 made their first contribution in 149698
  • @D-extremity made their first contribution in 149877
  • @Zabadam made their first contribution in 149624
  • @jtmcdole made their first contribution in 150287
  • @hasanmhallak made their first contribution in 132903
  • @mosuem made their first contribution in 150194
  • @LimaneGaya made their first contribution in 150037
  • @swrenn made their first contribution in 150600
  • @foxmind1 made their first contribution in 150682
  • @Fernthedev made their first contribution in 139396
  • @ricardoboss made their first contribution in 149777
  • @DRSchlaubi made their first contribution in 150958

Full Changelog: https://github.com/flutter/flutter/compare/3.22.0...3.24.0

Flutter engine

#

Impeller

#
  • [Impeller] Optimize away intersect clips that cover the entire pass target. by @bdero in 51736
  • Reland: [Impeller] adds a plus advanced blend for f16 pixel formats by @gaaclarke in 51756
  • [Impeller] dont clamp mipmap level to 0 with Vulkan textures. by @jonahwilliams in 51761
  • [Impeller] generate mip level N from N-1 in Vulkan backend. by @jonahwilliams in 51749
  • [Impeller] split out aiks blend tests by @gaaclarke in 51780
  • [Impeller] removed old blur detritus by @gaaclarke in 51779
  • [Impeller] Set RGBA8888 as the default Vulkan color format before the app acquires a surface by @jason-simmons in 51770
  • [Impeller] Avoid loading redundant Vulkan extensions. by @chinmaygarde in 51818
  • [Impeller] Add a TextureGLES API for wrapping a framebuffer and use it to implement OpenGL FBO targets in the embedder library by @jason-simmons in 51269
  • [Impeller] Ignore warnign about shader stages not consuming outputs. by @jonahwilliams in 51822
  • Reverts "[Impeller] Avoid loading redundant Vulkan extensions. (#51818)" by @auto-submit in 51835
  • [Impeller] fix plus blend mode in porterduff shader. by @jonahwilliams in 51792
  • Use fml::ScopedCleanupClosure instead of DeathRattle. by @matanlurey in 51834
  • Return an empty optional in HardwareBuffer::GetSystemUniqueID if the underlying NDK API is unavailable by @jason-simmons in 51839
  • [Impeller] fixes PlusAdvanced alpha blending / adds alpha blending tests by @gaaclarke in 51787
  • [Impeller] make color source a variant instead of a closure. by @jonahwilliams in 51853
  • [Impeller] eliminate sub-render pass for blended color + texture vertices. by @jonahwilliams in 51778
  • [Impeller] delete unused code. by @jonahwilliams in 51871
  • [Impeller] cleanup auto usage in host_buffer by @jonahwilliams in 51875
  • [Impeller] dont inc shared_ptr count for every command/pipeline in render_pass_vk by @jonahwilliams in 51874
  • #145421 Fix glyph padding in STB atlas impl. by @johnoneil in 51585
  • [Impeller] batch up filter graph command buffers. by @jonahwilliams in 51912
  • [Impeller] fail CI if validations are enabled but not available. by @jonahwilliams in 51378
  • [Impeller] reland foreground blend optimizaiton, fix advanced blend optimization. by @jonahwilliams in 51938
  • [Impeller] handle fill polylines with zero area. by @jonahwilliams in 51945
  • Use Impeller geometry classes in DLMatrixClipTracker by @flar in 51919
  • [Impeller] ensure precision is matched between fragment and vertex stage for PowerVR GPU bug by @jonahwilliams in 51974
  • [Impeller] Remove StC flag. by @bdero in 51992
  • [Impeller] Remove stencil clipping logic. by @bdero in 51999
  • [Impeller] Refactor KHR swapchains to make it easy to reuse backend agnostic components. by @chinmaygarde in 52002
  • [Impeller] Use type safe masks for HardwareBufferUsage. by @chinmaygarde in 52008
  • [Impeller] NumberNear implements precision-based comparisons by @flar in 52001
  • [Impeller] Only set the stencil ref for StC draws. by @bdero in 52006
  • [Impeller] organize shaders a bit, make filter shaders use same vertex source. by @jonahwilliams in 52113
  • [Impeller] Use Wang's formula for quad/cubic subdivision. by @jonahwilliams in 52079
  • [Impeller] moved to bgra10_xr by @gaaclarke in 52019
  • Reverts "[Impeller] moved to bgra10_xr (#52019)" by @auto-submit in 52140
  • [Impeller] Update the readme to reflect current guidance on how to try Impeller. by @chinmaygarde in 52135
  • Relands "[Impeller] moved to bgra10_xr (#52019)" by @gaaclarke in 52142
  • [Impeller] remove most temporary allocation during polyline generation. by @jonahwilliams in 52131
  • [Impeller] removes advanced plus blending by @gaaclarke in 52163
  • Reverts "[Impeller] remove most temporary allocation during polyline generation. (#52131)" by @auto-submit in 52177
  • [Impeller] added static check that fragment shader and vertex shaders slots match by @gaaclarke in 52174
  • [Impeller] Use booleans instead of counting backdrop reads. by @bdero in 52181
  • [Impeller] Remove old clip height tracking from Entity. by @bdero in 52178
  • [Impeller] Delete EntityPass::AddSubpassInline. by @bdero in 52182
  • [Impeller] Off by default experimental canvas. by @jonahwilliams in 52035
  • [Impeller] Reland: remove most temporary allocation during polyline generation. by @jonahwilliams in 52180
  • [Impeller] sorted commonly used default pipelines first by @gaaclarke in 52231
  • [Impeller] dont use half precision constants / Fixes for SPIRV tools roll by @jonahwilliams in 52213
  • [Impeller] cleaned up semantics for RenderPipelineT and added docstrings by @gaaclarke in 52237
  • [Impeller] remove absorb opacity limit. by @jonahwilliams in 52160
  • [Impeller] Use the new DisplayList depth info in the experimental canvas prototype by @flar in 52214
  • [Impeller] organize texture shaders / delete blend.frag + external_texture_fill by @jonahwilliams in 52137
  • [Impeller] add non-emulated advanced blend support to experimental canvas by @jonahwilliams in 52245
  • [Impeller] compute UVs in vertex stage. by @jonahwilliams in 52106
  • [Impeller] re-enable gold CTL. by @jonahwilliams in 52299
  • [Impeller] skip lineTo for empty contours. by @jonahwilliams in 52290
  • [Impeller] add test case for path that explicitly closes at origin. by @jonahwilliams in 52314
  • [Impeller] Do not call std::forward on the serialized arguments in the canvas recorder by @jason-simmons in 52307
  • Issue #146080 : Fix for incorrect STB based atlas glyph scaling by @johnoneil in 51882
  • [Impeller] Cleanup PipelineVK::Create by @gaaclarke in 52278
  • [Impeller] drawVertices uber shader. by @jonahwilliams in 52315
  • [Impeller] only use framebuffer advanced blends if available. by @jonahwilliams in 52284
  • [Impeller] Fix Vulkan validation error on latest MoltenVK. by @chinmaygarde in 52332
  • [Impeller] Add DriverInfoVK::IsEmulator and a log dumper for driver info. by @chinmaygarde in 52337
  • [Impeller] Reland: Compute UVs in vertex stage. by @jonahwilliams in 52303
  • [Impeller] delete unused geometry API. by @jonahwilliams in 52347
  • [Impeller] make drawAtlas always use porterduff or vertices_uber shader by @jonahwilliams in 52348
  • [Impeller] delete points compute shader. by @jonahwilliams in 52346
  • [Impeller] use spec constant for gaussian shader, rename, and reuse vertex sources. by @jonahwilliams in 52361
  • [Impeller] Remove libtess2 from libflutter. by @bdero in 52357
  • [Impeller] Cleanup legacy StencilModes and document overdraw prevention. by @bdero in 52372
  • [Impeller] Remove additional shader bootstrap. by @jonahwilliams in 52368
  • [Impeller] only use porter duff or vertices.uber for drawVertices. by @jonahwilliams in 52345
  • [Impeller] delete specific vertices shader. by @jonahwilliams in 52360
  • [Impeller] combine text shaders. by @jonahwilliams in 52392
  • [Impeller] kick off registration and initial PSO compilation of runtime effect earlier. by @jonahwilliams in 52381
  • [Flutter GPU] Add support for drawing Flutter GPU textures in the playground. by @bdero in 52352
  • [Impeller] clamp maximum glyph scale. by @jonahwilliams in 52403
  • [Impeller] when creating new pipeline variant block on current thread, re-persist dirty pipeline cache. by @jonahwilliams in 52375
  • [Impeller] remove image upload from IO thread, limit concurrent worker threads. by @jonahwilliams in 52423
  • Remove references to goma by @zanderso in 52411
  • [Impeller] Document the EGL toolkit. by @chinmaygarde in 52469
  • [Impeller] Wire up hardware buffer backed swapchains on Android. by @chinmaygarde in 52087
  • [Impeller] remove incremental allocation during filled path tessellation. by @jonahwilliams in 52401
  • [Impeller] allow for one more active swapchain image. by @jonahwilliams in 52505
  • [Impeller] Remove checkerboard. by @bdero in 52524
  • [Impeller] Remove Entity capture/AiksInspector. by @bdero in 52526
  • [Impeller] fix missing GPU probe. by @jonahwilliams in 52580
  • [Impeller] remove unused includes. by @jonahwilliams in 52579
  • [Impeller] remove compute tessellator. by @jonahwilliams in 52584
  • [Impeller] Document how to use Impeller as a standalone library with OpenGL ES and EGL. by @chinmaygarde in 52473
  • [Impeller] add clip coverage stack to exp canvas. by @jonahwilliams in 52215
  • [Impeller] eagerly bootstrap content context. by @jonahwilliams in 52590
  • [Impeller] AHB swapchain mark frame start for tracer. by @jonahwilliams in 52596
  • Various documentation improvements by @Hixie in 52600
  • Reverts "Various documentation improvements (#52600)" by @auto-submit in 52607
  • [Impeller] allow cloning a rectangle packer with an increased size. by @jonahwilliams in 52563
  • [Impeller] Wait for the previous AHB texture to be fully recyclable. by @chinmaygarde in 52588
  • [Impeller] Disable aging in the AHB swapchains and use FILO. by @chinmaygarde in 52637
  • [Impeller] Support copy from buffer to texture for GLES blitpass, use blit pass to set contents in glyph atlas. by @jonahwilliams in 52510
  • [Impeller] In the AHB swapchain, make the wait stages be non-temporaries. by @chinmaygarde in 52644
  • [Impeller] bump image count to 3 by @jonahwilliams in 52650
  • [Impeller] support requires readback from onscreen texture in experimental canvas. by @jonahwilliams in 52640
  • DisplayListBuilder internal reorganization with better rendering op overlap detection by @flar in 52646
  • [Impeller] Update BlitPass::AddCopy to use destination_region instead of origin for buffer to texture copies. by @jonahwilliams in 52555
  • [Impeller] require and use backpressure for AHB swapchain. by @jonahwilliams in 52676
  • Revert 484688634c71ec38c18218eaa13dc47fa7007b74 by @gaaclarke in 52680
  • [Impeller] Start a glossary. by @chinmaygarde in 52641
  • [Impeller] initialize ahb swapchain with max entries. by @jonahwilliams in 52670
  • [Impeller] Size AHB swapchain based on vk surface properties. by @jonahwilliams in 52692
  • [Impeller] Adds impeller display list golden tests by @gaaclarke in 52690
  • Various documentation improvements (#52600) by @Hixie in 52623
  • Revert "Various documentation improvements (#52600)" by @zanderso in 52709
  • [impeller] adds experimental canvas docstring by @gaaclarke in 52710
  • [Impeller] Document how to do basic rendering in Impeller. by @chinmaygarde in 52703
  • [Impeller] Disable AHB swapchain. by @jonahwilliams in 52713
  • [Impeller] treat glyph atlas texture as source of truth, remove copy of SkBitmap. by @jonahwilliams in 52567
  • deletes canvas recorder by @gaaclarke in 52722
  • Revert "DisplayListBuilder internal reorganization with better rendering op overlap detection" by @flar in 52725
  • Simplify GN pools, use in more places by @zanderso in 52721
  • [Impeller] Followup feedback on "Baby's First Triangle". by @chinmaygarde in 52718
  • [Impeller] rectangle packer actually packs. by @jonahwilliams in 52781
  • [Impeller] use render pass to clear glyph atlas texture to transparent black. by @jonahwilliams in 52791
  • [Impeller] Create framebuffer blend vertices based on the snapshot's texture size instead of coverage by @jason-simmons in 52790
  • [Impeller] migrated one test over from aiks to dl by @gaaclarke in 52786
  • [Impeller] immediately encode blit commands for Metal. by @jonahwilliams in 52795
  • Reverts "[Impeller] immediately encode blit commands for Metal. (#52795)" by @auto-submit in 52816
  • [Impeller] reland: directly encode blit commands for Metal. by @jonahwilliams in 52819
  • [Impeller] immediately encode blit commands for Vulkan. by @jonahwilliams in 52794
  • [Impeller] make default glyph atlas size much bigger. by @jonahwilliams in 52787
  • Re-add MipFilter::kBase, but keep kNearest as the default. by @matanlurey in 52779
  • Manual roll of Clang from 725656bdd885 to 145176dc0c93 by @jason-simmons in 52823
  • Reverts "Manual roll of Clang from 725656bdd885 to 145176dc0c93 (#52823)" by @auto-submit in 52890
  • [Impeller] use smaller SkFont size for determining glyph bounds. by @jonahwilliams in 52868
  • [Impeller] grow glyph atlas instead of resizing when rect packer is full. by @jonahwilliams in 52849
  • [Impeller] fix colr/bitmap font color drawing. by @jonahwilliams in 52871
  • Fixes MatrixFilterContents rendering/coverage by @gaaclarke in 52880
  • Reverts "Fixes MatrixFilterContents rendering/coverage (#52880)" by @auto-submit in 52918
  • [Impeller] leave glyph atlas in transfer dst to improve vulkan throughput. by @jonahwilliams in 52908
  • [Impeller] Fix use-after-move in SwapchainVK. by @bdero in 52933
  • [Impeller] write glyphs to malloc buffer. by @jonahwilliams in 52937
  • [Impeller] Reland: Remove Entity capture/AiksInspector. by @bdero in 52932
  • [Impeller] Refactor impeller.gni by @chinmaygarde in 52942
  • Reland Fixes MatrixFilterContents rendering/coverage #52880 by @gaaclarke in 52939
  • [Impeller] Remove unused GN flags. by @chinmaygarde in 52962
  • [Impeller] Delete impeller_trace_all_gl_calls. by @chinmaygarde in 52963
  • [Impeller] Remove check_licenses.py by @chinmaygarde in 52970
  • [Impeller] Pixel align subpass textures. by @bdero in 52973
  • [Impeller] Fix stroke curves. by @bdero in 52978
  • Cleanup propagation of codecvt warning suppression in FML. by @chinmaygarde in 52966
  • [Impeller] sped up the linear gradient by moving calculations to the cpu by @gaaclarke in 53007
  • Reland "DisplayListBuilder internal reorganization with better rendering op overlap detection" (52646) by @flar in 53002
  • [Impeller] Suppress SPIRV validation errors in latest Vulkan SDK. by @chinmaygarde in 53049
  • [Impeller] Use scaled font to determine bounds, match Skia position rounding behavior, add subpixel X/Y/All/None positioning. by @jonahwilliams in 53042
  • [Impeller] shrunk the buffer for the rrect_blur by @gaaclarke in 53068
  • [Impeller] make strokes slightly lighter. by @jonahwilliams in 53067
  • [Impeller] relax conditions for SkRRect.isSimple conversion to impeller::RRect. by @jonahwilliams in 53083
  • [Impeller] fix barriers prior to mip generation. by @jonahwilliams in 53082
  • DisplayList SaveLayer (and root layer) read-back flags by @flar in 53104
  • [Impeller] make sure buffers are 4 aligned for foreground color blending by @gaaclarke in 53077
  • Remove assorted bad logs. by @jonahwilliams in 53139
  • [Impeller] Replace Impeller opacity peephole delegate with DL variant. by @jonahwilliams in 52707
  • [Impeller] make strokes < 0.5 physical pixels visually thinner. by @jonahwilliams in 53154
  • [Impeller] Revert support for multi-arch shader archives. by @chinmaygarde in 53158
  • [Impeller] match rrect_blur math to the gaussian math by @gaaclarke in 53130
  • [Impeller] Use varying interpolation to compute some linear gradients. by @jonahwilliams in 53166
  • Separate layer-specific data in DisplayListBuilder::SaveInfo by @flar in 53186
  • [Impeller] tighten fast gradient condition. by @jonahwilliams in 53195
  • [Impeller] wire up bdf and blend detection in experimental canvas. by @jonahwilliams in 53151
  • [Impeller] Clarify rendering backend fallback behavior on Android. by @chinmaygarde in 53202
  • [Impeller] Intel iOS Simulators must block on GPU completion. by @jonahwilliams in 53073
  • [Impeller] correctly map DL non-mipmap sample mode to non-mipmap sample mode. by @jonahwilliams in 53161
  • [Impeller] Use Skia software renderer to draw stroked text. by @jonahwilliams in 53198
  • Reverts "[Impeller] Use Skia software renderer to draw stroked text. (#53198)" by @auto-submit in 53237
  • [Impeller] Reland Use Skia software renderer to draw stroked text. by @jonahwilliams in 53238
  • [Impeller] Expand fast gradient to all shapes. by @jonahwilliams in 53254
  • [Impeller] Round out extreme angles between curve polyline segments. by @bdero in 53210
  • [impeller] switches gaussian blur to a "source space" calculation by @gaaclarke in 53261
  • [Impeller] Move SeparatedVector2 to impeller/geometry. by @bdero in 53264
  • [Impeller] remove varying interpolation for solid colors. by @jonahwilliams in 53281
  • [Impeller] move some tests from aiks to display list. by @jonahwilliams in 53336
  • [Impeller] add missing position to exp canvas text. by @jonahwilliams in 53339
  • [Impeller] disabling the color write mask seems to improve performance on iOS compared to just the blend options. by @jonahwilliams in 53322
  • 'Starter Project': port planet fragment shader to impeller tests by @jtmcdole in 53362
  • [Impeller] Move Gradient tests to display list. by @jonahwilliams in 53345
  • [DisplayList] cull clip operations that can be trivially and safely ignored by @flar in 53367
  • [Impeller] restore accidentally deleted Cap/Join benchmarks by @flar in 53385
  • [Impeller] moved blur to unrotated local space, started respecting respect_ctm flag by @gaaclarke in 53377
  • [Impeller] Move drawAtlas golden tests to display list. by @jonahwilliams in 53398
  • [Impeller] Link CPU profiling docs from the main README. by @chinmaygarde in 53435
  • [Impeller] move draw vertices to dl unittests. by @jonahwilliams in 53400
  • [Impeller] Update Android CPU profiling instructions. by @chinmaygarde in 53437
  • [DisplayList] Create DrawDashedLine for paragraph code by @flar in 53411
  • [Impeller] Update iOS CPU profiling instructions. by @chinmaygarde in 53440
  • [DisplayList] delete obsolete PathEffect sources by @flar in 53441
  • [Impeller] Compute correct-ish binding order for Vulkan. by @jonahwilliams in 53463
  • Add createImageFromTextureSource method to ui_web by @jezell in 53483
  • [Impeller] added a fallback that will make sure the blur fragment shader doesn't overflow by @gaaclarke in 53466
  • [impeller] Cleanup blur by @gaaclarke in 53543
  • [DisplayList] Switch to recording DrawVertices objects by reference by @flar in 53548
  • [Impeller] blur - cropped the downsample pass for backdrop filters by @gaaclarke in 53562
  • [DisplayList] Add support for clipOval to leverage Impeller optimization by @flar in 53622
  • Revert "[DisplayList] Add support for clipOval to leverage Impeller optimization" by @flar in 53629
  • [Impeller] experimental canvas bdf support. by @jonahwilliams in 53597
  • Reland [DisplayList] Add support for clipOval to leverage Impeller optimization by @flar in 53642
  • [Impeller] track the sizes of all outstanding MTLTexture allocations and report per frame in MB, matching Vulkan implementation. by @jonahwilliams in 53618
  • [Impeller] fixed units for memory measurement by @gaaclarke in 53687
  • [Impeller] fix typo in setup for fast elliptical rrect blurs by @flar in 53673
  • Revert "Reland [DisplayList] Add support for clipOval to leverage Impeller optimization" by @jiahaog in 53705

Android

#
  • Use the stripped Vulkan validation library in Android engine builds by default by @jason-simmons in 51628
  • Add an engine switch that controls whether the platform isolate API is available. by @jason-simmons in 51784
  • Bump Robolectric to 4.12.1 by @utzcoz in 51800
  • Multiview backing store by @dkwingsmt in 51722
  • Run local_engine.json builds in prod by @zanderso in 51931
  • Delete engine v1 android embedding by @gmackall in 51229
  • Reverts "Delete engine v1 android embedding (#51229)" by @auto-submit in 51996
  • [Android] post image task to main handler. by @jonahwilliams in 52025
  • Clear the surface to transparent black when creating a PlatformViewWrapper by @jason-simmons in 52047
  • [scenarios] test disabling surface clear. by @jonahwilliams in 52128
  • Replace LinkedLists that are used as a queue in android FlutterRenderer with ArrayDeques by @gmackall in 51494
  • [Impeller] Vulkan validation off by default. by @jonahwilliams in 52397
  • Workaround HardwareRenderer breakage in Android 14 by @johnmccutchan in 52370
  • Migrate third_party/android_tools to flutter/third_party by @jason-simmons in 52582
  • Delete Settings::msaa_samples. by @chinmaygarde in 52780
  • Fix non-vd android platform view input event offsets by @gmackall in 52532
  • Issue anERROR instead of an INFO for a non-working API. by @matanlurey in 52892
  • Fix another instance of platform view breakage on Android 14 by @johnmccutchan in 52980
  • Upgrade all[most] androidx dependencies to latest by @gmackall in 53001
  • FlutterFragment predictive back by @justinmc in 52302
  • Manual revert of #53001 by @gmackall in 53075
  • [Impeller] enable Impeller by default on Android. by @jonahwilliams in 53099
  • Disable Impeller when the manifest explicitly disables it by @jiahaog in 53108
  • add SemanticsAction.focus by @yjbanov in 53094
  • Reverts "Disable Impeller when the manifest explicitly disables it (#53108)" by @auto-submit in 53124
  • Reverts "[Impeller] enable Impeller by default on Android. (#53099)" by @auto-submit in 53125
  • Google java format relocation and formatting update by @reidbaker in 53118
  • Widen CPU affinity set. by @jonahwilliams in 53136
  • java fail on format missing by @reidbaker in 53176
  • Revert "Widen CPU affinity set." by @jonahwilliams in 53274
  • [Flutter GPU] Generate DescriptorSetLayouts for pipelines & export symbols on Android. by @bdero in 53184
  • Add a FlutterEngineRule (JUnit TestRule) and use it in FlutterRendererTest by @matanlurey in 53361
  • Reland "Upgrade all[most] androidx dependencies to latest" by @gmackall in 53462
  • Reverts "Reland "Upgrade all[most] androidx dependencies to latest" (#53462)" by @auto-submit in 53468
  • Update StandardMessageCodec.readValue to be @Nullable by @tarrinneal in 53473
  • Add SurfaceProducer.Callback lifecycle hooks by @matanlurey in 53280
  • Re-re-land "Upgrade all[most] androidx dependencies to latest" by @gmackall in 53532
  • Reverts "Re-re-land "Upgrade all[most] androidx dependencies to latest" (#53532)" by @auto-submit in 53546
  • Replace Log.w with Log.d, and tidy the file up a bit. by @matanlurey in 53586
  • Return a null image from ImageExternalTextureGL::CreateEGLImage if an EGL display is not available by @jason-simmons in 53594
  • Fix AccessibilityFeatures.disableAnimations flag on Android 12+ by @hakonber in 53428
  • Re-re-re-land "Upgrade all[most] androidx dependencies to latest" by @gmackall in 53592

iOS

#
  • Remove _dartobservatory._tcp legacy DNS registration type by @jmagman in 51635
  • [Impeller] Enable logging a warning when the user opts out of using Impeller. by @chinmaygarde in 51849
  • Remove #if SHELL_ENABLE_METAL checks in iOS code by @jmagman in 51636
  • Reverts "Remove #if SHELL_ENABLE_METAL checks in iOS code (#51636)" by @auto-submit in 51941
  • Remove #if SHELL_ENABLE_METAL checks in darwin code by @jmagman in 51947
  • Migrate FlutterRestorationPlugin, FlutterTextureRegistryRelay, FlutterScreenAndSceneIfLoaded to ARC by @jmagman in 51984
  • Move Shell::Add/RemoveView to PlatformView and refine embedder API doc by @dkwingsmt in 52003
  • Update iOS KeyCodeMap dictionary literal and migrate to ARC by @jmagman in 51981
  • Migrate FlutterEmbedderKeyResponder to ARC by @jmagman in 52048
  • Migrate FlutterCallbackCache and FlutterKeyboardManager to ARC by @jmagman in 51983
  • Migrate FlutterDartVMServicePublisher to ARC by @jmagman in 52081
  • [iOS] allow enabling asserts from Plist. by @jonahwilliams in 52069
  • Migrate vsync_waiter_ios to ARC by @jmagman in 52104
  • Migrate FlutterUIPressProxy, ios_context*, rendering_api_selection, and a few other files to ARC by @jmagman in 51633
  • Migrate FlutterChannelKeyResponder and FlutterSpellCheckPlugin to ARC by @jmagman in 52148
  • Suppress in-actionable warnings in the iOS profiler. by @chinmaygarde in 52227
  • [macOS] Rename viewId to viewIdentifier by @dkwingsmt in 52202
  • Refactor and migrate FlutterUndoManagerPlugin to ARC by @jmagman in 52234
  • Break dependency cycle of FlutterViewController <-> FlutterPlatformView by @jmagman in 52271
  • [ios_edit_menu]add native edit menu by @hellohuanlin in 50095
  • Migrate ios_surface files to ARC by @jmagman in 52139
  • [darwin] Update pixel format handling in FlutterTexture by @bc-lee in 52326
  • Remove UIAccessibilityTraitKeyboardKey to fix touch typing by @vashworth in 52333
  • Migrate PlatformMessageHandlerIos to ARC by @jmagman in 52226
  • Fix UIVisualEffectView leak in platform view filter by @jmagman in 52591
  • [iOS] Fix App crash when use WebView with iOS VoiceOver by @tacck in 52484
  • Migrate FlutterView, FlutterPlatformViews, FlutterOverlayView to ARC by @jmagman in 52535
  • Migrate FlutterDartProject and FlutterPluginAppLifeCycleDelegate to ARC by @jmagman in 52719
  • Remove -[NSNotificationCenter removeObserver:] in deallocs by @jmagman in 52772
  • [Impeller] Prepare a SkiaGPU-less iOS build. by @chinmaygarde in 52748
  • ios_external_view_embedder to ARC by @jmagman in 52782
  • Refactor Semantics in preparation for ARC migration by @jmagman in 52729
  • Migrate SemanticsObject and FlutterSemanticsScrollView to ARC by @jmagman in 52824
  • Migrate TextInputSemanticsObject to ARC by @jmagman in 52785
  • [ios][platform_view] Use CAShapeLayer as the mask to avoid software rendering by @hellohuanlin in 53072
  • Reverts "[ios][platform_view] Use CAShapeLayer as the mask to avoid software rendering (#53072)" by @auto-submit in 53220
  • Reland "[ios][platform_view] Use CAShapeLayer as the mask to avoid software rendering #53072" by @hellohuanlin in 53256
  • Remove FlutterUndoManagerPlugin handlers from undo manager on dealloc by @jmagman in 53553
  • [deep link][ios] Update openURL method to reflect the result from framework by @hangyujin in 52643

Web

#
  • [skwasm] Fix toString methods on Paint and ImageFilter/ColorFilter by @eyebrowsoffire in 51766
  • [web] Use viewId for text editing by @mdebbar in 51099
  • Turn struct half leading in canvaskit kitchensink test back on by @LongCatIsLooong in 50707
  • Implement Paint.from(other) for dart:ui. by @matanlurey in 51110
  • [Skwasm] Forward text height from paragraph height to default text style by @eyebrowsoffire in 51819
  • [skwasm] Fix Paragraph.getLineBoundary by @eyebrowsoffire in 51846
  • Remove outdated deprecated_member_use ignores by @goderbauer in 51836
  • Revert "Prevent solo: true from being committed" by @zanderso in 51858
  • Be slightly more lenient about the assertion, as it differs on different backends. by @eyebrowsoffire in 51877
  • Add missing_code_block_language_in_doc_comment lint to flutter/engine. by @kallentu in 51944
  • Move the Dart SDK to //flutter/third_party/dart by @jason-simmons in 51917
  • [skwasm] Reify the SkPicture pointer as the right type. by @eyebrowsoffire in 51991
  • [web] move AccessibilityAnnouncements into SemanticsOwner by @yjbanov in 52138
  • Fix CkBrowserImageDecoder conversion of images to ImageByteFormat.rawRgba and rawStraightRgba by @jason-simmons in 52089
  • [canvaskit] Add configuration for maximum canvases by @harryterkelsen in 51735
  • [skia] Remove no-op GN flag by @kjlubick in 52121
  • [skwasm] Fix sampling options for low filter quality to match CanvasKit. by @eyebrowsoffire in 52331
  • [web:tests] switch to new HTML DOM matcher by @yjbanov in 52354
  • Make SkUnicode explicitly instead of relying on SkParagraph to make it for us by @kjlubick in 52086
  • [skwasm] Change default FilterQuality to None for image shaders. by @eyebrowsoffire in 52468
  • [skwasm] Don't mark the backend texture as mipmapped, since it isn't. by @eyebrowsoffire in 52501
  • [web] Expose browser_detection through ui_web. by @ditman in 52380
  • Remove rasterizerTracingThreshold, checkerboardRasterCacheImages, and checkerboardOffscreenLayers, etc by @Hixie in 52446
  • Put the view focus functionality behind a (disabled by default) flag by @tugorez in 52527
  • [canvaskit] Round physical size to nearest whole number pixels by @harryterkelsen in 52467
  • [web] scale semantic text elements to match the desired focus ring size by @yjbanov in 52586
  • [canvaskit] Clip before applying ColorFilter so it doesn't filter beyond child bounds by @harryterkelsen in 52704
  • Manual roll of Dart SDK from 28e8e94f9e10 to 0b87dfedea5f by @jason-simmons in 52914
  • [canvaskit] Refactor HtmlImageCodec to generalize to different renderers by @harryterkelsen in 52905
  • [web] Adds Noto Serif Tibetan fallback font. by @ditman in 52971
  • [canvaskit] Add dilate and erode imagefilters by @harryterkelsen in 48553
  • Move pictures from deleted canvases to second-to-last canvas instead of last. by @harryterkelsen in 51397
  • Allow unsetting TextStyle.height by @LongCatIsLooong in 52940
  • [canvaskit] Fix overlay reorganization for edge case with only 1 overlay by @harryterkelsen in 53006
  • Switch to FilterQuality.medium for images by @goderbauer in 52984
  • Replace several calls to GrGLMakeNativeInterface with more direct APIs by @kjlubick in 53064
  • [web] Add Ethiopic font fallback. by @ditman in 53180
  • [web] update version-lock file location by @emmanuel-ferdman in 52842
  • Add support for setting the heading level for web semantics (#97894) by @victorgalo in 41435
  • [web] enable always_specify_types for web_ui by @yjbanov in 53226
  • [web] Adds allowPlatformDefault for wheel signals. by @ditman in 51566
  • [web] clean up dynamic calls, remove always_specify_types by @yjbanov in 53228
  • Run tests on macOS 13 or 14 by @vashworth in 53252
  • Fixes a few issues in flutter_js by @eyebrowsoffire in 53231
  • Update Chrome to 125. by @eyebrowsoffire in 53282
  • [web] add test for inefficient overlay allocation by @yjbanov in 53284
  • Use new dart:js_interop way to externalize/internalize objects by @mkustermann in 53304
  • Use dart.library.html to distinguish dart2wasm from dart2js/ddc in conditional imports by @mkustermann in 53307
  • Temporarily run Linux linux_web_engine Mac tests on Mac-13 only by @vashworth in 53318
  • [web] switch from .didGain/LoseAccessibilityFocus to .focus by @yjbanov in 53134
  • Fix character getter API usage in stripLeftSlashes/stripRightSlashes by @jason-simmons in 53299
  • Hack to prevent Safari from being backgrounded during unit tests. by @eyebrowsoffire in 53402
  • Roll web_ui dependencies to enable the next roll of the Dart SDK by @jason-simmons in 53399
  • Manual roll of Dart SDK from e90b0a53e058 to dca20ab646c5 by @jason-simmons in 53410
  • Fix focus management for text fields by @tugorez in 51009
  • [Web] Fix extra new line when inputAction is not newline for a multil… by @bleroux in 53453
  • [web] Don't add href="#" to semantics links by @mdebbar in 53395
  • [web] Add 'flt-semantics-identifier' attribute to semantics nodes by @mdebbar in 53278
  • Reverts "Fix focus management for text fields (#51009)" by @auto-submit in 53502
  • Run safari-dart2js-html tests on macOS 13 by @jmagman in 53497
  • [web] Reland "Fix focus management for text fields (#51009)" by @ditman in 53537
  • [web] Implement AppLifecycleState.detached as documented by @mdebbar in 53506
  • fix: web canvaskit fragment shaders were not using updated uniform values by @Moncader in 53246
  • [skwasm] Fixes for getting pixels from an image. by @eyebrowsoffire in 53561
  • Ignore lints that will be triggered by ExternalDartReference changes by @srujzs in 53572
  • [web] switch from .didGain/LoseAccessibilityFocus to .focus by @yjbanov in 53360
  • [web] Fixes drag scrolling in embedded mode. by @ditman in 53647
  • Output .js files as ES6 modules. by @eyebrowsoffire in 52023
  • Reverts "Output .js files as ES6 modules. (#52023)" by @auto-submit in 53674
  • Revert "[web] switch from .didGain/LoseAccessibilityFocus to .focus" by @jiahaog in 53679
  • Reland "Output .js files as ES6 modules. (#52023)" by @eyebrowsoffire in 53688
  • Reverts "Reland "Output .js files as ES6 modules. (#52023)" (#53688)" by @auto-submit in 53709

Desktop

#
  • [macOS] Group per-view information in FlutterCompositor into a class by @dkwingsmt in 51738
  • [Windows] Don't always stop engine on view destruction by @loic-sharma in 51681
  • [Windows] Move keyboard initialization by @loic-sharma in 51758
  • [macOS] Move to new present callback by @dkwingsmt in 51436
  • [Windows] Fix EGL surface destruction race by @loic-sharma in 51781
  • Remove the view ID check in macOS/FlutterCompositor by @dkwingsmt in 51852
  • [Windows] Prepare to add/remove views by @loic-sharma in 51908
  • [Windows] Move EGL surface creation by @loic-sharma in 51920
  • [macOS] Implement hit testing and handle platform view cursor changes by @knopp in 43101
  • Composite multiple layers in Windows software rendering by @yaakovschectman in 51759
  • [Windows] Allow adding/removing views by @loic-sharma in 51923
  • [Windows] Refactor client wrapper to prepare for multi-view by @loic-sharma in 52073
  • [macOS] Handle reparenting platform views by @knopp in 52152
  • [macOS] FlutterView should not override platform view cursor by @knopp in 52159
  • [macOS] FlutterSurfaceManager should not return surfaces that are in use by @knopp in 52082
  • [Windows] Add/remove view failures should not hang by @loic-sharma in 52164
  • [macOS] Handle interleaved movement and gesture events by @knopp in 52201
  • [macOS] Consolidate view management by @dkwingsmt in 52254
  • [macOS] Disable FlutterEngineTest.BackgroundColor by @cbracken in 52341
  • [macOS] Remove extra setViewController and extra import by @dkwingsmt in 52255
  • Fix function type cast warnings for macOS embedder callbacks by @jason-simmons in 52377
  • macOS fluttertextinputplugin drops selector called if no client by @chunhtai in 52495
  • Replace several NSAssert with FML_CHECK/DCHECK to unblock the build by @bc-lee in 53048
  • [macOS] Fix FlutterView cursor hit testing by @bufffun in 53171

Other changes

#
  • Remove Android API v33 tests from CI. by @matanlurey in 51751
  • Remove --verbose from clang_tidy execution on CI. by @matanlurey in 51760
  • Test that clangd --check works at HEAD. by @matanlurey in 50901
  • Add et query tests and et test commands by @johnmccutchan in 51605
  • Add completion callback to Shell::AddView by @loic-sharma in 51659
  • Reland 51391 by @johnmccutchan in https://github.com/flutter/engine/pull/51764
  • Implement .engine-release.version files for engine Skia Gold tests by @matanlurey in 51739
  • Add a minimal example of using package:test. by @matanlurey in 51726
  • Remove the tests for rotate and crop from the Android scenario_app. by @matanlurey in 51769
  • Fix the clangd builders, and make Linux non-bringup. by @matanlurey in 51765
  • Rename Mac clangd to Linux mac_clangd by @matanlurey in 51785
  • Add more Java and Dart logging to scenario_app (for now) by @matanlurey in 51789
  • Finish clangd testing. by @matanlurey in 51786
  • Prefix non-local build config names with ci/ by @zanderso in 51474
  • Roll buildroot to dcd71b5b237e1e58f2ad8a7e51bead0c2a3755a9 by @zanderso in 51812
  • Never panic in finally { ... }, check output logs on success only. by @matanlurey in 51814
  • Remove unused and untested timeline data branch for scenario_app by @matanlurey in 51816
  • Remove testing/android_background_image which does not run/exist on CI. by @matanlurey in 51815
  • Remove log statements that did not help. by @matanlurey in 51825
  • Remove tests related to StrictMode that were never running on CI. by @matanlurey in 51827
  • Run the DrawSolidBlueScreenTest 5x in a row in bringup builds. by @matanlurey in 51829
  • Run and record adb shell screenrecord during Android scenario app by @matanlurey in 51832
  • Move scenario_app integration tests back to max_attempts: 2. by @matanlurey in 51838
  • Use moved GrBackendTexture factories for Skia's Metal backend by @kjlubick in 51828
  • Replace WindowInsetsController... with adb shell commands by @matanlurey in 51843
  • Reverts "Replace WindowInsetsController... with adb shell commands (#51843)" by @auto-submit in 51847
  • Allow creating slimpeller engine variants. by @chinmaygarde in 51824
  • [Embedder API] Add view by @loic-sharma in 51523
  • Do not use adb shell screenrecord during CI runs. by @matanlurey in 51848
  • Run DrawSolidBlueScreenTest 20x in a row in bringup (up from 5x) by @matanlurey in 51850
  • [et] Prepare local_engine.json for CI, teach et to understand local build names by @zanderso in 51803
  • Use internal retries for SurfaceTexture and Impeller tests too. by @matanlurey in 51856
  • Use non-deprecated replacements for Android JUnit and test instrumentation by @matanlurey in 51854
  • [scenarios] dont do a weird invalidate on TextView. by @jonahwilliams in 51866
  • [scenarios] Use adb to take screenshot, block on screenshot operation. by @jonahwilliams in 51879
  • Remove the bringup 20x emulator config. by @matanlurey in 51885
  • Generate only one "Frame Request Pending" event for each pending call to BeginFrame by @jason-simmons in 51857
  • Expand understanding of build targets in et by @johnmccutchan in 51868
  • Manual Dart roll to 0ac840ba1 and update frontend server snapshot filename by @jason-simmons in 51921
  • Reverts "Roll Dart SDK from 0ac840ba1f0b to 31ddd6924103 (5 revisions) (#51924)" by @auto-submit in 51926
  • Reverts "Manual Dart roll to 0ac840ba1 and update frontend server snapshot filename (#51921)" by @auto-submit in 51927
  • [et] Fixup help text a bit by @zanderso in 51930
  • Adds human readable descriptions to build configs by @zanderso in 51929
  • Fix a memory error in a multithreaded test by @dkwingsmt in 51951
  • Use the AOT snapshot built by the Dart SDK for the frontend server by @jason-simmons in 51943
  • [et] Run GN before looking for targets. Default to build config targets by @zanderso in 51956
  • Reverts "Roll Dart SDK from 7a5e410f982e to db99af14c4bc (1 revision) (#51986)" by @auto-submit in 51989
  • Revert "Roll Dart SDK from 78174b41ab0f to 7a5e410f982e (1 revision) (#51980)" by @zanderso in 51990
  • better output from engine layer unit test failures by @flar in 51975
  • Try postsubmit_overrides for one mac build by @zanderso in 51676
  • Update embedder example apps to run with the current engine tree by @jason-simmons in 51995
  • Add postsubmit overrides for mac builders. by @godofredoc in 51385
  • Use RBE in mac builds in presubmit but not postsubmit by @zanderso in 52018
  • [et] Adds --lto flag to build. Plumbs verbose flag differently. by @zanderso in 52021
  • Adds iOS builds to local_engine.json by @zanderso in 52027
  • Add additional dependencies to const_finder's pubspec.yaml by @whesse in 52033
  • Enable gtest-parallel for Impeller unit tests by @jason-simmons in 52004
  • Manual roll ICU from a622de35ac31 to bad7ddbf9213 (7 revisions) by @zanderso in 52031
  • [Engine] allow --enable-asserts flag to be passed to dart vm in profile mode. by @jonahwilliams in 52029
  • Reverts "Roll Dart SDK from 764bdb7d0344 to 0219e897c6ac (1 revision) (#52053)" by @auto-submit in 52058
  • Revert "Roll Dart SDK from 3d13dbfb3284 to 764bdb7d0344 (1 revision) (#52051)" by @zanderso in 52060
  • [et] Correctly plumb usage line length limit by @zanderso in 52039
  • Save and restore OpenGL bindings that are changed by fl_renderer_render by @jason-simmons in 51887
  • [Fuchsia] Support per app present latency tracing by @chaopeng in 51503
  • Remove intermediate APKs during build process. by @chinmaygarde in 52071
  • Fix the Dart language version for Fuchsia's build of the args package by @jason-simmons in 52083
  • Roll buildroot and set ios_use_simulator variable used by Skia GN scripts by @jason-simmons in 52101
  • Only print "gclient sync" warning once during rebase by @jmagman in 52133
  • Roll reclient, libpng, and zlib by @jason-simmons in 52072
  • Cleanup obsolete Dart VM flags by @alexmarkov in 52197
  • Update Skia's BUILD.gn by @bungeman in 52194
  • Fix incorrect function name in documentation by @robert-ancell in 52184
  • DisplayList tracks maximum render op depths by @flar in 52070
  • Fix docs for SemanticsAction by @goderbauer in 52229
  • Add a dependency on package:web_socket in pkg_demo_test by @brianquinlan in 52239
  • [et] Fix path canonicalization by @cbracken in 52274
  • [et] Simplify path canonicalisation logic by @cbracken in 52275
  • Remove SkScalarIsFinite from Flutter Engine. by @johnstiles-google in 52270
  • [et] Fix concurrent modification exception by @cbracken in 52247
  • Fix link in BlendMode.saturation by @PurplePolyhedron in 52156
  • [et] Lookup output filesystem path, not label by @cbracken in 52248
  • Fail run_impeller_golden_tests if LUCI_CONTEXT && !GOLDCTL by @matanlurey in 52300
  • [fuchsia] Update Fuchsia API version to 17 by @jrwang in 52266
  • Add containsCommand matcher by @cbracken in 52306
  • [et] Don't require the --verbose flag when requesting a ci/ build by @zanderso in 52339
  • Fix some warnings reported by recent versions of clang-tidy by @jason-simmons in 52349
  • Move zlib to //flutter/third_party by @jason-simmons in 52366
  • Remove TODO I will never do: runIfNot is deprecated. by @matanlurey in 52308
  • Document the new binding hooks for SceneBuilder, PictureRecorder, Canvas by @Hixie in 52374
  • Remove goma support from impeller-cmake-example by @zanderso in 52390
  • [Impeller] while we still have benchmarks, see if we're efficient enough for this to be faster. by @jonahwilliams in 52398
  • Remove "gclient sync" warning call during pre-rebase by @jmagman in 52342
  • Add markdown docs about RBE by @zanderso in 52394
  • [fuchsia] route fuchsia.sysmem2.Allocator by @dustingreen in 52187
  • Delete errant back-tick in CONTRIBUTING.md by @gabeschine in 52324
  • Move PointerDataPacketConverter from PlatformView to RuntimeController by @dkwingsmt in 51952
  • Manual Dart roll to 7173b4dd0163 by @jason-simmons in 52425
  • Use a AT-SPI socket/plug to export the Flutter accessibility state. by @robert-ancell in 52355
  • [Impeller] fix GLES image upload. by @jonahwilliams in 52430
  • Add a host_debug_unopt_arm64 macOS configuration. by @chinmaygarde in 52443
  • Add commands to rbe.md by @zanderso in 52442
  • Fix et run by @johnmccutchan in 52477
  • [Impeller] Implements retry for Picture.toImage by @gaaclarke in 52470
  • et phone home by @bdero in 52506
  • Use new Dart_PortEx api to ensure SendPort can be rebuild properly. by @aam in 52498
  • Updated RBE documentation for default credentials. by @gaaclarke in 52530
  • [et] Add ios_debug_unopt build config. by @bdero in 52537
  • [et] Add Linux host_debug_unopt local engine builder by @jason-simmons in 52538
  • [fuchsia] route fuchsia.sysmem2.Allocator pt 2 by @dustingreen in 52509
  • Skip files in the clang-tidy driver if clang-tidy crashes when processing the file by @jason-simmons in 52379
  • Manual Skia roll to 2319f1ae8fe42525f8b6a1969a1cee67bdbee290 by @jason-simmons in 52615
  • Add host_profile_arm64 and host_release_arm64 local engine configurations. by @chinmaygarde in 52620
  • Move verbose to environment.verbose, pass to ninja --verbose if provided. by @matanlurey in 52619
  • Reverts "Add host_profile_arm64 and host_release_arm64 local engine configurations. (#52620)" by @auto-submit in 52630
  • Move setting the logging level into the Logger constructor, refactor. by @matanlurey in 52624
  • Fix links in rbe.md by @zanderso in 52635
  • Move Logger.test to an injected log output versus leaky abstraction. by @matanlurey in 52639
  • Roll reclient forward by @zanderso in 52632
  • Reverts "Roll Dart SDK from b7cad2edae4b to 673b3aa8558a (1 revision) (#52677)" by @auto-submit in 52683
  • Reland "Add host_profile_arm64 and host_release_arm64 local engine configurations." by @chinmaygarde in 52633
  • updated analysis exclusion by @gaaclarke in 52699
  • When et is not attached to a terminal, still split lines for status updates. by @matanlurey in 52681
  • Roll buildroot to 70a42312a688 by @zanderso in 52675
  • Fixed constness of display list storage. by @gaaclarke in 52705
  • Roll third_party/freetype2 from 3bea27612 to af4c2d86d (2 revisions) by @bc-lee in 52689
  • Infer --rbe based on the existence of //flutter/build/rbe by @matanlurey in 52700
  • Write dart:ui golden-file tests testing FilterQuality.* by @matanlurey in 52687
  • Detail a gotcha about reproxystatus by @chinmaygarde in 52714
  • Remove outdated comment. by @chinmaygarde in 52778
  • [fuchsia][sysmem2] route fuchsia.sysmem2.Allocator by @dustingreen in 52708
  • Move libcxx to //flutter/third_party by @jason-simmons in 52773
  • Replace json_utils with a modern extension type, add tests. by @matanlurey in 52769
  • Rolls in buildroot with stack protection flag by @zanderso in 52774
  • Migrate third_party/gradle to flutter/third_party/gradle by @jason-simmons in 52814
  • [et] Print reproxy stats when RBE shuts down by @zanderso in 52818
  • [docs] Suggest using same Xcode version as bots by @cbracken in 52821
  • Roll FreeType from af4c2d86 to bfc3453f by @jason-simmons in 52829
  • Roll buildroot by @zanderso in 52826
  • Short-circuit crawling all targets in et {build|test|query} by @matanlurey in 52832
  • Revamp the engine style guide, remove always_specify_types. by @matanlurey in 52859
  • Include stdout on a failed gn desc call, and test for it. by @matanlurey in 52863
  • Reverts "Revamp the engine style guide, remove always_specify_types. (#52859)" by @auto-submit in 52867
  • et generates {out}/{buildName} if missing on et {build|test|query} by @matanlurey in 52866
  • [macOS] Generate universal gen_snapshots by @cbracken in 52885
  • Reverts "[macOS] Generate universal gen_snapshots (#52885)" by @auto-submit in 52913
  • Update file permissions for FlutterMacOS.framework by @jmagman in 52930
  • Remove --trace-gn from ./flutter/tools/gn by @chinmaygarde in 52964
  • Update file permissions for FlutterMacOS.framework bundle by @jmagman in 52961
  • Reduce rebuild times when invoking 'et run' by @johnmccutchan in 52883
  • Rename Skia specific TUs. by @chinmaygarde in 52855
  • Reverts "Roll Dart SDK from aed02f471e34 to 17c351dd16f4 (1 revision) (#53037)" by @auto-submit in 53039
  • Reverts "Roll Dart SDK from b759e9f83ff9 to aed02f471e34 (1 revision) (#53036)" by @auto-submit in 53040
  • Reverts "Roll Dart SDK from 641d61332238 to b759e9f83ff9 (1 revision) (#53032)" by @auto-submit in 53041
  • Add Linux platform support for fetching refresh rate on startup. by @bc-lee in 52934
  • Add an unoptimized Android debug config to local_engine.json. by @chinmaygarde in 53057
  • Remove use of --nnbd-agnostic by @johnniwinther in 53055
  • Remove --ios-cpu flag. Only the arm64 variant is supported. by @chinmaygarde in 53044
  • DisplayList forward opacity incompatibility through deferred saves by @flar in 53078
  • [Impeller] revert changes to IO thread upload scheduling. by @jonahwilliams in 53096
  • Update CONTRIBUTING.md links by @jtmcdole in 53043
  • [Flutter GPU] Upload flutter_gpu.zip upon successful completion of ci/android_debug. by @bdero in 53107
  • Fuchsia api level 18 by @jrwang in 53115
  • Reverts "Roll Dart SDK from ef405fbe3917 to 2976c1694eed (6 revisions) (#53119)" by @auto-submit in 53128
  • [semantics] fix dartdoc grammar by @yjbanov in 53121
  • Remove complexity calculator with Slimpeller by @jonahwilliams in 53140
  • Remove SK_RESOLVE_FILTERS_BEFORE_RESTORE flag by @lhkbob in 49563
  • Remove RBE crud compile_commands.json by @jtmcdole in 53135
  • Migrate off deprecated GrVkBackendContext fields by @kjlubick in 53122
  • [Impeller] fix NPE caused by implicit sk_sp to fml::Status conversion. by @jonahwilliams in 53177
  • [display_list] allow applying opacity peephole to single glyph. by @jonahwilliams in 53160
  • Fix rendering corruption by Flutter and GDK sharing the same OpenGL context by @robert-ancell in 53103
  • Reverts "[display_list] allow applying opacity peephole to single glyph. (#53160)" by @auto-submit in 53189
  • [icu] Manual roll of icu by @filmil in 53199
  • Re-land #52859: Revamp the engine style guide, remove always_specify_types by @matanlurey in 53223
  • Update testing/skia_gold_client/README.md by @christopherfujino in 53233
  • [Impeller] added test for bgra10xr png encoding by @gaaclarke in 53182
  • [DisplayList] remove legacy DisplayListMatrixClipTracker by @flar in 53232
  • [Impeller] fix emojis with non-solid color sources. by @jonahwilliams in 53229
  • Remove the DBC interpreter flag. by @chinmaygarde in 53204
  • Make pointer events ignore invalid views by @dkwingsmt in 51925
  • Temporarily run Mac mac_host_engine on only Mac-13 by @vashworth in 53313
  • Map mouse pointer type on Linux by @moffatman in 52418
  • [engine] null check texture registry in OnPlatformViewMarkTextureFrameAvailable. by @jonahwilliams in 53334
  • Revert "[web] switch from .didGain/LoseAccessibilityFocus to .focus (… by @yjbanov in 53342
  • [Impeller] makes bgra10xr test more comprehensive by @gaaclarke in 53320
  • Give mac_host_engine tests a longer timeout and allow to run on Mac-14 by @vashworth in 53355
  • Change element to wait for in AppExtensionTests testAppExtensionLaunching by @vashworth in 53358
  • Update "Vulnerability scanning" to add the actions: read permission. by @chinmaygarde in 53409
  • [flatland] Handle fence overflow in flatland_connection.cc by @filmil in 53366
  • Setup NativeAssetsApi during isolate group creation by @dcharkes in 53329
  • Better clipRect culling accuracy under scaling transforms by @flar in 53508
  • Update uses of GrVkBackendContext and other deprecated type names by @kjlubick in 53491
  • [fuchsia] Update Fuchsia API level to 19 by @jrwang in 53494
  • [macOS] Generate universal gen_snapshots by @cbracken in 53524
  • Bump impeller-cmake-example by @bdero in 53538
  • Roll the archive package to version 3.6.1 by @jason-simmons in 53582
  • Move impeller-cmake-example to flutter/third_party. by @matanlurey in 53589
  • Copy flutter/flutter/docs/engine to flutter/engine/docs as-is (no changes) by @matanlurey in 53595
  • Remove otherwise unused third_party/web_dependencies. by @matanlurey in 53588
  • Fix #150515 Provide required headers for build with Clang-16 and GCC … by @johnoneil in 53479
  • Update DEPS to pull in 8c2d66fa4e6298894425f5bdd0591bc5b1154c53. by @chinmaygarde in 53614
  • [icu] Ignores the dir flutter/third_party/icu/patches by @filmil in 53667
  • Restore creation of engine before Linux widget is realized. by @robert-ancell in 53604
  • [skia] Use more GNI file lists by @kjlubick in 53685

New contributors

#
  • @brianquinlan made their first contribution in 52239
  • @PurplePolyhedron made their first contribution in 52156
  • @bc-lee made their first contribution in 52326
  • @tacck made their first contribution in 52484
  • @johnniwinther made their first contribution in 53055
  • @bufffun made their first contribution in 53171
  • @emmanuel-ferdman made their first contribution in 52842
  • @victorgalo made their first contribution in 41435
  • @tarrinneal made their first contribution in 53473
  • @jezell made their first contribution in 53483
  • @Moncader made their first contribution in 53246
  • @hakonber made their first contribution in 53428

Full Changelog: https://github.com/flutter/engine/compare/3.22.0...3.24.0