Skip to main content

Flutter 3.38.0 release notes

This page has release notes for Flutter 3.38.

What's changed

#

Framework

#
  • Add dartpad example to RoundedSuperellipseBorder by @dkwingsmt in 172185
  • [web] Remove all usages of js_util. by @ksokolovskyi in 171871
  • Properly lay out and position RenderWebImage by @harryterkelsen in 171916
  • Add a getter to get the recorder used by painting context by @MohiuddinM in 170223
  • add debugPaintTextLayoutBoxes for debugging text layout by @LongCatIsLooong in 168876
  • Platform views shouldn't receive pointer events when not laid out by @justinmc in 172043
  • TestTextInput should reset its key handler between tests by @justinmc in 172323
  • Recommend using Flutter feature flags over platform-specific configs by @loic-sharma in 172324
  • WebParagraph initial commit by @Rusino in 167559
  • Add CLA note to tree hygiene by @stuartmorgan-g in 172475
  • Feat: Add momentary varient of CupertinoSlidingSegmentedControl by @rkishan516 in 164262
  • Add hitTestChildren to baseline-aligned stack by @victorsanni in 172485
  • Bump meta to 0.17.0 by @goderbauer in 172541
  • Improve assertion message in AlignmentDirectional.resolve by @SalehTZ in 172096
  • Fix: Ensure Text widget locale is included in semantics language tag by @pedromassango in 172034
  • Roll pub packages by @flutter-pub-roller-bot in 172677
  • Migrate to null aware elements - Part 1 by @jamilsaadeh97 in 172198
  • Add missing deprecations to CupertinoDynamicColor. by @ksokolovskyi in 171160
  • Improve assertion message in _MixedBorderRadius.resolve() by @SalehTZ in 172100
  • Remove deprecated AssetManifest.json file by @matanlurey in 172594
  • fix(scrollbar): Update padding type to EdgeInsetsGeometry by @SalehTZ in 172056
  • Reland - Manual roll of Dart from 5ede85aff798 to 14ea8d342149 by @a-siva in 172947
  • Migrate to null aware elements - Part 2 by @jamilsaadeh97 in 172306
  • docs: Clarify Transform.rotate origin interaction with alignment by @SunkenInTime in 163934
  • [ Widget Previews ] Add support for MultiPreviews by @bkonyi in 172852
  • Migrate to null aware elements - Part 4 by @jamilsaadeh97 in 172322
  • fix: adjust scrollable size assertion with tolerance by @Zuckjet in 171426
  • Add a SliverList code sample by @loic-sharma in 172986
  • [web] Text editing test accepts both behaviors in Firefox by @mdebbar in 172767
  • Improve assertion message in EdgeInsetsDirectional.resolve by @SalehTZ in 172099
  • Fix the issue where calling showOnScreen on a sliver after a pinned child in SliverMainAxisGroup does not reveal it. by @yiiim in 171339
  • [engine] Null aware elements clean-ups by @jamilsaadeh97 in 173075
  • fix: :bug: Add equality and hashCode implementations to ResizeImage by @Yash-Dhrangdhariya in 172643
  • Make sure that a RawAutocomplete doesn't crash in 0x0 environment by @ahmedsameha1 in 172812
  • Reformat text.dart's code snippets by @loic-sharma in 172976
  • Add the 'windowing' feature flag and use to wrap an implementation for regular windows that always throws by @mattkae in 172478
  • Suppress deprecated iOS windows API in integration_test by @jmagman in 173251
  • [ Widget Preview ] Cleanup for experimental release by @bkonyi in 173289
  • Add radius clamping to web RSuperellipse by @dkwingsmt in 172254
  • Fix ReorderableList proxy animation for partial drag-back by @lukemmtt in 172380
  • Remove jetifier usages from framework and engine by @reidbaker in 173459
  • Fix the issue of over-scrolling in SliverMainAxisGroup with a PinnedHeaderSliver. by @yiiim in 173349
  • Roll Clang to 8c7a2ce01a77c96028fe2c8566f65c45ad9408d3 by @jason-simmons in 173429
  • Fix directional focus in nested scrollables with different axis by @romaingyh in 172875
  • Null aware elements clean-ups by @jamilsaadeh97 in 173074
  • feat: Cupertino sheet implement upward stretch on full sheet by @masal9pse in 168547
  • [VPAT][A11y] Announce Autocomplete search results status by @victorsanni in 173480
  • Implements the Android native stretch effect as a fragment shader (Impeller-only). by @MTtankkeo in 169293
  • Reverts "Implements the Android native stretch effect as a fragment shader (Impeller-only). (#169293)" by @auto-submit[bot] in 173865
  • [a11y] : set isFocused will update isFocusable to true by @hannah-hyj in 170935
  • Improve SweepGradient angle and TileMode documentation by @SalehTZ in 172406
  • Reapply "Add set semantics enabled API and wire iOS a11y bridge (#161… by @chunhtai in 171198
  • Improve Stack widget error message for bounded constraints by @Rushikeshbhavsar20 in 173352
  • Update CupertinoSliverNavigationBar.middle by @victorsanni in 173868
  • Reverts "Reapply "Add set semantics enabled API and wire iOS a11y bridge (#161… (#171198)" by @auto-submit[bot] in 174153
  • Refactor text and runtime effect to separate skia and impeller implementations. by @eyebrowsoffire in 174219
  • [skwasm] Port to DisplayList objects by @eyebrowsoffire in 172314
  • NavigatorPopScope examples no longer use deprecated onPop. by @justinmc in 174291
  • [web] Refactor LayerScene out of CanvasKit by @harryterkelsen in 174375
  • [web] Migrate non-CanvasKit-specific tests to ui/ by @harryterkelsen in 174396
  • Make SystemUiOverlayStyle to be diagnosticable by @huycozy in 174018
  • [iOS][Secure Paste] Custom edit menu actions by @jingshao-code in 171825
  • fix typo in test_profile/README.md by @mboetger in 174384
  • Fix SliverMainAxisGroup and SliverCrossAxisGroup gestures' local positions. by @ksokolovskyi in 174265
  • Flutter driver deserialization by @jakemac53 in 172927
  • Retry "Implements the Android native stretch effect as a fragment shader (Impeller-only)." by @MTtankkeo in 173885
  • [WebParagraph] More plumbing towards making it usable in Flutter apps by @mdebbar in 174587
  • [a11y] [test] containsSemantics can ignore SemanticsValidationResult by @hannah-hyj in 174608
  • [impeller] Support partitioned host buffer by @eyebrowsoffire in 174463
  • Implement Overlay.of with inherited widget by @chunhtai in 174315
  • [flutter_test] update the _isImportantForAccessibility method in SemanticsController to include tooltip by @hannah-hyj in 174476
  • Reapply "Add set semantics enabled API and wire iOS a11y bridge" by @chunhtai in 174163
  • Add SliverGrid.list convenience constructor by @ahmeddhus in 173925
  • Fix typo in widget_inspector.dart by @xVemu in 174115
  • Include SemanticsValidationResult in debugDumpSemanticsTree by @hannah-hyj in 174677
  • Fix: Assertion failure in RawScrollbarState with dynamic controller assignment by @rkishan516 in 173156
  • Ensures initial semantics state is sent to engine by @chunhtai in 174845
  • Considers large title height in CupertinoNavigationBar's preferred size by @romaingyh in 173722
  • Correct intrinsics calculation for CupertinoTextField with placeholder by @victorsanni in 174889
  • Allow OverlayPortal.overlayChildLayoutBuilder to choose root Overlay by @chunhtai in 174239
  • [ Widget Preview] Add group property to Preview by @bkonyi in 174849
  • Fix: Use route navigator for CupertinoSheetRoute pop by @rkishan516 in 173103
  • fix(Semantics): Ensure semantics properties take priority over button's by @pedromassango in 174473
  • Fix SliverMainAxisGroup scrollOffsetCorrection by @manu-sncf in 174369
  • Depend on operator overload synthesis for three-way and equality comparisons. by @chinmaygarde in 174892
  • Nav bar static components respect ambient MediaQueryData by @victorsanni in 174673
  • Adjust default CupertinoCheckbox size on desktop by @victorsanni in 172502
  • Update transformHitTests documentation for clarity by @Rushikeshbhavsar20 in 174286
  • Add semanticIndexOffset argument to SliverList.builder, SliverGrid.builder, and SliverFixedExtentList.builder by @rodrigogmdias in 174856
  • chore: move engine docs out of engine/ and into docs/ by @jtmcdole in 175195
  • CupertinoContextMenu child respects available screen width by @victorsanni in 175300
  • [a11y-app] Fix form field label and error message by @bleroux in 174831
  • Engine Support for Dynamic View Resizing by @LouiseHsu in 173610
  • [web] Unskip Cupertino datepicker golden tests in Skwasm by @harryterkelsen in 174666
  • Add CupertinoLinearActivityIndicator by @ValentinVignal in 170108
  • Fix RadioGroup single selection check. by @ksokolovskyi in 175654
  • Fix: Update docs tool tag to sample in ImageProvider by @dixita0607 in 175256
  • [ Widget Preview ] Allow for custom Preview annotations, add support for runtime transformations by @bkonyi in 175535
  • [web] Cleanup opportunities post renderer unification by @mdebbar in 174659
  • Load fonts in the order addFont is called by @jiahaog in 174253
  • Fix outdated link of intl package to point to the correct new location by @AbdeMohlbi in 174498
  • Add non uniform TableBorder by @korca0220 in 175773
  • fix: remove final class modifier on MenuController by @rkishan516 in 174490
  • Add an assertion for the relationship between Visibility.maintainState and Visibility.maintainFocusability by @Renzo-Olivares in 175552
  • fix: cupertino sheet broken example with programatic pop by @rkishan516 in 175709
  • Fix SliverMainAxisGroup SliverEnsureSemantics support by @manu-sncf in 175671
  • Cleans up navigator pop and remove logic by @chunhtai in 175612
  • Fix docs in EditableText by @Renzo-Olivares in 175787
  • Make sure that a CupertinoDesktopTextSelectionToolbarButton doesn't c… by @ahmedsameha1 in 173894
  • Implement Regular Windows for the win32 framework + add an example application for regular windows by @mattkae in 173715
  • [a11y] Add expanded flag support to Android. by @ksokolovskyi in 174981
  • Migrate tests and documentation to set java version to 17 by @reidbaker in 176204
  • Migrate java 11 usage to java 17 usage for templates by @reidbaker in 176203
  • Update flutter test to use SemanticsFlags by @hannah-hyj in 175987
  • Implement framework interface for the dialog window archetype by @mattkae in 176202
  • Web semantics: Fix email field selection/cursor by using type="text" + inputmode="email" by @flutter-zl in 175876
  • replace onPop usage with onPopWithResult in navigation_bar.2.dart by @AbdeMohlbi in 174841
  • Adds dart ui API for setting application level locale by @chunhtai in 175100
  • Update description in _LastFinderMixin to properly describe finding last by @FufferKS in 174232
  • Fix: Update anchorRect for overlayBuilder when anchor moves by @rkishan516 in 169814
  • Fix typo in pages.dart by @TDuffinNTU in 176438
  • Selecting an implementation widget with the on-device inspector opens the code location for the nearest project widget by @elliette in 176530

Material

#
  • No SystemContextMenu when readOnly is true by @justinmc in 171242
  • Fix mutating Paint bug by @justinmc in 171180
  • feat: Add maxCount parameter to Badge.count constructor. by @iamtoricool in 171054
  • Adopt Null-Aware Elements in packages/flutter/lib/src/material by @0xharkirat in 172285
  • Add optional splashColor property to ExpansionTile by @Musaddiq625 in 172224
  • Add radioInnerRadius to RadioListTile by @ValentinVignal in 171851
  • feat(IconButton): add property to specify a states controller by @ricardodalarme in 169821
  • Fix PopupMenuButton crashes when being hidden immediately by @huycozy in 171970
  • [Web][a11y] Update selected chips semantics by @hannah-hyj in 172660
  • fix: TabBar fontFamily inheritance with custom label styles by @koji-1009 in 171699
  • Add automaticallyImplyActions property to AppBar by @k-arindam in 171113
  • Make sure that an AboutDialog doesn't crash in 0x0 environment by @ahmedsameha1 in 172444
  • Make sure that an ActionChip doesn't crash in 0x0 environment by @ahmedsameha1 in 172684
  • Make sure that a Card doesn't crash in 0x0 environment by @ahmedsameha1 in 172373
  • Make sure that a MaterialBanner doesn't crash in 0x0 environment by @ahmedsameha1 in 172074
  • Handle#6537 bottom navigation bar by @ahmedsameha1 in 172404
  • Make sure that a BottomAppBar doesn't crash in 0x0 environment by @ahmedsameha1 in 172097
  • Remove shortner by @rekire in 172844
  • Fix SegmentedButton border doesn't reflect states by @bleroux in 172754
  • [a11y] add RangeSlider to a11y test app as additional use-case by @yjbanov in 172922
  • Migrate to null aware elements - Part 5 by @ricardodalarme in 172418
  • feat: Add cursorHeight to DropdownMenu by @SalehTZ in 172615
  • [A11y] RangeSlider should have 2 focus node by @hannah-hyj in 172729
  • Add side to RadioThemeData by @ValentinVignal in 171945
  • Add innerRadius to RadioThemeData by @ValentinVignal in 173120
  • Make sure that a LicensePage doesn't crash in 0x0 environment by @ahmedsameha1 in 172610
  • Migrate to list and builder Sliver convenience constructors by @loic-sharma in 173011
  • Make sure that an AboutListTile doesn't crash in 0x0 environment by @ahmedsameha1 in 172421
  • Fix Slider dragged mouse cursor visibility. by @ksokolovskyi in 172759
  • Fix drawerScrimColor transition. by @ksokolovskyi in 173280
  • Fix ScaffoldGeometry null scale with noAnimation FAB by @Mairramer in 172914
  • [A11y] TextField prefix icon and suffix icon create a sibling node' by @hannah-hyj in 173312
  • [a11y] Textfield has flag isFocusable set to true by @hannah-hyj in 173235
  • Fix tooltip crash when route has secondary animation by @victorsanni in 172678
  • Make sure that a RawChip doesn't crash in 0x0 environment by @ahmedsameha1 in 173265
  • Make sure that a Checkbox doesn't crash in 0x0 environment by @ahmedsameha1 in 173178
  • Update ExpansibleController in ExpansionTile didUpdateWidget by @ValentinVignal in 173175
  • Fix visual overlap of transparent routes barrier when using FadeForwardsPageTransitionsBuilder by @TheLastFlame in 167032
  • Fix ChipThemeData lerp for BorderSide by @ValentinVignal in 173160
  • Make sure that a Chip doesn't crash in 0x0 environment by @ahmedsameha1 in 173245
  • fix: selected date decorator renders outside PageView in DatePickerDialog dialog by @albinpk in 171718
  • Make sure that a ChoiceChip doesn't crash in 0x0 environment by @ahmedsameha1 in 173322
  • Allow empty initial time when using text input mode in showTimePicker dialog by @azatech in 172847
  • Fix default minimumSize in dropdownMenu when maximumSize is null by @EdwynZN in 169438
  • Fix InputDecorator label padding by @bleroux in 173344
  • [Range slider] Tap on active range, the thumb closest to the mouse cursor should move to the cursor position. by @hannah-hyj in 173725
  • Add error handling for Element lifecycle user callbacks by @LongCatIsLooong in 173148
  • feat: add onLongPressUp callback to InkWell widget by @houssemeddinefadhli81 in 173221
  • Predictive back route transitions by default by @justinmc in 165832
  • Make sure that a DatePickerDialog doesn't crash in 0x0 environment by @ahmedsameha1 in 173677
  • Make sure that a TableRowInkWell doesn't crash in 0x0 environment by @ahmedsameha1 in 173627
  • Make sure that DataTable, DataColumn, DataRow, and DataCell don't crash in 0x0 environment by @ahmedsameha1 in 173515
  • Reverts "Predictive back route transitions by default (#165832)" by @auto-submit[bot] in 173809
  • Add onHover callback support for TableRowInkWell by @lauraywu in 173373
  • Reland predictive back route transitions by default by @justinmc in 173860
  • Enhance FilledButton and Theme Data's documentation to clarify platform-specific visual density behavior by @huycozy in 173695
  • [VPAT][A11y] AutoComplete dropdown option is missing button role by @srivats22 in 173297
  • Add Shift+Enter shortcut example for TextField. by @ksokolovskyi in 167952
  • Update the AccessibilityPlugin::Announce method to account for the view by @mattkae in 172669
  • [VPAT][A11y] NavigationRail correct traversal order by @victorsanni in 173891
  • Fix SegmentedButton focus issue by @bleroux in 173953
  • Fix time picker period selector a11y touch targets by @bleroux in 170060
  • Fix Menu anchor reduce padding on web and desktop by @huycozy in 172691
  • Make component theme data defaults use WidgetStateProperty by @ValentinVignal in 173893
  • feat: Added FocusNode prop for DropdownMenu Trailing Icon Button by @AlsoShantanuBorkar in 172753
  • Make sure that a BackButton doesn't crash in 0x0 environment by @ahmedsameha1 in 172817
  • Make sure that a CircleAvatar doesn't crash in 0x0 environment by @ahmedsameha1 in 173498
  • Make sure that CalendarDatePicker & YearPicker don't crash in 0x0 environment by @ahmedsameha1 in 173408
  • Make sure that a Badge doesn't crash in 0x0 environment by @ahmedsameha1 in 172065
  • Fix onSelect called twice in DropdownMenuFormField by @PurplePolyhedron in 174053
  • Migrate some files to use WidgetStateProperty by @ValentinVignal in 174109
  • Make sure that an Autocomplete doesn't crash in 0x0 environment by @ahmedsameha1 in 172732
  • Revert "Update the AccessibilityPlugin::Announce method to account fo… by @chunhtai in 174223
  • Migrate more files to use WidgetStateProperty by @ValentinVignal in 174176
  • Migrate more files to WidgetStateProperty by @ValentinVignal in 174268
  • Update some semantics flags updated to use enum (engine, framework, web) by @hannah-hyj in 170696
  • Fix logic statements in year2023 documentation by @xVemu in 174120
  • Migrate to use WidgetStateProperty by @ValentinVignal in 174323
  • Fix: Active step fully colored in vertical mode by @rkishan516 in 173152
  • SnackBar with action no longer auto-dismiss by @QuncCccccc in 173084
  • Migrate examples and defaults to WidgetState by @ValentinVignal in 174421
  • Drawer barrier non dismissible with the escape key by @romanejaquez in 173263
  • Make sure that an AlertDialog doesn't crash in 0x0 environment by @ahmedsameha1 in 174091
  • Adds semantics for disabled buttons in date picker by @chunhtai in 174064
  • Fix empty adaptive text selection toolbars building. by @ksokolovskyi in 174656
  • Make sure that a Dialog doesn't crash in 0x0 environment by @ahmedsameha1 in 174023
  • Handle#6537 date picker dialog by @ahmedsameha1 in 174359
  • Migrate some files to use WidgetState by @ValentinVignal in 174486
  • Fix LinearProgressIndicator track painting. by @ksokolovskyi in 173108
  • [A11y] Add semantics for CupertinoExpansionTile by @victorsanni in 174480
  • Make sure that a DropdownMenuFormField doesn't crash in 0x0 environment by @ahmedsameha1 in 174777
  • Fix expanded DropdownMenu panel is shorter than text field by @bleroux in 174443
  • Fix table cell semantics rect alignment issues. by @hannah-hyj in 174914
  • Fix IconButton.color overrided by IconButtomTheme by @bleroux in 174515
  • Fix DropdownMenuFormField does not clear text field content on reset … by @bleroux in 174937
  • Migrate to widget state by @ValentinVignal in 174746
  • Document Form.onChange precedence over DropdownButtonFormField.onChange by @bleroux in 175249
  • Show cursor after swipe only if TextField has focus by @Memet18 in 175044
  • Migrate to widget state by @ValentinVignal in 175242
  • Fix default overlay color in TabBar by @ValentinVignal in 175270
  • Allow Passing an AnimationController to CircularProgressIndicator and LinearProgressIndicator by @dkwingsmt in 174605
  • Refactor: Migrate page transition builder class to widgets by @rkishan516 in 174321
  • fix: ColorScheme will removeListener on imageStream twice if there is error loading the image. by @dkwingsmt in 174465
  • Correct documentation in PredictiveBackFullscreenPageTransitionsBuilder by @xVemu in 174362
  • feat: Enable WidgetStateColor to be used in ChipThemeData.deleteIconColor by @erickzanardo in 171646
  • Migrate to WidgetState by @ValentinVignal in 175396
  • Migrate to WidgetPropertyResolver by @ValentinVignal in 175397
  • Fix InputDecoration does not apply errorStyle to error by @bleroux in 174787
  • Make sure that a CloseButton doesn't crash in 0x0 environment by @ahmedsameha1 in 172902
  • [a11y] TimePicker clock is unnecessarily announced by @bleroux in 175570
  • Add menuController to DropdownMenu by @ValentinVignal in 175039
  • Correctly implement PlatformViews' cursors on Web by @dkwingsmt in 174300
  • Document how to hide counter in TextField.maxLength by @bleroux in 175797
  • Make sure that a VerticalDivider doesn't crash at 0x0 environment by @ahmedsameha1 in 174761
  • Make sure that Drawer & DrawerHeader don't crash in 0x0 environment by @ahmedsameha1 in 174772
  • Broken link in NavigationRail documentation by @srivats22 in 175852
  • feat(cupertino): Add selectableDayPredicate parameter to CupertinoDatePicker for selectable day control #171332 by @koukibadr in 171334
  • Make sure that a MaterialApp doesn't crash in 0x0 environment by @ahmedsameha1 in 173090
  • Make sure that a FlexibleSpaceBar doesn't crash in 0x0 environment by @ahmedsameha1 in 175228
  • Migrate to WidgetStateColor by @ValentinVignal in 175573
  • Add tests for InputDecoration borders (M3 and theme normalization) by @bleroux in 175838
  • Reapply "Update the AccessibilityPlugin::Announce method to account f… by @mattkae in 174365
  • [time_picker] refactor: Distinguish widgets for dial mode only by @Gustl22 in 173188
  • Reverts "Reapply "Update the AccessibilityPlugin::Announce method to account f… (#174365)" by @auto-submit[bot] in 176059
  • Add itemClipBehavior property for CarouselView's children by @AlsoShantanuBorkar in 175324
  • Migrate to WidgetStateMouseCursor by @ValentinVignal in 175981
  • Make sure that a DesktopTextSelectionToolbar doesn't crash in 0x0 env… by @ahmedsameha1 in 173928
  • Enhance input decorator padding logic for character counter in text f… by @RootHex200 in 175706
  • Migrate to WidgetStateBorderSide by @ValentinVignal in 176164
  • Fix docs referencing deprecated radio properties by @victorsanni in 176244
  • Migrate to WidgetStateOutlinedBorder by @ValentinVignal in 176270
  • Migrate to WidgetStateTextStyle by @ValentinVignal in 176330
  • Make sure that a DateRangePickerDialog doesn't crash in 0x0 environments by @ahmedsameha1 in 173754
  • Make sure that a DrawerButton doesn't crash in 0x0 environment by @ahmedsameha1 in 172948
  • Reapply "Update the AccessibilityPlugin::Announce method to account f… by @chunhtai in 176107
  • Fix platform specific semantics for time picker buttons by @Piinks in 176373
  • Update localization from translation console by @QuncCccccc in 176324
  • Fix Voiceover traversal for OutlinedButton.icon by @LouiseHsu in 175810
  • [material/menu_anchor.dart] Check for reserved padding updates on layout delegate. by @davidhicks980 in 176457
  • Fix TextFormField does not inherit local InputDecorationTheme by @bleroux in 176397
  • Fix NavigatorBar lacks visual feedback by @bleroux in 175182
  • Migrate to WidgetStateInputBorder by @ValentinVignal in 176386
  • Fix PopupMenu does not update when PopupMenuTheme in Theme changes. by @ksokolovskyi in 175513
  • Fix InputDecoration helper/error padding is not compliant by @bleroux in 176353

iOS

#
  • Fix a race in FlutterEngineTest.CanLogToStdout by @jason-simmons in 172025
  • Revert #160653 Fix view removal process for AutofillContextAction.cancel by @LongCatIsLooong in 172490
  • Adapt xcresult parser for Xcode 16 changes by @okorohelijah in 172596
  • Migrate Embedder code to impeller/DL geometry classes by @flar in 172804
  • Add --profile-startup switch by @derekxu16 in 172879
  • Made the view controller weak for the accessibility bridge. by @gaaclarke in 172871
  • Migrate surface frame shell code to DisplayList/Impeller geometry classes by @flar in 173086
  • Prepare for iOS debugging with lldb and devicectl by @vashworth in 173417
  • Use LLDB as the default debugging method for iOS 17+ and Xcode 26+ by @vashworth in 173443
  • Directly generate a Mach-O dynamic library using gen_snapshot. by @sstrickl in 171626
  • Improve xcresult comment and naming by @okorohelijah in 173129
  • Stream logs from devicectl and lldb by @vashworth in 173724
  • [Android] Restrict AOT shared library engine flag to trusted paths by @camsim99 in 173359
  • Remove the option to disable the merged platform/UI thread on Android and iOS by @jason-simmons in 174408
  • Remove build configuration mismatch warning by @vashworth in 174715
  • Build engine TUs with C++20. by @chinmaygarde in 174471
  • Add a viewController property to the ios/macOS FlutterPluginRegistrar protocol by @LongCatIsLooong in 174168
  • Prevent potential crash when accessing window in FlutterSceneDelegate by @vashworth in 174873
  • [ios]Do not re-add delaying recognizer on iOS 26 by @hellohuanlin in 175097
  • Adds a11y section locale support for iOS by @chunhtai in 175005
  • Filter out unexpected process logs on iOS with better regex matching. by @vashworth in 175452
  • Connect the FlutterEngine to the FlutterSceneDelegate by @vashworth in 174910
  • Do not present textures in FlutterMetalLayer if the drawable size changed and the texture's size does not match the new drawable size by @jason-simmons in 175450
  • Ignore upcoming experimental_member_use warnings. by @stereotype441 in 175969
  • Add scene plugin lifecycle events by @vashworth in 175866
  • Roll GN to 81b24e01 by @jason-simmons in 176119
  • Add SwiftUI support for UIScene migration by @vashworth in 176230
  • Add deeplinking for UIScene migration by @vashworth in 176303
  • Add state restoration for UIScene migration by @vashworth in 176305
  • Add an AppDelegate callback for implicit FlutterEngines by @vashworth in 176240
  • Add tooling to migrate to UIScene by @vashworth in 176427
  • Handle FlutterEngine registration when embedded in Multi-Scene apps by @vashworth in 176490
  • Add fallback for 'scene:willConnectToSession:options' by @vashworth in 176580
  • [CP-beta]Add structured warning event for slow wireless debugging on iOS 26+ d… by @flutteractionsbot in 176976
  • [CP-beta]Add guided error for precompiled cache error by @flutteractionsbot in 177607

Android

#
  • fix: produce pom/jar files with content_hash by @jtmcdole in 172378
  • Update warnGradleVersion to 8.7.0 by @jesswrd in 172576
  • [FGP] Small restructuring of Android Studio native flutter dependency support by @gmackall in 172651
  • [android] Fix broken --android-skip-build-dependency-validation flag by @gmackall in 172581
  • Fix previous text input connection interrupts enter/space by @Renzo-Olivares in 171973
  • Refactor Android platform view code in advance of enabling HCPP on existing PV widgets (behind a flag) by @gmackall in 170553
  • Adds deprecation for impeller opt out on android by @gaaclarke in 173375
  • Blocks exynos9820 chip from vulkan by @gaaclarke in 173807
  • Migrate deeplink json creation to public AGP api by @reidbaker in 173794
  • fix: only use library props for libraries by @DelcoigneYves in 172704
  • [Android] Fix version code override calculation in FlutterPlugin by @gmackall in 174081
  • Engine build setup for Android RISCV64. by @rmacnak-google in 173672
  • [HCPP] Clean up overlay layer when last frame had overlay content and current doesn't by @gmackall in 173881
  • fix typo in test documentation function name by @AbdeMohlbi in 174297
  • Increase testing coverage and maintainability of android manifest parsing logic by @reidbaker in 174070
  • Made emulator check more thorough by @gaaclarke in 174731
  • [ Tool ] Remove support for experimental --fast-start feature by @bkonyi in 173576
  • refactors FlutterPlugin.kt to use one line statement in the into bloc by @AbdeMohlbi in 174759
  • Wires up Android API to set section locale by @chunhtai in 173364
  • [Gradle 9] Removed minSdkVersion and only use minSdk by @jesswrd in 173892
  • Fix GitHub labeler platform-android typo by @jmagman in 175076
  • Update ImageReaderSurfaceProducer.MAX_IMAGES to include the maximum number of retained dequeued images by @jason-simmons in 174971
  • fix typo in test documentation #2 by @AbdeMohlbi in 174707
  • Update build.gradle to remove deprecation warning in flutter\engine\src\flutter\shell\platform\android by @AbdeMohlbi in 175305
  • Remove redundant public modifier in PlatformViewRenderTarget.java by @AbdeMohlbi in 175284
  • Refactor AccessibilityBridge.java to address linter issues by @AbdeMohlbi in 175277
  • Remove the unnecessary semicolon at the end of the line in ProcessTextPlugin.java by @AbdeMohlbi in 175280
  • Replace .size() == 0 with isEmpty() in PlatformPlugin.java by @AbdeMohlbi in 175285
  • Remove unnecessary toString() call in ImageReaderPlatformViewRenderTarget.java by @AbdeMohlbi in 175286
  • Remove redundant public modifier for interface members in MouseCursorPlugin.java by @AbdeMohlbi in 175281
  • fix typo in test documentation by @AbdeMohlbi in 174292
  • replace Charset.forName("UTF-8") with StandardCharsets.UTF_8 to address linter issues by @AbdeMohlbi in 175275
  • Update buildscript classpath dependency to fix IDE support on android studio by @AbdeMohlbi in 175273
  • Fix linter issues about C-style array in java code by @AbdeMohlbi in 175497
  • Remove unnecessary public modifier in KeyboardManager.java by @AbdeMohlbi in 175500
  • [Android 16] Bump robolectric and java to 21 for third_party libraries by @ash2moon in 175550
  • Update KeyChannelResponder.java to use method reference by @AbdeMohlbi in 175510
  • Remove unnecessary String.valueOf in KeyboardManager.java by @AbdeMohlbi in 175502
  • Remove unused imports, fix assertion order, add non null annotations to ImageReaderPlatformViewRenderTargetTest.java by @AbdeMohlbi in 175723
  • Simplify test asserts and use lambdas by @AbdeMohlbi in 175727
  • Fix wrong order of asserts arguments by @AbdeMohlbi in 175726
  • Improve code quality in AccessibilityBridgeTest.java by @AbdeMohlbi in 175718
  • Fix linter issues in VsyncWaiterTest Capital L for long values by @AbdeMohlbi in 175780
  • Simplify asserts in FlutterMutatorTest by @AbdeMohlbi in 175730
  • Use assertNull to simplify code by @AbdeMohlbi in 175720
  • fix small typo in test docs by @AbdeMohlbi in 175776
  • Change the arguments order in assertEquals to fix linter issues by @AbdeMohlbi in 175719
  • Simplify/fix ordering of asserts in TextInputPluginTest by @AbdeMohlbi in 175784
  • refactor code to use method reference and lambdas in DartMessengerTest.java by @AbdeMohlbi in 175731
  • use lambda expressions /method reference to fix linter issue in DartMessengerTest.java by @AbdeMohlbi in 175733
  • Replace curly braces with lambdas in KeyEventChannelTest by @AbdeMohlbi in 175729
  • Refactor FlutterInjectorTest to use lambdas/method reference by @AbdeMohlbi in 175777
  • In Gradle Flutter task, correctly replace '\ ' with ' '. by @mboetger in 175815
  • Improve code quality in SensitiveContentPluginTest.java by @AbdeMohlbi in 175721
  • Add warn java evaluation to android_workflow by @reidbaker in 176097
  • Clean up typos in PlatformViewsControllerTest.java by @AbdeMohlbi in 175725
  • fix assertEquals arguments are in wrong order in FlutterJNITest.java by @AbdeMohlbi in 175728
  • [Android] Use headingLevel for heading accessibility property by @mnayef95 in 175416
  • Set minimum supported java version to 17 by @reidbaker in 176226
  • Update Framework CI to Use NDK r28c by @jesswrd in 176214
  • Fix deprecated configureStatusBarForFullscreenFlutterExperience for Android 15+ by @alexskobozev in 175501
  • [CP-beta][Android] Refactor ImageReaderSurfaceProducer restoration after app resumes by @camsim99 in 177121
  • [CP-Beta] Bump Templates To Correct Versions (#177416) by @jesswrd in 177608
  • Revert "Resolve resolve native Flutter dependencies in Android Studio… by @reidbaker in 177605

Windows

#
  • Using a shared message-only HWND for clip board data on win32 instead of the implicit view by @mattkae in 173076
  • Provide monitor list, display size, refresh rate, and more for Windows by @9AZX in 164460
  • Regular windows win32 engine by @mattkae in 173424
  • Report a correct display ID in the window metrics event on win32 by @mattkae in 174156
  • Rename DisplayMonitor to DisplayManager on Win32 by @mattkae in 175619
  • [win32] Runloop should use high resolution timer and avoid deadlock by @knopp in 176023

Linux

#
  • Perform OpenGL compositing in the Flutter thread and write to a framebuffer. by @robert-ancell in 172090
  • Refactor handling of frame waiting. by @robert-ancell in 172277
  • Render Flutter in its own EGL context by @robert-ancell in 172330
  • Remove GtkGLArea and render directly into GtkDrawingArea by @robert-ancell in 172343
  • licenses_cpp: reland switch 4 by @gaaclarke in 173139
  • licenses_cpp: moved is_minimal_linux to pkgconfig usage by @gaaclarke in 173248
  • Fix GTK redraw call being called from non-GTK thread. by @robert-ancell in 173602
  • Return result of setting OpenGL contexts back to Flutter by @robert-ancell in 173757
  • Fix lock up when window resized with merged UI and platform threads. by @robert-ancell in 172893
  • Check GTK calls are done on the same thread. by @robert-ancell in 174488
  • Revert "Check GTK calls are done on the same thread." by @flar in 174604
  • Check GTK calls are done on the same thread. (#174488) by @robert-ancell in 174624
  • Warn if embedder API calls don't return success by @robert-ancell in 176184
  • [CP-beta]Fix accessibility events not being correctly translated to ATK by @flutteractionsbot in 177427

Web

#
  • [skwasm] Decrease reliance on finalizers/GC by @eyebrowsoffire in 172187
  • [web] Add tests for unified platform view embedding behavior by @harryterkelsen in 172313
  • [web] Fix empty first frame in multiview mode by @mdebbar in 172493
  • [web] Remove outdated comment about HTML renderer by @mdebbar in 172877
  • [web] ClickDebouncer workaround for iOS Safari click behavior by @mdebbar in 172995
  • [web] Add Intl.Locale to parse browser languages. by @ksokolovskyi in 172964
  • [web] Fix potential race condition in ClickDebouncer by @mdebbar in 173294
  • [WebParagraph] Fix a property name on newer Chrome versions by @mdebbar in 173477
  • [web] Fallback to CanvasKit when WebGL is not available by @mdebbar in 173629
  • [web] Popping a nameless route should preserve the correct route name by @mdebbar in 173652
  • [web] Cleanup usages of deprecated routeUpdated message by @mdebbar in 173782
  • [web] Fix error in ClickDebouncer when using VoiceOver by @mdebbar in 174046
  • [web] Delete unused utils by @mdebbar in 174160
  • _downloadArtifacts (Web SDK) uses content-aware hashing in post-submit by @matanlurey in 174236
  • [web] Expose rasterizers in Renderer by @harryterkelsen in 174308
  • [web] Add test that pictures are not rasterized when clipped out by @harryterkelsen in 174452
  • [web] Raster Pictures at full screen size in Skwasm by @harryterkelsen in 174456
  • [web] Refactor renderers to use the same frontend code by @harryterkelsen in 174588
  • Reverts "[web] Refactor renderers to use the same frontend code (#174588)" by @auto-submit[bot] in 174672
  • [web] Minor simplification in flutter.js loader by @mdebbar in 174963
  • [web] Fix image and color filters equality in SkWASM. by @ksokolovskyi in 175230
  • Remove 'v' Open DevTools from help on web in profile/release mode by @danwirele in 172829
  • [web] Remove unused sceneHost property by @mdebbar in 174997
  • [web] Fix errors when using image filters with default values. by @ksokolovskyi in 175122
  • [reland][web] Refactor renderers to use the same frontend code #174588 by @harryterkelsen in 175392
  • Delete unused web_unicode library by @mdebbar in 174896
  • [web] Fix assertion thrown when hot restarting during animation by @mdebbar in 175856
  • web_ui: avoid crash for showPerformanceOverlay; log 'not supported' once by @muradhossin in 173518
  • [web] Remove mention of non-existent canvaskit_lock.yaml by @mdebbar in 176108
  • Update the test package for the web engine unit test bits. by @eyebrowsoffire in 176241
  • [web] Bump Firefox to 143.0 by @mdebbar in 176110
  • Remove references to dart:js_util by @fishythefish in 176323

Tooling

#
  • Roll pub packages by @flutter-pub-roller-bot in 172193
  • Refactor and forbid base/exit.dart outside of lib/runner.dart by @matanlurey in 171923
  • Roll pub packages by @flutter-pub-roller-bot in 172332
  • Remove IDE validation from flutter doctor by @matanlurey in 171924
  • Add a warning on usage of dartPluginClass: 'none'. by @matanlurey in 172315
  • Skip [tool] crash reporting on --local-engine by @matanlurey in 172326
  • Adds (defaults to ___) when using flutter config --help by @matanlurey in 172329
  • Upgrade flutter_lints in project template pubspec.yaml files by @jason-simmons in 172400
  • Add support for /? to alias to --help by @matanlurey in 172328
  • feat: start using the content aware hash for downloading artifacts by @jtmcdole in 171927
  • Use baseUri always when doing a hot reload or hot restart by @srujzs in 172271
  • Wrap ShutdownHook calls to avoid crashing the tool by @matanlurey in 171917
  • Reverts "feat: start using the content aware hash for downloading artifacts (#171927)" by @auto-submit[bot] in 172505
  • Refactor checks for --machine by @matanlurey in 172504
  • Omit w (widget tree), t (render tree) from flutter run --profile h by @matanlurey in 172506
  • Hide flutter assemble unless --verbose by @matanlurey in 172508
  • feat: start using the content aware hash for downloading artifacts by @jtmcdole in 172552
  • Use a fake representation of cache/artifacts/gradle_wrapper by @matanlurey in 172503
  • Omit instruction to cd . after flutter create by @matanlurey in 172513
  • Wraps all git executions in a Git(...).*, use *=noglob on Windows by @matanlurey in 172495
  • Remove stale references to .packages in tool tests by @matanlurey in 172582
  • Prefix generated Dart plugin imports for registerWith by @matanlurey in 172511
  • Emit a warning on --[no-]disable-dds, preferring --no-dds by @matanlurey in 172595
  • Remove support for pluginClass: none (on master; > 3.35.0) by @matanlurey in 172579
  • Remove 2023 deprecated 'platforms' key from daemon output by @matanlurey in 172593
  • Migrate to null aware elements - Part 3 by @jamilsaadeh97 in 172307
  • feat(tool): Respect user-data-dir flag from web-browser-flag by @reynaldots in 169445
  • Fix an omit-type lint that is breaking the tree by @matanlurey in 172776
  • Add --dart-define, -D to assemble, deprecate --define, -d. by @matanlurey in 172510
  • Rename AppRunLogger, stop writing status messages that break JSON by @matanlurey in 172591
  • Check file contents, remove tests that are now invalid (: 'none') by @matanlurey in 172788
  • Remove deprecated --[no-]-disable-dds by @matanlurey in 172791
  • Update main/master repoExceptions analysis set by @matanlurey in 172796
  • Update flutter pub get to use flutter.version.json (instead of version) by @matanlurey in 172798
  • Add --config-only build option for Linux and Windows by @stuartmorgan-g in 172239
  • [flutter_tools] Add --no-codesign support for macOS build by @knopp in 169034
  • Reverts "[flutter_tools] Add --no-codesign support for macOS build (#169034)" by @auto-submit[bot] in 172878
  • Revert "Remove 2023 deprecated 'platforms' key from daemon output (#172593)" by @chingjun in 172883
  • Made android_gradle_print_build_variants_test.dart more robust by @gaaclarke in 172910
  • [ Widget Preview ] Add --web-server support by @bkonyi in 172978
  • [ Tool ] Mark IOOverrides subclasses as final by @bkonyi in 173078
  • Move android_obfuscate_test from devicelab into tools integration.shard by @jmagman in 169798
  • Add --profile-startup flag to flutter run by @derekxu16 in 172990
  • fix: get content hash for master on local engine branches by @jtmcdole in 173114
  • Reverts "fix: get content hash for master on local engine branches (#173114)" by @auto-submit[bot] in 173145
  • fix: get content hash for master on local engine branches (third attempt) by @jtmcdole in 173169
  • Improve robustness of comment detection when using flutter analyze --suggestions by @reidbaker in 172977
  • In "flutter create", use the project directory in the suggested "cd" command instead of the main source file path by @jason-simmons in 173132
  • [android][tool] Consolidate minimum versions for android projects. by @reidbaker in 171965
  • [web] add --static-assets-url argument to build web by @micaelcid in 171638
  • [ios26]Do not report error for Info.plist key not found by @hellohuanlin in 172913
  • [Android templates] Remove jetifier usage by @reidbaker in 173431
  • Web dev proxy by @salemiranloye in 172175
  • Support launching a HTTPS URL by @Wdestroier in 164720
  • Fix null value reference in flutter logs path by @mboetger in 173437
  • Make device debuggable if useDwdsWebSocketConnection is true and added simple test case by @jyameo in 171648
  • Revert "Make device debuggable if useDwdsWebSocketConnection is true … by @jtmcdole in 173551
  • add format cmd to tools instruction by @hellohuanlin in 173428
  • Reapply "Make device debuggable if useDwdsWebSocketConnection is true … (#173551)" by @bkonyi in 173568
  • Reverts "Reapply "Make device debuggable if useDwdsWebSocketConnection is true … (#173551)" (#173568)" by @auto-submit[bot] in 173587
  • [ Tool ] Fix crash from possible DDS startup race by @bkonyi in 173362
  • Reapply "Make device debuggable if useDwdsWebSocketConnection is true … (#173551)" by @bkonyi in 173628
  • [ios][tools]do not log "bonjour not found" at all (unless verbose) by @hellohuanlin in 173569
  • [ Widget Preview ] Move --dtd-url from a global flag to a widget-preview start option by @bkonyi in 173712
  • [ Widget Preview ] Add --machine mode by @bkonyi in 173654
  • [ Tool ] Fix missing import for widget_preview.dart by @bkonyi in 173731
  • Stop writing legacy FLUTTER_ROOT/version file (by default?) by @matanlurey in 172793
  • Roll package:analyzer forward to 8.1.1 by @bkonyi in 173867
  • Revert "[ios][tools]do not log "bonjour not found" at all (unless verbose)" by @hellohuanlin in 173879
  • [flutter_tools] Use DWDS 25.0.1 by @srujzs in 173777
  • [ Widget Preview ] Don't try to instantiate invalid @Preview() applications by @bkonyi in 173984
  • [ Widget Preview ] Don't crash when directory watcher restarts on Windows by @bkonyi in 173987
  • fix: Android build fails when minSdk is set below 24 in build.gradle.kts (#173823) by @simonpham in 173825
  • [ Tool ] Add logging to test_adapter_test.dart by @bkonyi in 174073
  • [ Widget Preview ] Report an error if a web device is unavailable by @bkonyi in 174036
  • [ios][tools] do not print out bonjour key not found in non-verbose mode by @hellohuanlin in 174001
  • [ Tool ] Cleanup widget preview and frontend server shutdown by @bkonyi in 173863
  • Use an alternative to git describe for master version resolution by @matanlurey in 174088
  • [ Tool ] Throw ToolExit when asset entries use absolute paths by @bkonyi in 174230
  • [ Widget Preview ] Fix crash when attempting to provide non-const params to a Preview by @bkonyi in 174242
  • [ Widget Preview ] Add regression test for issue 173895 by @bkonyi in 174037
  • Skip wasm build when dry run is disabled and --wasm is not specified. by @biggs0125 in 174184
  • [ Tool ] Ensure --dds-port=<port> is respected when targeting web devices by @bkonyi in 174278
  • [ Widget Preview ] Add support for DevTools configuration by @bkonyi in 174272
  • [ Tool ] Don't emit artifact downloading messages when --machine is provided by @bkonyi in 174301
  • Update dwds to 25.0.3 by @srujzs in 174379
  • Create Hot Restart over websocket test by @jyameo in 173852
  • Revert "Directly generate a Mach-O dynamic library using gen_snapshot (#171626) by @vashworth in 174392
  • Fix bug in test_golden_comparator, add an e2e test. by @matanlurey in 174459
  • [native assets] Roll dependencies by @dcharkes in 174522
  • [ Tool ] Roll package:dwds 25.0.4 by @bkonyi in 174601
  • Don't fail when hot restarting web-server and there are no connected clients by @mdebbar in 174600
  • [ Tool ] Only listen for DebugConnectionInfo if the service protocol is supported by @bkonyi in 174664
  • [ Widget Preview ] Respond to IDE navigation events and show previews from the currently focused script by @bkonyi in 174466
  • Add data assets by @mosuem in 174685
  • Use local canvaskit in dart_data_asset_test.dart by @mdebbar in 174891
  • [ Tool ] Remove leftover Android x86 deprecation warning constant by @bkonyi in 174941
  • Make every LLDB Init error message actionable by @vashworth in 174726
  • [web] Reuse chrome instance to run all flutter tests by @mdebbar in 174957
  • [ Widget Preview ] Improve --machine output by @bkonyi in 175003
  • Fix crash when attaching to a device with multiple active flutter apps by @chingjun in 175147
  • Deprecate Objective-C plugin template by @okorohelijah in 174003
  • [native_assets] Find more CCompilerConfig on Linux by @GregoryConrad in 175323
  • Roll pub packages and update lockfiles by @gmackall in 175446
  • Update gradle_utils.dart to use constant instead of final by @AbdeMohlbi in 175443
  • Update gradle_errors.dart to use constants defined in gradle_utils.dart by @AbdeMohlbi in 174760
  • fix typo in comments to mention settings.gradle/.kts instead of build.gradle/.kts by @AbdeMohlbi in 175486
  • [ Tool ] Serve DevTools from DDS, remove ResidentDevToolsHandler by @bkonyi in 174580
  • [ Widget Preview ] Don't update filtered preview set when selecting non-source files by @bkonyi in 175596
  • Remove name field form SupportedPlatform enum by @AbdeMohlbi in 175611
  • Roll pub packages by @flutter-pub-roller-bot in 175545
  • Update maximum known Gradle version to 9.1.0 by @bc-lee in 175543
  • Fix typo in tests README by @AbdeMohlbi in 175788
  • Roll package:analyzer forward to 8.2.0. by @stereotype441 in 175849
  • Remove comment about trailing commas from templates by @bkonyi in 175864
  • Introduce a getter for Project to get gradle-wrapper.properties directly by @AbdeMohlbi in 175485
  • [ Widget Preview ] Fix filter by file on Windows by @bkonyi in 175783
  • Update AGP/Java/Gradle comparison when using analyze --suggestions by @reidbaker in 175808
  • Update Flutter's templates to use dot shorthands by @loic-sharma in 175891
  • Add kotlin/kgp 2.2.* evaluation criteria. by @reidbaker in 176094
  • Removes type annotations in templates by @Piinks in 176106
  • Update java version ranges with the top end limitation for java pre 17 by @reidbaker in 176049
  • [ Widget Preview ] Improve IDE integration support by @bkonyi in 176114
  • Add tests for Project getters by @AbdeMohlbi in 175994
  • [ Widget Preview ] Forward Widget Inspector navigation events via DTD by @bkonyi in 176218
  • Stop using deprecated analyzer 7.x.y APIs. by @scheglov in 176242
  • [native assets] Roll dependencies by @dcharkes in 176287
  • [native assets] Enable build hooks and code assets on stable by @dcharkes in 176285
  • [ Tool / l10n ] Fix issue where localization generator assumed current directory was the target project by @bkonyi in 175881
  • [ Widget Preview ] Persist "Filter by Selected File" toggle by @bkonyi in 176289
  • [ Widget Preview ] Fix resolution for workspace "hosted" dependencies by @bkonyi in 176358
  • Upgrade packages by @mraleph in 176411
  • [ Widget Preview ] Fix type error when retrieving flags from persistent preferences by @bkonyi in 176546
  • [ Widget Preview ] Fix WidgetInspectorService override by @bkonyi in 176550
  • Fix code style in Linux embedder template by @robert-ancell in 176256
  • [ Widget Preview ] Rework UI and theming by @bkonyi in 176581
  • [ Tool ] Output app.dtd and app.devTools in machine mode by @bkonyi in 176655
  • [beta] CP: Fixes hot reload/restart crashes after closing browser tab on web-server device by @jyameo in 177456
  • [CP-beta][tool/dap] Forward app.warning events from Flutter to DAP client by @flutteractionsbot in 176997
  • [CP-beta][ Tool ] Output DTD URI for Flutter web applications by @flutteractionsbot in 177321

Documentation

#
  • Remove jetifier usages by @reidbaker in 173548

Other changes

#
  • Licenses_cpp: Parses NOTICES and DEPS by @gaaclarke in 172044
  • Use release-*.version to simplify last_engine_commit.sh (no branch operations) by @matanlurey in 172236
  • Fix use of Join-Path in last_engine_commit.ps1(poweshell) by @matanlurey in 172242
  • Remove dead link in the doc index. by @chinmaygarde in 172240
  • Sync CHANGELOG.md (3.32.7) to master branch by @matanlurey in 172253
  • Remove emoji from ci.yaml, because we still live with CP1252 for some silly reason by @jtmcdole in 172256
  • Licenses cpp 716 by @gaaclarke in 172261
  • [Impeller] Add missing SetPipeline call for the vertices uber pipeline in AtlasContents by @jason-simmons in 172273
  • Fix Size.isEmpty description by @ahmedsameha1 in 172021
  • Use UTC timezone for stamp_command_test to avoid local TZ flakes by @matanlurey in 172319
  • Add OS version support section to plugin docs by @stuartmorgan-g in 172316
  • Mark Mac_* tool_tests_commands as bringup to unblock tree by @mdebbar in 172388
  • [skia] Update call to SkImage::makeSubset by @kjlubick in 172456
  • Use $dartSdkVersion when creating "dummy" pubspec for create_api_docs by @matanlurey in 172327
  • fix: macOS Mojave Crash on Flutter Desktop Startup by @p1318k in 172282
  • Replaces legacy licenses check with licenses_cpp by @gaaclarke in 172486
  • fix: correct typo in analysis_options.yaml comment (disabeling -> disabling) by @nakanoh in 170206
  • Licenses cpp ignore whitespace by @gaaclarke in 172512
  • [DisplayList] implement shadow bounds without relying on Skia utilities by @flar in 172572
  • Update dev/bots/post_process_docs.dart to use flutter.version.json by @matanlurey in 172601
  • fix: size-exp naming by @jtmcdole in 172647
  • revert: Replaces legacy licenses check with licenses_cpp by @gaaclarke in 172568
  • Manual Roll of Dart SDK from da9e0299c120 to a31774a3d049 by @a-siva in 172616
  • Update excluded_files to match the current output of the old license checker by @jason-simmons in 172670
  • Roll Abseil and remove a workaround for a Fuchsia target that was unable to build Abseil by @jason-simmons in 172665
  • licenses_cpp: implements extracting regions from matched text by @gaaclarke in 172655
  • Bringup linux_web_engine_tests; failing 4+ times in a row by @matanlurey in 172714
  • Flutter-Cherrypick-Process.md - Spell cherry-pick consistently by @srawlins in 172697
  • [Android] Add missing ci configuration for Linux android_java17_tool_integration_tests by @gmackall in 172702
  • Delete (unused) dev/checks_tool directory by @matanlurey in 172715
  • Add docs_action to .ci.yaml doc-related tasks by @ievdokdm in 172589
  • Manual roll of Dart from 26dece893751 to 5ede85aff798 by @a-siva in 172731
  • Update few links in docs by @mdebbar in 172166
  • Update CHANGELOG.md for 3.32.8 by @reidbaker in 172779
  • Bump the customer tests to pick up an update to Zulip's tests, for th… by @justinmc in 172733
  • Refactor verifyVersion into typed Version object, use it by @matanlurey in 172780
  • [Impeller] Log glCheckFrameBufferStatus output when it fails in blit pass. by @bdero in 172592
  • windows: allow pwsh.bat wrapper by @loic-peron-inetum-public in 171778
  • last_engine_commit.ps1: Use $flutterRoot instead of $gitTopLevel by @matanlurey in 172786
  • fix: get content hash for master on local engine branches by @jtmcdole in 172792
  • fix: build size_exp artifacts in post by @jtmcdole in 172802
  • Reverts "fix: get content hash for master on local engine branches (#172792)" by @auto-submit[bot] in 172805
  • [ios]update provisioning profile for 2025-2026 cert for chromium bots by @hellohuanlin in 171021
  • Add Gemini Code Assist review config and style guide by @jmagman in 172785
  • Reland licenses cpp switch by @gaaclarke in 172671
  • [Flutter GPU] Fix Android/GLES crashers. by @bdero in 172588
  • Manual roll of Dart from 5ede85aff798 to 14ea8d342149 by @a-siva in 172783
  • Reverts "Manual roll of Dart from 5ede85aff798 to 14ea8d342149 (#172783)" by @auto-submit[bot] in 172900
  • Fix Gemini Code Assist for GitHub config yaml by @jmagman in 172887
  • Reverts "Reland licenses cpp switch (#172671)" by @auto-submit[bot] in 172912
  • Add package PR triage note by @stuartmorgan-g in 172898
  • Roll Skia from 409e1c7ba09b to a42898e5d622 (29 revisions) by @gaaclarke in 172906
  • Fix documentation for FlutterEngineRunTask by @robert-ancell in 172889
  • Impeller gemini md by @gaaclarke in 172724
  • Defensive get local coverage limit by @gaaclarke in 172888
  • [ Tool ] Don't use .NET APIs in update_engine_version.ps1 by @bkonyi in 172974
  • Made licenses_cpp simpatico with google licenses by @gaaclarke in 172991
  • Bump customer tests for zulip fix 2 by @justinmc in 173003
  • Manual roll of Dart from 14ea8d342149 to 6832e04cf2f9 by @a-siva in 173015
  • impeller: Shrink Command 40 bytes by @gaaclarke in 173004
  • Reland licenses cpp switch 2 by @gaaclarke in 172996
  • Reverts "Reland licenses cpp switch 2 (#172996)" by @auto-submit[bot] in 173059
  • Add dartvm to the dart_sdk_entitlement_config list. by @a-siva in 173044
  • licenses_cpp: Switched to lexically_relative for 2x speed boost. by @gaaclarke in 173048
  • [macOS] Remove duplicate object initialization by @bufffun in 171767
  • Redistribute Android test owners by @jmagman in 172886
  • Avoid negatives in the styleguide.md by @jmagman in 172917
  • Reland licenses cpp switch 3 by @gaaclarke in 173063
  • Upload the linux arm64 embedder to cloud buckets. by @chinmaygarde in 173068
  • Update embedder API CODEOWNERS by @jmagman in 173081
  • Reverts "Reland licenses cpp switch 3 (#173063)" by @auto-submit[bot] in 173113
  • Update GCA instructions by @Piinks in 173001
  • Add skia_ports_fontmgr_android_parser_sources by @bungeman in 172979
  • experiment with docs properties by @ievdokdm in 173124
  • fix: tag fuchsia package after uploading by @jtmcdole in 173140
  • [Impeller] Improvements to the Vulkan pipeline cache data writer by @jason-simmons in 173014
  • [Impeller] Terminate the fence waiter but do not reset it during ContextVK shutdown by @jason-simmons in 173085
  • Upload the Android standalone embedder API dylibs. by @chinmaygarde in 173131
  • [dync_modules] enable iOS ddm build in the merge queue by @goderbauer in 173094
  • Unmark Linux android_java17_tool_integration_tests as bringup by @gmackall in 173284
  • Remove properties from .ci.yaml no longer used by (docs) recipes by @ievdokdm in 173296
  • fix: content_aware_hash tag for fuchsia merge / upload by @jtmcdole in 173253
  • Manual roll to 3.10.0-75.1.beta by @aam in 173423
  • Remove a couple of asserts from display_list_unittest by @fmalita in 173381
  • add --variance host_debug_unopt_arm64 for apple chip simulator by @hellohuanlin in 173475
  • Update CI iOS tests by @vashworth in 173563
  • Enables vulkan for PowerVR B-Series by @gaaclarke in 173561
  • Update integration test for iOS deployment workflows by @vashworth in 173566
  • Update CanRenderTiledTexture unit tests by @fmalita in 173553
  • Bump actions/checkout from 4 to 5 in the all-github-actions group by @dependabot[bot] in 173606
  • [ios] Update iOS code signing CIPD instruction command by @hellohuanlin in 171173
  • [ Tool ] Fix run_linux_chrome_dev_mode by @bkonyi in 173647
  • [Impeller] Apply Y coordinate scaling when sampling from the destination texture in framebuffer advanced blends by @jason-simmons in 173639
  • [ Tool ] Mark Linux_pixel_7pro linux_chrome_dev_mode as bringup by @bkonyi in 173646
  • Do not include :unittests unless enable_unittests by @matanlurey in 173729
  • Thread sub-builders for every engine-uploading builder by @matanlurey in 173742
  • Sync CHANGELOG.md (3.35 -> master) by @matanlurey in 173790
  • Read bin/cache/flutter.version.json instead of version for flutter_gallery by @matanlurey in 173797
  • Remove luci_flags.parallel_download_builds and friends by @matanlurey in 173799
  • Update the RBE configuration for the recent Clang update by @jason-simmons in 173803
  • Re-add Linux_android_emu * tests that had KVM issues, now resolved by @matanlurey in 173812
  • Remove embedded_android_views (on-device) tests, same as emulator test by @matanlurey in 173814
  • Explain how to run Google Test tests directly by @loic-sharma in 173978
  • Add "team-ios" label to iOS team triage query by @jmagman in 173997
  • Add open_jdk to Linux analyze by @matanlurey in 173988
  • Add open_jdk to Linux linux_android_emulator.debug_x64 by @matanlurey in 173989
  • Check that the windows architecture is 64-bit and not the process architecture by @SvenGasterstaedt in 174019
  • Cleanup legacy bringup: true tasks, either removing or enabling by @matanlurey in 173815
  • Move Linux coverage back to bringup by @matanlurey in 174171
  • Add review agent style guidelines to .gemini/styleguide.md by @jmagman in 174000
  • whitespace by @jtmcdole in 174210
  • Update the text input team's issue triage query by @loic-sharma in 173999
  • Update .gemini/styleguide.md to encourage master-only by @matanlurey in 174065
  • Clarify how Gemini should handle conflicting guidelines by @justinmc in 174294
  • Release thread-local resources when submitting a Flutter GPU command buffer by @jason-simmons in 173663
  • Update master CHANGELOG for 3.35.2 by @matanlurey in 174399
  • Remove obsolete vulkan_window source files by @flar in 174087
  • [Impeller] Flush the data written to the device buffer by RoundSuperellipseGeometry by @jason-simmons in 174316
  • Bump codecov/codecov-action from 5.4.0 to 5.5.0 in the all-github-actions group by @dependabot[bot] in 174436
  • [Impeller] Make sure inline passes always do a clear action. by @gaaclarke in 174083
  • Move flakey iOS tests to bringup by @vashworth in 174446
  • fixes the vulkan image layout transitions for mipmap generation by @gaaclarke in 173884
  • Remove CP labels on not-merged PRs, and explain why by @matanlurey in 174448
  • Fix broken reference to PULL_REQUEST_CP_TEMPLATE.md after refactor by @matanlurey in 174595
  • Use raw --removal-label "cp: ..." when removing labels for unmerged PRs by @matanlurey in 174596
  • Refactored Canvas to disallow null inline contexts. by @gaaclarke in 174530
  • Fix some issues in engine-tool README. by @ksokolovskyi in 174512
  • Bind GL_FRAMEBUFFER with glReadPixels for gles2 compatibility by @gaaclarke in 174668
  • Ndk download is not a condition of the test by @reidbaker in 174832
  • [Android] Break up plugin_test integration tests by @camsim99 in 174728
  • Patch .clang-format files to specify C++20. by @chinmaygarde in 174848
  • [Impeller] Fix overdraw in DrawRect geometry by @flar in 174735
  • Mark Linux web_canvaskit_tests_7_last as bringup by @mdebbar in 174878
  • Roll Dart SDK to 3.10.0-162.1.beta by @iinozemtsev in 174834
  • Fixup formatting of gn files in the old buildroot. by @chinmaygarde in 174852
  • Update test_timeout_secs to match timeout for Linux web_skwasm_tests_* and Linux web_canvaskit_tests_* by @mdebbar in 174881
  • update triage documentation to include team-android by @mboetger in 174850
  • Reverts "Mark Linux web_canvaskit_tests_7_last as bringup (#174878)" by @auto-submit[bot] in 174897
  • Remove unnecessary presubmit_max_attempts from .ci.yaml by @mdebbar in 174885
  • Delete impeller::SPrintF. by @chinmaygarde in 174900
  • [ Device Lab ] Fix wakefulness check to only match log entries with string values by @bkonyi in 174953
  • Remove 'terms of use' wording from web_unicode by @mdebbar in 174939
  • [a11y-app] Fix NavigationRail leading and trailing labels by @bleroux in 174861
  • [ Device Lab ] Add regression testing for flutter/flutter#174952 by @bkonyi in 174956
  • deletes the old license checker. by @gaaclarke in 174719
  • Added note about how to compile licenses_cpp by @gaaclarke in 174947
  • [ios26]fix host engine compile error by @hellohuanlin in 174723
  • Define a concept for UniqueObjectTraits. by @chinmaygarde in 174905
  • Impeller: Convert GLProc name field and GLErrorToString to std::string_view by @DEVSOG12 in 173771
  • Bump actions/labeler from 5.0.0 to 6.0.1 in the all-github-actions group by @dependabot[bot] in 175093
  • [shell] Fix engineId not being set after hot restart by @knopp in 174451
  • update deps to point to the new SOT repo for package:coverage by @devoncarew in 175234
  • Set Gemini Code Assist include_drafts to false by @jmagman in 175098
  • Update Chromium sysroot to pick up RISC-V support. by @rmacnak-google in 173671
  • Add a gn --ccache argument by @robert-ancell in 174621
  • Merge the engine README into the README of the old buildroot. by @chinmaygarde in 175384
  • Update NDK Scipt to Latest Stable Part 1 by @jesswrd in 175365
  • [Impeller] Disable the render target cache when creating a snapshot in DlImageImpeller::MakeFromYUVTextures by @jason-simmons in 174912
  • [docs] Add initial version of Flutter AI rules by @johnpryan in 175011
  • [benchmarks] Allow passing --local-web-sdk and --build-mode flags to benchmarks by @harryterkelsen in 175199
  • Sync 3.35.3 and 3.35.4 notes from stable to master by @gmackall in 175461
  • Ensure that the raster thread has an EGL context before submitting the command buffer in ImageEncodingImpeller by @jason-simmons in 175102
  • chore: update content workflow to use itnernal script by @jtmcdole in 175291
  • Removes NOTICES from licenses input by @gaaclarke in 174967
  • Added a 36 device for Firebase Lab Testing by @jesswrd in 175613
  • [engine][fuchsia] Update to Fuchsia API level 28 and roll latest GN SDK by @Breakthrough in 175425
  • [engine] Cleanup Fuchsia FDIO library dependencies by @Breakthrough in 174847
  • fix(tool): Use merge-base for content hash in detached HEAD by @harryterkelsen in 175554
  • Update rules to include extension rules by @johnpryan in 175618
  • [a11y-app] Add label to TextFormField in AutoCompleteUseCase. by @ksokolovskyi in 175576
  • Update CODEOWNERS (for dev-tooling) by @matanlurey in 175201
  • Roll Packages from 3d5c4196d9c8 to 45c9a843859f by @stuartmorgan-g in 175794
  • Update docs/engine/contributing/Compiling-the-engine.md with macOS build steps by @orestesgaolin in 175716
  • [a11y-app] Fix Autocomplete semantics label by @bleroux in 175409
  • Updates to flutter web triage links by @mdebbar in 175791
  • Fixes SemanticsFlags.isLink mis-translated in dart ui ffi by @chunhtai in 175812
  • Add google_fonts to team-framework triage guidelines by @tirth-patel-nc in 175675
  • Put Linux firebase_release_smoke_test on bringup by @Piinks in 176043
  • [Impeller] Optimize scale translate rectangle transforms by @flar in 171841
  • Revert "[Impeller] Optimize scale translate rectangle transforms" by @flar in 176061
  • Fix link to .gclient setup instructions by @gmackall in 176046
  • [Impeller] Optimize scale translate rectangle transforms by @flar in 176123
  • Revert "[Impeller] Optimize scale translate rectangle transforms" by @flar in 176161
  • Fix name of driver file by @robert-ancell in 176186
  • Update Engine CI to use NDK r28c by @jesswrd in 175870
  • User Invoke-Expression instead of call operator for nested Powershell scripts invocations (on Windows) by @aam in 175941
  • fix typo in Crashes.md by @AbdeMohlbi in 175959
  • Update changelog as on 3.35 branch by @justinmc in 176216
  • BUILD.gn: Support LTO build on Linux by @markyang92 in 176191
  • Reduce timeout for Linux web_tool_tests back to 60 by @mdebbar in 176286
  • Add verbose logs to module_uiscene_test_ios by @vashworth in 176306
  • Delete Skia-specific performance overlay implementation by @flar in 176364
  • Windowing integration tests now await change futures if a changes is expected + commenting our erroneous icon in Runner.rc for win32 by @mattkae in 176312
  • fix: delay exiting microbenchmark by @jtmcdole in 176477
  • Align flutter dependencies with ones coming from dart. by @aam in 176475
  • Starts updating the DEPS in preupload. by @gaaclarke in 176485
  • fix: support older git (ubuntu 22.04) in content hash by @jtmcdole in 176321
  • Roll vulkan-deps to a9e2ca3b by @jason-simmons in 176322
  • updates docs for flutter engine footprint by @gaaclarke in 176217
  • Bump customer tests.version to 986c4326b4e4bb4e37bc963c2cc2aaa10b943859 by @DanTup in 176594
  • Bump the customer tests to pick up an update to Zulip's tests. by @stereotype441 in 176463
  • Make it clear that you need to install clangd in VSCode intellisense c++ config by @gmackall in 176609
  • Rename UIScene integration test projects and fix Xcode compatibility by @vashworth in 176635
  • Roll Dart SDK to 3.10.0-290.1.beta by @iinozemtsev in 176629
  • [3.38] Create release-candidate-branch.version & engine.version by @camsim99 in 176746
  • Trigger an engine build for the 3.38 beta release by @camsim99 in 176842
  • [CP-Beta] fix: content hash check for LUCI_CONTEXT (#176867) by @jtmcdole in 176883
  • Update engine.version by @camsim99 in 176799
  • Trigger engine build, and clean up trigger file by @justinmc in 177181
  • 3.38.0 beta engine version by @justinmc in 177178
  • [CP-beta]Configure FfiNative resolver on dart:io by @flutteractionsbot in 177308
  • [CP-beta] Fix crash when NSAttributedString is passed to insertText on macOS by @flutteractionsbot in 177401
  • Update engine.version for 3.38.1 hotfix release by @camsim99 in 177675

New contributors

#
  • @MohiuddinM made their first contribution in 170223
  • @iamtoricool made their first contribution in 171054
  • @0xharkirat made their first contribution in 172285
  • @Musaddiq625 made their first contribution in 172224
  • @nakanoh made their first contribution in 170206
  • @k-arindam made their first contribution in 171113
  • @jamilsaadeh97 made their first contribution in 172198
  • @ievdokdm made their first contribution in 172589
  • @reynaldots made their first contribution in 169445
  • @SunkenInTime made their first contribution in 163934
  • @Zuckjet made their first contribution in 171426
  • @bufffun made their first contribution in 171767
  • @9AZX made their first contribution in 164460
  • @lukemmtt made their first contribution in 172380
  • @Wdestroier made their first contribution in 164720
  • @TheLastFlame made their first contribution in 167032
  • @EdwynZN made their first contribution in 169438
  • @MTtankkeo made their first contribution in 169293
  • @houssemeddinefadhli81 made their first contribution in 173221
  • @lauraywu made their first contribution in 173373
  • @DelcoigneYves made their first contribution in 172704
  • @Rushikeshbhavsar20 made their first contribution in 173352
  • @simonpham made their first contribution in 173825
  • @SvenGasterstaedt made their first contribution in 174019
  • @AlsoShantanuBorkar made their first contribution in 172753
  • @ahmeddhus made their first contribution in 173925
  • @DEVSOG12 made their first contribution in 173771
  • @rodrigogmdias made their first contribution in 174856
  • @danwirele made their first contribution in 172829
  • @Breakthrough made their first contribution in 175425
  • @dixita0607 made their first contribution in 175256
  • @korca0220 made their first contribution in 175773
  • @tirth-patel-nc made their first contribution in 175675
  • @muradhossin made their first contribution in 173518
  • @markyang92 made their first contribution in 176191
  • @RootHex200 made their first contribution in 175706
  • @FufferKS made their first contribution in 174232
  • @alexskobozev made their first contribution in 175501
  • @TDuffinNTU made their first contribution in 176438