Skip to content

[flutter_tools] Verify native assets tree-shaking during linking - #191637

Merged
auto-submit[bot] merged 4 commits into
masterfrom
investigation/issue-130811
Aug 27, 2026
Merged

auto-submit[bot] merged 4 commits into
masterfrom
investigation/issue-130811

Conversation

@bkonyi

@bkonyi bkonyi commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Add a unit test verifying that unused native code assets filtered out by link hooks are tree-shaken and excluded from the installed application bundle and native assets manifest.

Fixes #130811

Add a unit test verifying that unused native code assets filtered out
by link hooks are tree-shaken and excluded from the installed application
bundle and native assets manifest.
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Aug 25, 2026
@github-actions github-actions Bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Aug 25, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a new test to verify that unused native code assets are tree-shaken during linking when they are not recorded as used. Feedback suggests improving the test's readability by using the unorderedEquals matcher instead of sorting the list before asserting equality.

Comment thread packages/flutter_tools/test/general.shard/isolated/native_assets_test.dart Outdated
…king test

Address review comment by using unorderedEquals matcher instead of sorting list.
@bkonyi
bkonyi requested a review from dcharkes August 25, 2026 13:40
dcharkes
dcharkes previously approved these changes Aug 25, 2026
…king test

Extract installed file names safely across platforms using URI path segments.
dcharkes
dcharkes previously approved these changes Aug 26, 2026
…ng in native assets test

Split installed file paths on both forward and backward slashes to ensure
reliable basename extraction on Windows.
@bkonyi bkonyi added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 27, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Aug 27, 2026
Merged via the queue into master with commit 9b04ad5 Aug 27, 2026
28 checks passed
@auto-submit
auto-submit Bot deleted the investigation/issue-130811 branch August 27, 2026 17:46
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Aug 27, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Aug 28, 2026
Roll Flutter from 15d8908addf6 to e8dca90ec9e0 (58 revisions)

flutter/flutter@15d8908...e8dca90

2026-08-27 [email protected] Terminate existing process before launching with devicectl (flutter/flutter#191885)
2026-08-27 [email protected] Roll Fuchsia Linux SDK from qjOQi-zAgu_tADorh... to dDxH8G5cDBP602eyG... (flutter/flutter#191889)
2026-08-27 [email protected] [flutter_tools] Verify native assets tree-shaking during linking (flutter/flutter#191637)
2026-08-27 [email protected] Denylists b-series powervr from vulkan (flutter/flutter#191808)
2026-08-27 [email protected] Handle linear and radial gradients in UberSDF (flutter/flutter#190874)
2026-08-27 [email protected] Roll Packages from 740f093 to bd3cbc1 (7 revisions) (flutter/flutter#191886)
2026-08-27 [email protected] Disable more Windows tests that have been causing CI flakes (flutter/flutter#191822)
2026-08-27 [email protected] Roll Skia from d32721369bd8 to 82e972ea84b1 (2 revisions) (flutter/flutter#191880)
2026-08-27 [email protected] Roll Skia from 3640b8edd16c to d32721369bd8 (10 revisions) (flutter/flutter#191858)
2026-08-27 [email protected] Revert: [AGP 9] Update remaining tests to AGP 9 (flutter/flutter#191863)
2026-08-27 [email protected] Roll Fuchsia Test Scripts from 0iCv10IlKfiilEBOU... to 6SXRz6wsA2Zm_rAqP... (flutter/flutter#191852)
2026-08-27 [email protected] Roll pub packages (flutter/flutter#191851)
2026-08-27 [email protected] Refactor FormField build wrappers (flutter/flutter#185795)
2026-08-27 [email protected] Make ScrollPhysics reactive by introducing shouldUpdate (flutter/flutter#189664)
2026-08-27 [email protected] macOS: Fix crash on out-of-bounds text input ranges (flutter/flutter#191780)
2026-08-27 [email protected] Add HCPP feature flag, and turn it on by default in beta/master (flutter/flutter#190623)
2026-08-27 [email protected] [tool] Migrate CleanCommand to modular dependency injection (flutter/flutter#190742)
2026-08-26 [email protected] Update triage docs for ecosystem and codelab changes (flutter/flutter#191809)
2026-08-26 [email protected] [AGP 9] Update remaining tests to AGP 9 (flutter/flutter#191824)
2026-08-26 [email protected] [UIScene] Migrate dev/benchmarks/complex_layout to UIScene lifecycle (flutter/flutter#191619)
2026-08-26 [email protected] Add SliverAppBar showOnScreen semantics test coverage (flutter/flutter#190410)
2026-08-26 [email protected] Add prompt_suggestion icon to list of RTL mirroring icons. (flutter/flutter#191741)
2026-08-26 [email protected] Remove bringup for batch 3 (flutter/flutter#191750)
2026-08-26 [email protected] Roll Skia from b5465d7b0b77 to 3640b8edd16c (6 revisions) (flutter/flutter#191835)
2026-08-26 [email protected] Uiscene migrate custom channels views (flutter/flutter#191817)
2026-08-26 [email protected] Support --[no-]adb-log-filtering CLI option (flutter/flutter#187252)
2026-08-26 [email protected] Roll Dart SDK from cb8a4e1a0fbb to cb4c39d067f3 (2 revisions) (flutter/flutter#191825)
2026-08-26 [email protected] Fix `Navigator.pushNamed<T>()` type checking (flutter/flutter#188148)
2026-08-26 [email protected] Handle the case where a window doesn't have a title set (flutter/flutter#191767)
2026-08-26 [email protected] [Android] Remove old `InputType` constructor from embedding (flutter/flutter#191244)
2026-08-26 [email protected] Roll Skia from 244a6a0f8f92 to b5465d7b0b77 (19 revisions) (flutter/flutter#191810)
2026-08-26 [email protected] Tolerate floating-point rounding in paintImage centerSlice assertion (flutter/flutter#185789)
2026-08-26 [email protected] Fixes translated bounded blurs (flutter/flutter#191615)
2026-08-26 [email protected] Roll Fuchsia Linux SDK from MstTWE1RDOT-RnrtH... to qjOQi-zAgu_tADorh... (flutter/flutter#191769)
2026-08-26 [email protected] Lerp HSVColor and HSLColor hue along the shortest arc (flutter/flutter#191186)
2026-08-26 [email protected] Fix enum instances comparison to use `equality ==` since dart has the correct behavior now (flutter/flutter#191537)
2026-08-26 [email protected] Switches windows to opengles 3 (flutter/flutter#191516)
2026-08-26 [email protected] Roll Dart SDK from 7739e8602bc1 to cb8a4e1a0fbb (1 revision) (flutter/flutter#191784)
2026-08-26 [email protected] iOS,macOS: Check viewType before creating a platform view (flutter/flutter#191777)
2026-08-26 [email protected] Revert: [tool_tests] Remove bringup from Windows tool_tests_commands_2_2 (flutter/flutter#191793)
2026-08-26 [email protected] refactor(flutter_tools): clean up dead unreferenced declarations (flutter/flutter#191163)
2026-08-26 [email protected] Roll Fuchsia GN SDK from a87CbQSWEjkPUK1ZY... to ZsxUUK2SfA-TrNvb8... (flutter/flutter#191763)
2026-08-26 [email protected] [tool_tests] Remove bringup from Windows tool_tests_commands_2_2 (flutter/flutter#191732)
2026-08-25 [email protected] Remove legacy gen_defaults analyze checks (flutter/flutter#191629)
2026-08-25 [email protected] Refactors `try` to avoid `unawaited_return_in_try_block` case (flutter/flutter#191129)
2026-08-25 [email protected] Roll Dart SDK from 8996935d3d0a to 7739e8602bc1 (1 revision) (flutter/flutter#191754)
...
victorsanni pushed a commit to victorsanni/packages that referenced this pull request Sep 9, 2026
…r#12660)

Roll Flutter from 15d8908addf6 to e8dca90ec9e0 (58 revisions)

flutter/flutter@15d8908...e8dca90

2026-08-27 [email protected] Terminate existing process before launching with devicectl (flutter/flutter#191885)
2026-08-27 [email protected] Roll Fuchsia Linux SDK from qjOQi-zAgu_tADorh... to dDxH8G5cDBP602eyG... (flutter/flutter#191889)
2026-08-27 [email protected] [flutter_tools] Verify native assets tree-shaking during linking (flutter/flutter#191637)
2026-08-27 [email protected] Denylists b-series powervr from vulkan (flutter/flutter#191808)
2026-08-27 [email protected] Handle linear and radial gradients in UberSDF (flutter/flutter#190874)
2026-08-27 [email protected] Roll Packages from 740f093 to bd3cbc1 (7 revisions) (flutter/flutter#191886)
2026-08-27 [email protected] Disable more Windows tests that have been causing CI flakes (flutter/flutter#191822)
2026-08-27 [email protected] Roll Skia from d32721369bd8 to 82e972ea84b1 (2 revisions) (flutter/flutter#191880)
2026-08-27 [email protected] Roll Skia from 3640b8edd16c to d32721369bd8 (10 revisions) (flutter/flutter#191858)
2026-08-27 [email protected] Revert: [AGP 9] Update remaining tests to AGP 9 (flutter/flutter#191863)
2026-08-27 [email protected] Roll Fuchsia Test Scripts from 0iCv10IlKfiilEBOU... to 6SXRz6wsA2Zm_rAqP... (flutter/flutter#191852)
2026-08-27 [email protected] Roll pub packages (flutter/flutter#191851)
2026-08-27 [email protected] Refactor FormField build wrappers (flutter/flutter#185795)
2026-08-27 [email protected] Make ScrollPhysics reactive by introducing shouldUpdate (flutter/flutter#189664)
2026-08-27 [email protected] macOS: Fix crash on out-of-bounds text input ranges (flutter/flutter#191780)
2026-08-27 [email protected] Add HCPP feature flag, and turn it on by default in beta/master (flutter/flutter#190623)
2026-08-27 [email protected] [tool] Migrate CleanCommand to modular dependency injection (flutter/flutter#190742)
2026-08-26 [email protected] Update triage docs for ecosystem and codelab changes (flutter/flutter#191809)
2026-08-26 [email protected] [AGP 9] Update remaining tests to AGP 9 (flutter/flutter#191824)
2026-08-26 [email protected] [UIScene] Migrate dev/benchmarks/complex_layout to UIScene lifecycle (flutter/flutter#191619)
2026-08-26 [email protected] Add SliverAppBar showOnScreen semantics test coverage (flutter/flutter#190410)
2026-08-26 [email protected] Add prompt_suggestion icon to list of RTL mirroring icons. (flutter/flutter#191741)
2026-08-26 [email protected] Remove bringup for batch 3 (flutter/flutter#191750)
2026-08-26 [email protected] Roll Skia from b5465d7b0b77 to 3640b8edd16c (6 revisions) (flutter/flutter#191835)
2026-08-26 [email protected] Uiscene migrate custom channels views (flutter/flutter#191817)
2026-08-26 [email protected] Support --[no-]adb-log-filtering CLI option (flutter/flutter#187252)
2026-08-26 [email protected] Roll Dart SDK from cb8a4e1a0fbb to cb4c39d067f3 (2 revisions) (flutter/flutter#191825)
2026-08-26 [email protected] Fix `Navigator.pushNamed<T>()` type checking (flutter/flutter#188148)
2026-08-26 [email protected] Handle the case where a window doesn't have a title set (flutter/flutter#191767)
2026-08-26 [email protected] [Android] Remove old `InputType` constructor from embedding (flutter/flutter#191244)
2026-08-26 [email protected] Roll Skia from 244a6a0f8f92 to b5465d7b0b77 (19 revisions) (flutter/flutter#191810)
2026-08-26 [email protected] Tolerate floating-point rounding in paintImage centerSlice assertion (flutter/flutter#185789)
2026-08-26 [email protected] Fixes translated bounded blurs (flutter/flutter#191615)
2026-08-26 [email protected] Roll Fuchsia Linux SDK from MstTWE1RDOT-RnrtH... to qjOQi-zAgu_tADorh... (flutter/flutter#191769)
2026-08-26 [email protected] Lerp HSVColor and HSLColor hue along the shortest arc (flutter/flutter#191186)
2026-08-26 [email protected] Fix enum instances comparison to use `equality ==` since dart has the correct behavior now (flutter/flutter#191537)
2026-08-26 [email protected] Switches windows to opengles 3 (flutter/flutter#191516)
2026-08-26 [email protected] Roll Dart SDK from 7739e8602bc1 to cb8a4e1a0fbb (1 revision) (flutter/flutter#191784)
2026-08-26 [email protected] iOS,macOS: Check viewType before creating a platform view (flutter/flutter#191777)
2026-08-26 [email protected] Revert: [tool_tests] Remove bringup from Windows tool_tests_commands_2_2 (flutter/flutter#191793)
2026-08-26 [email protected] refactor(flutter_tools): clean up dead unreferenced declarations (flutter/flutter#191163)
2026-08-26 [email protected] Roll Fuchsia GN SDK from a87CbQSWEjkPUK1ZY... to ZsxUUK2SfA-TrNvb8... (flutter/flutter#191763)
2026-08-26 [email protected] [tool_tests] Remove bringup from Windows tool_tests_commands_2_2 (flutter/flutter#191732)
2026-08-25 [email protected] Remove legacy gen_defaults analyze checks (flutter/flutter#191629)
2026-08-25 [email protected] Refactors `try` to avoid `unawaited_return_in_try_block` case (flutter/flutter#191129)
2026-08-25 [email protected] Roll Dart SDK from 8996935d3d0a to 7739e8602bc1 (1 revision) (flutter/flutter#191754)
...
victorsanni pushed a commit to victorsanni/packages that referenced this pull request Sep 9, 2026
…r#12660)

Roll Flutter from 15d8908addf6 to e8dca90ec9e0 (58 revisions)

flutter/flutter@15d8908...e8dca90

2026-08-27 [email protected] Terminate existing process before launching with devicectl (flutter/flutter#191885)
2026-08-27 [email protected] Roll Fuchsia Linux SDK from qjOQi-zAgu_tADorh... to dDxH8G5cDBP602eyG... (flutter/flutter#191889)
2026-08-27 [email protected] [flutter_tools] Verify native assets tree-shaking during linking (flutter/flutter#191637)
2026-08-27 [email protected] Denylists b-series powervr from vulkan (flutter/flutter#191808)
2026-08-27 [email protected] Handle linear and radial gradients in UberSDF (flutter/flutter#190874)
2026-08-27 [email protected] Roll Packages from 740f093 to bd3cbc1 (7 revisions) (flutter/flutter#191886)
2026-08-27 [email protected] Disable more Windows tests that have been causing CI flakes (flutter/flutter#191822)
2026-08-27 [email protected] Roll Skia from d32721369bd8 to 82e972ea84b1 (2 revisions) (flutter/flutter#191880)
2026-08-27 [email protected] Roll Skia from 3640b8edd16c to d32721369bd8 (10 revisions) (flutter/flutter#191858)
2026-08-27 [email protected] Revert: [AGP 9] Update remaining tests to AGP 9 (flutter/flutter#191863)
2026-08-27 [email protected] Roll Fuchsia Test Scripts from 0iCv10IlKfiilEBOU... to 6SXRz6wsA2Zm_rAqP... (flutter/flutter#191852)
2026-08-27 [email protected] Roll pub packages (flutter/flutter#191851)
2026-08-27 [email protected] Refactor FormField build wrappers (flutter/flutter#185795)
2026-08-27 [email protected] Make ScrollPhysics reactive by introducing shouldUpdate (flutter/flutter#189664)
2026-08-27 [email protected] macOS: Fix crash on out-of-bounds text input ranges (flutter/flutter#191780)
2026-08-27 [email protected] Add HCPP feature flag, and turn it on by default in beta/master (flutter/flutter#190623)
2026-08-27 [email protected] [tool] Migrate CleanCommand to modular dependency injection (flutter/flutter#190742)
2026-08-26 [email protected] Update triage docs for ecosystem and codelab changes (flutter/flutter#191809)
2026-08-26 [email protected] [AGP 9] Update remaining tests to AGP 9 (flutter/flutter#191824)
2026-08-26 [email protected] [UIScene] Migrate dev/benchmarks/complex_layout to UIScene lifecycle (flutter/flutter#191619)
2026-08-26 [email protected] Add SliverAppBar showOnScreen semantics test coverage (flutter/flutter#190410)
2026-08-26 [email protected] Add prompt_suggestion icon to list of RTL mirroring icons. (flutter/flutter#191741)
2026-08-26 [email protected] Remove bringup for batch 3 (flutter/flutter#191750)
2026-08-26 [email protected] Roll Skia from b5465d7b0b77 to 3640b8edd16c (6 revisions) (flutter/flutter#191835)
2026-08-26 [email protected] Uiscene migrate custom channels views (flutter/flutter#191817)
2026-08-26 [email protected] Support --[no-]adb-log-filtering CLI option (flutter/flutter#187252)
2026-08-26 [email protected] Roll Dart SDK from cb8a4e1a0fbb to cb4c39d067f3 (2 revisions) (flutter/flutter#191825)
2026-08-26 [email protected] Fix `Navigator.pushNamed<T>()` type checking (flutter/flutter#188148)
2026-08-26 [email protected] Handle the case where a window doesn't have a title set (flutter/flutter#191767)
2026-08-26 [email protected] [Android] Remove old `InputType` constructor from embedding (flutter/flutter#191244)
2026-08-26 [email protected] Roll Skia from 244a6a0f8f92 to b5465d7b0b77 (19 revisions) (flutter/flutter#191810)
2026-08-26 [email protected] Tolerate floating-point rounding in paintImage centerSlice assertion (flutter/flutter#185789)
2026-08-26 [email protected] Fixes translated bounded blurs (flutter/flutter#191615)
2026-08-26 [email protected] Roll Fuchsia Linux SDK from MstTWE1RDOT-RnrtH... to qjOQi-zAgu_tADorh... (flutter/flutter#191769)
2026-08-26 [email protected] Lerp HSVColor and HSLColor hue along the shortest arc (flutter/flutter#191186)
2026-08-26 [email protected] Fix enum instances comparison to use `equality ==` since dart has the correct behavior now (flutter/flutter#191537)
2026-08-26 [email protected] Switches windows to opengles 3 (flutter/flutter#191516)
2026-08-26 [email protected] Roll Dart SDK from 7739e8602bc1 to cb8a4e1a0fbb (1 revision) (flutter/flutter#191784)
2026-08-26 [email protected] iOS,macOS: Check viewType before creating a platform view (flutter/flutter#191777)
2026-08-26 [email protected] Revert: [tool_tests] Remove bringup from Windows tool_tests_commands_2_2 (flutter/flutter#191793)
2026-08-26 [email protected] refactor(flutter_tools): clean up dead unreferenced declarations (flutter/flutter#191163)
2026-08-26 [email protected] Roll Fuchsia GN SDK from a87CbQSWEjkPUK1ZY... to ZsxUUK2SfA-TrNvb8... (flutter/flutter#191763)
2026-08-26 [email protected] [tool_tests] Remove bringup from Windows tool_tests_commands_2_2 (flutter/flutter#191732)
2026-08-25 [email protected] Remove legacy gen_defaults analyze checks (flutter/flutter#191629)
2026-08-25 [email protected] Refactors `try` to avoid `unawaited_return_in_try_block` case (flutter/flutter#191129)
2026-08-25 [email protected] Roll Dart SDK from 8996935d3d0a to 7739e8602bc1 (1 revision) (flutter/flutter#191754)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

support tree-shaking native assets when no used dart code references it

2 participants