Sitelet https://github.com/flutter/flutter/pull/191501
Skip to content

[flutter_tools] Restrict WebAssetServer source resolution to source map extensions - #191501

Merged
auto-submit[bot] merged 6 commits into
flutter:masterfrom
bkonyi:investigation/issue-84346
Aug 21, 2026
Merged

auto-submit[bot] merged 6 commits into
flutter:masterfrom
bkonyi:investigation/issue-84346

Conversation

@bkonyi

@bkonyi bkonyi commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Description

Restricts _resolveDartFile in WebAssetServer to only resolve files with source map extensions (.dart, .map) from the project root, package, and SDK paths, aligning behavior with ReleaseAssetServer.

Previously, WebAssetServer._resolveDartFile attempted to resolve any relative path directly against fileSystem.currentDirectory, which caused raw project files (such as <root>/assets/...) to be served directly with HTTP 200 when requested by debug web runtime asset loaders, masking invalid asset key references that failed on release web and native platforms.

Issues Fixed

Fixes #84346

Pre-launch Checklist

bkonyi added 3 commits August 20, 2026 22:12
…ap extensions

Restricts _resolveDartFile in WebAssetServer to only resolve .dart and .map files from the project root and package directories for source map resolution, matching ReleaseAssetServer. Prevents arbitrary non-source project files from being served directly as source files instead of going through asset bundle resolution.

Fixes flutter#84346
…olution

- Remove unnecessary LHS type on _sourceMapExtensions.
- Hoist _sourceMapExtensions.contains(extension) check to surround package and SDK lookups.
…gression tests

- Consolidate entrypoint resolution into switch statement.
- Update doc comment and remove redundant File wrapper on childFile.
- Add test assertion verifying source files in lib/ remain accessible for debugging.
@github-actions github-actions Bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Aug 21, 2026
@bkonyi bkonyi added the CICD Run CI/CD label Aug 21, 2026
…indows

Passes fileSystem explicitly to getAssetBuildDirectory in WebAssetServer and provides FileSystem override in web_asset_server_test.
@bkonyi
bkonyi marked this pull request as ready for review August 21, 2026 20:09

@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 restricts the _resolveDartFile method in WebAssetServer to only resolve files with .dart or .map extensions, returning a non-existent file placeholder otherwise, and adds corresponding unit tests including a Windows-specific test. Feedback suggests consistently using /// for documentation comments on private members and adding FileSystem and Platform to the overrides map in the Windows-specific test to ensure test hermeticity.

Comment thread packages/flutter_tools/lib/src/isolated/web_asset_server.dart Outdated
Comment thread packages/flutter_tools/test/general.shard/web/web_asset_server_test.dart Outdated
bkonyi added 2 commits August 21, 2026 20:12
…ebAssetServer test

Ensures hermeticity for the Windows WebAssetServer test group by injecting windowsFileSystem and windowsPlatform into test context overrides.
Consistently use /// for doc comments on _sourceMapExtensions and _resolveDartFile in WebAssetServer.
@bkonyi
bkonyi requested a review from mdebbar August 21, 2026 20:19
@bkonyi bkonyi added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 21, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Aug 21, 2026
Merged via the queue into flutter:master with commit 7c0ccea Aug 21, 2026
22 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Aug 21, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Aug 22, 2026
Roll Flutter from c2437523d308 to 65c9a8dc60bc (195 revisions)

flutter/flutter@c243752...65c9a8d

2026-08-22 engine-flutter-autoroll@skia.org Roll ICU from d578f2e8b7bd to 8cc91d9b6ab9 (1 revision) (flutter/flutter#191542)
2026-08-22 engine-flutter-autoroll@skia.org Roll Skia from 666a9b3d5cf0 to ad2106c0bb64 (3 revisions) (flutter/flutter#191527)
2026-08-22 engine-flutter-autoroll@skia.org Roll Fuchsia Test Scripts from KaOq3EE4qJ9fnaaaK... to 0iCv10IlKfiilEBOU... (flutter/flutter#191524)
2026-08-22 bkonyi@google.com [flutter_tools] Add tests for negative lookahead regex in test runner and batch entrypoints (flutter/flutter#191438)
2026-08-22 engine-flutter-autoroll@skia.org Roll Skia from 0c37868737fa to 666a9b3d5cf0 (2 revisions) (flutter/flutter#191518)
2026-08-21 10456171+caroqliu@users.noreply.github.com Revert "[input] Migrate fuchsia.ui.pointerinjector to TouchSource (#190855) (flutter/flutter#191509)
2026-08-21 30870216+gaaclarke@users.noreply.github.com Fixes windows gallery benchmarks by forcing mobile layout (flutter/flutter#191507)
2026-08-21 bkonyi@google.com [flutter_tools] Restrict WebAssetServer source resolution to source map extensions (flutter/flutter#191501)
2026-08-21 engine-flutter-autoroll@skia.org Roll Skia from f6900c5b8439 to 0c37868737fa (2 revisions) (flutter/flutter#191504)
2026-08-21 bkonyi@google.com Refactor `FlutterDevice.connect` and VM service discovery (flutter/flutter#191221)
2026-08-21 bkonyi@google.com [flutter_tools] Fix crash when migrating flow-style exclude lists in analysis_options.yaml (flutter/flutter#191269)
2026-08-21 269567208+reidbaker-agent@users.noreply.github.com [rules] Add packages/flutter_tools/gradle/AGENTS.md rules (flutter/flutter#191486)
2026-08-21 kevmoo@users.noreply.github.com [flutter_tools] refactor CLI argument architecture with typed option descriptors and bundles (PoC) (flutter/flutter#191018)
2026-08-21 bkonyi@google.com tools: Extract Dart SDK to temp directory before moving to final location (flutter/flutter#191263)
2026-08-21 1961493+harryterkelsen@users.noreply.github.com [web] Move CanvasKit fragment shader classes to canvaskit/fragment_shader.dart (flutter/flutter#191451)
2026-08-21 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from GCQlmt6h-esJsNubS... to ic6GjOSn-KN508XyK... (flutter/flutter#191485)
2026-08-21 bkonyi@google.com [Widget Preview] Isolate PageStorage scope in widget preview group expansion tile (flutter/flutter#191378)
2026-08-21 bkonyi@google.com [flutter_tools] Deprecate --build and --no-build flags on flutter run (flutter/flutter#191358)
2026-08-21 engine-flutter-autoroll@skia.org Roll Skia from 70988bed1b3b to f6900c5b8439 (2 revisions) (flutter/flutter#191481)
2026-08-21 engine-flutter-autoroll@skia.org Roll Packages from 1785501 to 252bb33 (6 revisions) (flutter/flutter#191480)
2026-08-21 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 20IJas24bZiNmCZTK... to GCQlmt6h-esJsNubS... (flutter/flutter#191415)
2026-08-21 engine-flutter-autoroll@skia.org Roll Skia from 2ba6971bd0d1 to 70988bed1b3b (2 revisions) (flutter/flutter#191476)
2026-08-21 engine-flutter-autoroll@skia.org Roll Skia from 1d5f72537ba6 to 2ba6971bd0d1 (2 revisions) (flutter/flutter#191473)
2026-08-21 engine-flutter-autoroll@skia.org Roll Skia from 2c25efd2e369 to 1d5f72537ba6 (1 revision) (flutter/flutter#191472)
2026-08-21 engine-flutter-autoroll@skia.org Roll Skia from 09b1b810850a to 2c25efd2e369 (9 revisions) (flutter/flutter#191470)
2026-08-21 flar@google.com [Impeller] fix position of cached single glyph text shadows (flutter/flutter#191325)
2026-08-21 engine-flutter-autoroll@skia.org Roll Skia from abdf8821f313 to 09b1b810850a (15 revisions) (flutter/flutter#191458)
2026-08-21 me@bnsaed.com Document that programmatic TextEditingController changes do not run input formatters (flutter/flutter#190166)
2026-08-21 30870216+gaaclarke@users.noreply.github.com Adds new gallery benchmarks to windows (skia and impeller) (flutter/flutter#191454)
2026-08-21 chris@bracken.jp iOS: Deprecate FlutterEngine.isGpuDisabled (flutter/flutter#191393)
2026-08-21 154381524+flutteractionsbot@users.noreply.github.com Revert: [web] Unskip decoration image lerp tests (flutter/flutter#191462)
2026-08-20 awolff@google.com android_hardware_smoke_test: Improve reliability (flutter/flutter#191374)
2026-08-20 77467499+wilyan09007@users.noreply.github.com Don't size or offset the Android platform view before it is laid out (flutter/flutter#190895)
2026-08-20 15619084+vashworth@users.noreply.github.com [iOS][add2app] Skip building SwiftPM plugins when generating CocoaPods artifacts (flutter/flutter#190736)
2026-08-20 33794642+FelixMittermeier@users.noreply.github.com Optimize JSONMessageCodec UTF-8 conversion (flutter/flutter#190529)
2026-08-20 bkonyi@google.com [FML] Replace deprecated wstring_convert with Win32 APIs (flutter/flutter#191394)
2026-08-20 victorsanniay@gmail.com SliverFillRemaining extends beyond viewport size when fillOverscroll is true (flutter/flutter#191236)
2026-08-20 bkonyi@google.com [flutter_tools] Update argParser usageLineLength when --wrap-column is passed (flutter/flutter#191264)
2026-08-20 bkonyi@google.com [flutter_tools] Fix UNC path resolution in depfile parsing on Windows (flutter/flutter#191265)
2026-08-20 1961493+harryterkelsen@users.noreply.github.com [web] Unskip decoration image lerp tests (flutter/flutter#191426)
2026-08-20 bkonyi@google.com Do not inject 'type' and 'method' into service extension responses (flutter/flutter#190946)
2026-08-20 bkonyi@google.com [flutter_tools] Fix crash in symbolize command on stream error (flutter/flutter#191273)
2026-08-20 bkonyi@google.com [flutter_tools] Prevent deletion of shared native asset hooks outputs as stale (flutter/flutter#191272)
2026-08-20 bkonyi@google.com [flutter_tools] Support package wildcard assets in app pubspec (flutter/flutter#191266)
2026-08-20 108678139+manu-sncf@users.noreply.github.com Add SliverClipRect and SliverClipRRect (flutter/flutter#179003)
2026-08-20 bkonyi@google.com [flutter_tools] Implement Diagnostics extension slice and doctor integration (flutter/flutter#191162)
...
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.

Asset paths are inconsistent

2 participants