Skip to content

Use relative path for reloadedSourcesUri and reloaded modules#184598

Merged
srujzs merged 21 commits into
flutter:masterfrom
srujzs:relativepaths
Apr 24, 2026
Merged

Use relative path for reloadedSourcesUri and reloaded modules#184598
srujzs merged 21 commits into
flutter:masterfrom
srujzs:relativepaths

Conversation

@srujzs

@srujzs srujzs commented Apr 3, 2026

Copy link
Copy Markdown
Contributor

Fixes #184060

The app may be opened in a separate domain than the server. Therefore, we need to provide relative paths/URIs to the root instead of including the server URI.

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is [test-exempt].
  • I followed the [breaking change policy] and added [Data Driven Fixes] where supported.
  • All existing and new tests are passing.

Fixes flutter#184060

The app may be opened in a separate domain than the server. Therefore,
we need to provide relative paths/URIs to the root instead of including
the server URI.
@flutter-dashboard

Copy link
Copy Markdown

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@github-actions github-actions Bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Apr 3, 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 updates the WebAssetServer to use relative paths for DDC library bundles and reloaded sources, allowing the application to work across different domains. The changes involve removing baseUri from the src field in the metadata and the reloadedSourcesUri. A review comment suggests correcting a code comment that mistakenly refers to the reloaded sources manifest as a module to improve clarity.

Comment thread packages/flutter_tools/lib/src/isolated/web_asset_server.dart Outdated
@srujzs

srujzs commented Apr 3, 2026

Copy link
Copy Markdown
Contributor Author

I'm not sure we can create an automated test for this as it requires the app to be opened in a separate domain than the server.

I manually tested this by:

  • flutter run -d web-server --web-hostname=0.0.0.0 --web-port=8080 on one device.
  • On a separate device on the same network, connect to <network IP>:8080.
  • Make a change and then hot reload and see the effect on the separate device.

@nshahan nshahan 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.

Do you think it would be beneficial to have a regression test that makes expectations of the 'src' values that appear in the reloaded_sources.json?

Comment thread packages/flutter_tools/lib/src/isolated/web_asset_server.dart Outdated
Comment thread packages/flutter_tools/lib/src/isolated/web_asset_server.dart Outdated
@srujzs

srujzs commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Do you think it would be beneficial to have a regression test that makes expectations of the 'src' values that appear in the reloaded_sources.json?

I'm trying out a test that dynamically finds the IP and using that for the hostname and seeing if the bots like it.

@srujzs srujzs added the CICD Run CI/CD label Apr 13, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 14, 2026
@srujzs srujzs added the CICD Run CI/CD label Apr 14, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 14, 2026
@srujzs srujzs added the CICD Run CI/CD label Apr 14, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 16, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 17, 2026
@srujzs

srujzs commented Apr 22, 2026

Copy link
Copy Markdown
Contributor Author

Okay, it looks like the bots are happy now (or they were in my last upload). Maybe they were timing out because of the additional hot reload integration test, but it doesn't explain why unrelated bots were timing out.

I tried to test this by dynamically fetching the current IP and forcing that as the hostname, but the test passes even without the changes, so I ended up going with a unit test that checks that the paths are as expected. Most of the test is just code from other tests to set up the WebDevFS, but additional code is added to use DDC library bundle assets and emit a valid module metadata.

I also changed the reloaded_sources.json src field to add back a / at the beginning because the parsed scripts controller in DWDS compares the reloaded sources with the normalized parsed paths, and so it needs that /.

This should be ready to review.

nshahan
nshahan previously approved these changes Apr 22, 2026

@nshahan nshahan 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.

Thanks again for working on this. LGTM with one question about the test.

Comment thread packages/flutter_tools/test/general.shard/web/devfs_web_test.dart
@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 23, 2026
@srujzs srujzs added the CICD Run CI/CD label Apr 23, 2026
@flutter-dashboard flutter-dashboard Bot removed the CICD Run CI/CD label Apr 23, 2026
@srujzs srujzs added the CICD Run CI/CD label Apr 23, 2026
@flutter-dashboard flutter-dashboard Bot removed the CICD Run CI/CD label Apr 23, 2026
@srujzs srujzs added the CICD Run CI/CD label Apr 23, 2026
@github-actions github-actions Bot removed the CICD Run CI/CD label Apr 23, 2026
@srujzs srujzs added the CICD Run CI/CD label Apr 23, 2026

@nshahan nshahan 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.

Yeah, I like this version of the test more. Thanks!

@srujzs srujzs added autosubmit Merge PR when tree becomes green via auto submit App and removed autosubmit Merge PR when tree becomes green via auto submit App labels Apr 24, 2026
@srujzs
srujzs added this pull request to the merge queue Apr 24, 2026
Merged via the queue into flutter:master with commit 3a983a2 Apr 24, 2026
165 of 166 checks passed
@srujzs
srujzs deleted the relativepaths branch April 24, 2026 04:18
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Apr 24, 2026
@srujzs srujzs added the cp: beta cherry pick this pull request to beta release candidate branch label Apr 24, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Apr 24, 2026
Roll Flutter from 5e4f16931847 to aeb96234de86 (42 revisions)

flutter/flutter@5e4f169...aeb9623

2026-04-24 [email protected] Fix leak on error case (flutter/flutter#185516)
2026-04-24 [email protected] Roll Skia from 04c6c369cfd0 to 1c9b0b9141e9 (2 revisions) (flutter/flutter#185529)
2026-04-24 [email protected] Roll Dart SDK from f386b11262f6 to c26627715892 (1 revision) (flutter/flutter#185526)
2026-04-24 [email protected] Roll Skia from 290a056fcd0e to 04c6c369cfd0 (2 revisions) (flutter/flutter#185525)
2026-04-24 [email protected] [ios] Extract SplashScreenManager from FlutterViewController (flutter/flutter#185405)
2026-04-24 [email protected] Roll Fuchsia Linux SDK from j3UCWZhWx7zSl9Asy... to 9fPnyEo9PaNdXtasl... (flutter/flutter#185523)
2026-04-24 [email protected] Roll Skia from 4c8bedd3c932 to 290a056fcd0e (1 revision) (flutter/flutter#185518)
2026-04-24 [email protected] Roll Dart SDK from 70665fc3fd2e to f386b11262f6 (2 revisions) (flutter/flutter#185512)
2026-04-24 [email protected] Handle hairline strokes in UberSDF (flutter/flutter#184895)
2026-04-24 [email protected] Roll Skia from ea20c73ac72c to 4c8bedd3c932 (3 revisions) (flutter/flutter#185509)
2026-04-24 [email protected] Use relative path for reloadedSourcesUri and reloaded modules (flutter/flutter#184598)
2026-04-24 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185431)" (flutter/flutter#185513)
2026-04-24 [email protected] Roll Skia from e8d00d634c22 to ea20c73ac72c (8 revisions) (flutter/flutter#185500)
2026-04-23 [email protected] Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#185431)
2026-04-23 [email protected] update team-text-input pr triage link to filter out "waiting for response" label (flutter/flutter#185499)
2026-04-23 [email protected] Check for overflow when computing the pixel buffer size for an animated PNG frame (flutter/flutter#185442)
2026-04-23 [email protected] Impeller: Recreate Vulkan transients on surface size change (flutter/flutter#185122)
2026-04-23 [email protected] Updating the windowing API for sized to content regular and dialog windows + removing the decorated flag (flutter/flutter#184977)
2026-04-23 [email protected] Roll Dart SDK from 634991935e9a to 70665fc3fd2e (2 revisions) (flutter/flutter#185488)
2026-04-23 [email protected] Updating ios triage link (flutter/flutter#185437)
2026-04-23 [email protected] Revert "Preprovision Android NDK for flavored builds and reuse matchi… (flutter/flutter#185439)
2026-04-23 [email protected] fix(web): Fix LateInitializationError in CkSurface and SkwasmSurface (flutter/flutter#185116)
2026-04-23 [email protected] [web] Implement stepped image downscaling for CanvasKit and Skwasm (flutter/flutter#184741)
2026-04-23 [email protected] Made wide_gamut_macos only run on arm64 machines (flutter/flutter#185486)
2026-04-23 [email protected] [ios] Update documentation for FlutterAppDelegate.pluginRegistrant (flutter/flutter#185201)
2026-04-23 [email protected] Roll Dart SDK from bdf48933f3cf to 634991935e9a (1 revision) (flutter/flutter#185462)
2026-04-23 [email protected] Roll Skia from 5fe6162546b1 to e8d00d634c22 (3 revisions) (flutter/flutter#185459)
2026-04-23 [email protected] Roll Skia from 0049c5d91b08 to 5fe6162546b1 (1 revision) (flutter/flutter#185455)
2026-04-23 [email protected] Roll Dart SDK from 9648f446f131 to bdf48933f3cf (19 revisions) (flutter/flutter#185451)
2026-04-23 [email protected] Roll Skia from 11640d1cbc5c to 0049c5d91b08 (11 revisions) (flutter/flutter#185453)
2026-04-23 [email protected] Add disposal guidance to CurvedAnimation and CurveTween docs (flutter/flutter#184569)
2026-04-23 [email protected] Add `clipBehavior` parameter to `AnimatedCrossFade` (flutter/flutter#184545)
2026-04-23 [email protected] [fuchsia] Ask for only VMEX, not ambient-replace-as-executable. (flutter/flutter#185099)
2026-04-23 [email protected] Unify SemanticUpdateBuilder API for web and non-web (flutter/flutter#185433)
2026-04-22 [email protected] Fix ImageInfo.isCloneOf tests by moving async work to setUp (flutter/flutter#185254)
2026-04-22 [email protected] Roll Fuchsia Linux SDK from UdpQnaP5eSaDZd3-i... to j3UCWZhWx7zSl9Asy... (flutter/flutter#185438)
2026-04-22 [email protected] Adds script to run malioc locally (flutter/flutter#185371)
2026-04-22 [email protected] Add await mechanism to setClipboard in android_semantics_integration test (flutter/flutter#185428)
2026-04-22 [email protected] Add ability to pass flags to `et run` (flutter/flutter#185109)
2026-04-22 [email protected] Add more guidelines for code review bot (flutter/flutter#185367)
2026-04-22 [email protected] Roll pub packages (flutter/flutter#185274)
2026-04-22 [email protected] Fix incorrect scale parameter reference in Image constructor docs (flutter/flutter#185403)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
...
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
…r#11576)

Roll Flutter from 5e4f16931847 to aeb96234de86 (42 revisions)

flutter/flutter@5e4f169...aeb9623

2026-04-24 [email protected] Fix leak on error case (flutter/flutter#185516)
2026-04-24 [email protected] Roll Skia from 04c6c369cfd0 to 1c9b0b9141e9 (2 revisions) (flutter/flutter#185529)
2026-04-24 [email protected] Roll Dart SDK from f386b11262f6 to c26627715892 (1 revision) (flutter/flutter#185526)
2026-04-24 [email protected] Roll Skia from 290a056fcd0e to 04c6c369cfd0 (2 revisions) (flutter/flutter#185525)
2026-04-24 [email protected] [ios] Extract SplashScreenManager from FlutterViewController (flutter/flutter#185405)
2026-04-24 [email protected] Roll Fuchsia Linux SDK from j3UCWZhWx7zSl9Asy... to 9fPnyEo9PaNdXtasl... (flutter/flutter#185523)
2026-04-24 [email protected] Roll Skia from 4c8bedd3c932 to 290a056fcd0e (1 revision) (flutter/flutter#185518)
2026-04-24 [email protected] Roll Dart SDK from 70665fc3fd2e to f386b11262f6 (2 revisions) (flutter/flutter#185512)
2026-04-24 [email protected] Handle hairline strokes in UberSDF (flutter/flutter#184895)
2026-04-24 [email protected] Roll Skia from ea20c73ac72c to 4c8bedd3c932 (3 revisions) (flutter/flutter#185509)
2026-04-24 [email protected] Use relative path for reloadedSourcesUri and reloaded modules (flutter/flutter#184598)
2026-04-24 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185431)" (flutter/flutter#185513)
2026-04-24 [email protected] Roll Skia from e8d00d634c22 to ea20c73ac72c (8 revisions) (flutter/flutter#185500)
2026-04-23 [email protected] Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#185431)
2026-04-23 [email protected] update team-text-input pr triage link to filter out "waiting for response" label (flutter/flutter#185499)
2026-04-23 [email protected] Check for overflow when computing the pixel buffer size for an animated PNG frame (flutter/flutter#185442)
2026-04-23 [email protected] Impeller: Recreate Vulkan transients on surface size change (flutter/flutter#185122)
2026-04-23 [email protected] Updating the windowing API for sized to content regular and dialog windows + removing the decorated flag (flutter/flutter#184977)
2026-04-23 [email protected] Roll Dart SDK from 634991935e9a to 70665fc3fd2e (2 revisions) (flutter/flutter#185488)
2026-04-23 [email protected] Updating ios triage link (flutter/flutter#185437)
2026-04-23 [email protected] Revert "Preprovision Android NDK for flavored builds and reuse matchi… (flutter/flutter#185439)
2026-04-23 [email protected] fix(web): Fix LateInitializationError in CkSurface and SkwasmSurface (flutter/flutter#185116)
2026-04-23 [email protected] [web] Implement stepped image downscaling for CanvasKit and Skwasm (flutter/flutter#184741)
2026-04-23 [email protected] Made wide_gamut_macos only run on arm64 machines (flutter/flutter#185486)
2026-04-23 [email protected] [ios] Update documentation for FlutterAppDelegate.pluginRegistrant (flutter/flutter#185201)
2026-04-23 [email protected] Roll Dart SDK from bdf48933f3cf to 634991935e9a (1 revision) (flutter/flutter#185462)
2026-04-23 [email protected] Roll Skia from 5fe6162546b1 to e8d00d634c22 (3 revisions) (flutter/flutter#185459)
2026-04-23 [email protected] Roll Skia from 0049c5d91b08 to 5fe6162546b1 (1 revision) (flutter/flutter#185455)
2026-04-23 [email protected] Roll Dart SDK from 9648f446f131 to bdf48933f3cf (19 revisions) (flutter/flutter#185451)
2026-04-23 [email protected] Roll Skia from 11640d1cbc5c to 0049c5d91b08 (11 revisions) (flutter/flutter#185453)
2026-04-23 [email protected] Add disposal guidance to CurvedAnimation and CurveTween docs (flutter/flutter#184569)
2026-04-23 [email protected] Add `clipBehavior` parameter to `AnimatedCrossFade` (flutter/flutter#184545)
2026-04-23 [email protected] [fuchsia] Ask for only VMEX, not ambient-replace-as-executable. (flutter/flutter#185099)
2026-04-23 [email protected] Unify SemanticUpdateBuilder API for web and non-web (flutter/flutter#185433)
2026-04-22 [email protected] Fix ImageInfo.isCloneOf tests by moving async work to setUp (flutter/flutter#185254)
2026-04-22 [email protected] Roll Fuchsia Linux SDK from UdpQnaP5eSaDZd3-i... to j3UCWZhWx7zSl9Asy... (flutter/flutter#185438)
2026-04-22 [email protected] Adds script to run malioc locally (flutter/flutter#185371)
2026-04-22 [email protected] Add await mechanism to setClipboard in android_semantics_integration test (flutter/flutter#185428)
2026-04-22 [email protected] Add ability to pass flags to `et run` (flutter/flutter#185109)
2026-04-22 [email protected] Add more guidelines for code review bot (flutter/flutter#185367)
2026-04-22 [email protected] Roll pub packages (flutter/flutter#185274)
2026-04-22 [email protected] Fix incorrect scale parameter reference in Image constructor docs (flutter/flutter#185403)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD cp: beta cherry pick this pull request to beta release candidate branch tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

reloaded_sources.json is returning incorrect src url in response

2 participants