Skip to content

Conversation

@srujzs
Copy link
Contributor

@srujzs srujzs commented Jan 23, 2025

dart-lang/webdev#2516
dart-lang/webdev#2561

  • Adds logic to emit newly compiled sources to a file that can be read by the bootstrapper.
  • Adds bootstrapping logic to reload scripts as needed. This involves implementing the necessary hot restart callback, fetching and processing the emitted file of newly compiled sources, cache busting, and loading the scripts onto the page. A lot of this logic is similar or identical to what we have for internal hot restart support.
  • Runs existing hot restart tests with the new bundle format.
  • Adds meta tag to run with utf-8 like in Set meta tag in default index #161493.
  • Uses DWDS 24.3.3.

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • 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.

- Adds logic to emit newly compiled sources to a file that can
be read by the bootstrapper.
- Adds bootstrapping logic to reload scripts as needed. This
involves implementing the necessary hot restart callback, fetching
and processing the emitted file of newly compiled sources, cache
busting, and loading the scripts onto the page. A lot of this
logic is similar or identical to what we have for internal hot
restart support.
- Runs existing hot restart tests with the new bundle format.
- Adds meta tag to run with utf-8 like in
flutter#161493.
- Uses DWDS 24.3.3.
@srujzs srujzs requested review from bkonyi and nshahan January 23, 2025 23:46
@github-actions github-actions bot added the tool Affects the "flutter" command-line tool. See also t: labels. label Jan 23, 2025
];
let loadConfig = new window.\$dartLoader.LoadConfiguration();
// TODO(srujzs): Verify this is sufficient for Windows.
Copy link
Contributor

Choose a reason for hiding this comment

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

Question for @bkonyi (maybe?): Do the tests here run on various platforms in the Flutter CI? Windows?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Well, it turns out forbidden_imports_test.dart makes sure I don't import dart:io, so maybe I shouldn't go down that route. :) I'll keep a todo here to make this work for Windows if needed for now.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hmm, it looks like I should access isWindows using some of the abstractions we have in Flutter instead. Updated to use that.

Copy link
Contributor

Choose a reason for hiding this comment

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

We definitely run the native targets using various platforms, but I'm not sure about web. Maybe @christopherfujino would know off the top of his head?

Copy link
Contributor

Choose a reason for hiding this comment

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

not sure off the top of my head.

Copy link
Contributor

@bkonyi bkonyi left a comment

Choose a reason for hiding this comment

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

LGTM overall!

@srujzs srujzs enabled auto-merge January 28, 2025 04:08
@srujzs srujzs added this pull request to the merge queue Jan 28, 2025
Merged via the queue into flutter:master with commit 6d2792d Jan 28, 2025
160 of 161 checks passed
@srujzs srujzs deleted the hotrestart branch January 28, 2025 20:05
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jan 29, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jan 30, 2025
Roll Flutter from c1ffaa9 to b007899 (43 revisions)

flutter/flutter@c1ffaa9...b007899

2025-01-29 tessertaha@gmail.com Fix `Tab` linear and elastic animation blink (flutter/flutter#162315)
2025-01-29 pateltirth454@gmail.com Pass-through `textInputAction` in `DropdownMenu` (flutter/flutter#162309)
2025-01-29 38378650+hgraceb@users.noreply.github.com Fix scrollUntilVisible in WidgetTester (flutter/flutter#159582)
2025-01-29 pateltirth454@gmail.com Pass-through `maxLines` in `DropdownMenu` (flutter/flutter#161903)
2025-01-29 gaganyadav80@gmail.com fix: appbar leading width is not square for custom toolbar height (flutter/flutter#161880)
2025-01-29 chinmaygarde@google.com [DisplayList] Don't call Skia Ganesh methods when its not available. (flutter/flutter#162345)
2025-01-29 reidbaker@google.com Update README.md to include googler post verification steps (flutter/flutter#162272)
2025-01-29 kevmoo@users.noreply.github.com [engine, web] return switch expressions in many places (flutter/flutter#162336)
2025-01-29 reidbaker@google.com Update README.md to not have engine link for android (flutter/flutter#162330)
2025-01-29 bkonyi@google.com Reland "[ Widget Previews ] Add support for detecting previews and generating code (#161911)"" (flutter/flutter#162337)
2025-01-29 34871572+gmackall@users.noreply.github.com Add instructions to download the Gradle wrapper to FGP readme, and add to gitignore (flutter/flutter#162332)
2025-01-29 matanlurey@users.noreply.github.com Fix tests to prepare for `--explicit-package-dependencies` and a bug. (flutter/flutter#162289)
2025-01-29 matanlurey@users.noreply.github.com Add a currently unused `runs_in_merge_queue` property to `Linux analyze`. (flutter/flutter#162335)
2025-01-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ Widget Previews ] Add support for detecting previews and generating code (#161911)" (flutter/flutter#162327)
2025-01-28 58529443+srujzs@users.noreply.github.com Support hot restart for DDC library bundle format (flutter/flutter#162123)
2025-01-28 30870216+gaaclarke@users.noreply.github.com Started adjusting uvs to match pixel snapping. (flutter/flutter#162049)
2025-01-28 mohellebiabdessalem@gmail.com Refactor code inside flutter.groovy  (flutter/flutter#160250)
2025-01-28 47866232+chunhtai@users.noreply.github.com Table implements redepth (flutter/flutter#162282)
2025-01-28 bkonyi@google.com [ Widget Previews ] Add support for detecting previews and generating code (flutter/flutter#161911)
2025-01-28 andrewrkolos@gmail.com remove dependency on `Usage` from `Pub` class (flutter/flutter#162279)
2025-01-28 engine-flutter-autoroll@skia.org Roll Packages from 258f6dc to 02c6fef (6 revisions) (flutter/flutter#162313)
2025-01-28 matanlurey@users.noreply.github.com Remove `scenario_app/android` and rename to `ios_scenario_app`. (flutter/flutter#160992)
2025-01-28 matanlurey@users.noreply.github.com Apparently it is illegal to use `stderr` in this project. (flutter/flutter#162294)
2025-01-28 aam@google.com Fix update_engine_version_test in presence of FLUTTER_PREBUILT_ENGINE_VERSION env vars. (flutter/flutter#162270)
2025-01-28 matanlurey@users.noreply.github.com Add missing `properties: ...` and move to presubmit. (flutter/flutter#162170)
2025-01-27 jonahwilliams@google.com [Impeller] make swapchain related external fence/semaphore extensions optional. (flutter/flutter#162205)
2025-01-27 49699333+dependabot[bot]@users.noreply.github.com Bump the all-github-actions group with 2 updates (flutter/flutter#162277)
2025-01-27 chinmaygarde@google.com Don't depend on Dart from FML. (flutter/flutter#162271)
2025-01-27 chinmaygarde@google.com [DisplayList] Move nested canvas enums into their own TU. (flutter/flutter#162037)
2025-01-27 importRyan@gmail.com Avoid iOS text selection crash by returning nil range (flutter/flutter#161996)
2025-01-27 mohellebiabdessalem@gmail.com fix `felt` link to point to flutter repo instead of the engine repo (flutter/flutter#161423)
2025-01-27 matanlurey@users.noreply.github.com Enable the Android Engine OpenGLES/Vulkan suites. (flutter/flutter#162258)
2025-01-27 1961493+harryterkelsen@users.noreply.github.com [canvaskit] Fix debug build for CanvasKit (flutter/flutter#162198)
2025-01-27 engine-flutter-autoroll@skia.org Roll Packages from 3d3ab7b to 258f6dc (19 revisions) (flutter/flutter#162254)
2025-01-25 matanlurey@users.noreply.github.com Pin `customer_testing` to the SHA specified in `tests.version` (flutter/flutter#162048)
2025-01-25 matanlurey@users.noreply.github.com Formalize `update_engine_version.{sh|ps1}`. (flutter/flutter#162118)
2025-01-25 pateltirth454@gmail.com Rename 'SelectionChangedCause.scribble' to 'SelectionChangedCause.stylusHandwriting' (flutter/flutter#161518)
2025-01-25 jacksongardner@google.com Don't install xcode when doing `local_engine` web builds on mac. (flutter/flutter#162164)
2025-01-25 matanlurey@users.noreply.github.com Force Impeller backend for `android_engine_test`, and test both OpenGLES and Vulkan (flutter/flutter#162089)
2025-01-24 jonahwilliams@google.com [Impeller] when a command pool has many unused buffers, reset with release resources flag. (flutter/flutter#162171)
2025-01-24 mdebbar@google.com [web] Remove HTML renderer from framework tests (flutter/flutter#162038)
2025-01-24 jonahwilliams@google.com [Impeller] Skip clip entity replay that cannot impact current clip. (flutter/flutter#162113)
2025-01-24 de.frankenapps@gmail.com Update Android integration test package for newer AGP (flutter/flutter#161856)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
androidseb pushed a commit to androidseb/packages that referenced this pull request Jun 8, 2025
Roll Flutter from c1ffaa9 to b007899 (43 revisions)

flutter/flutter@c1ffaa9...b007899

2025-01-29 tessertaha@gmail.com Fix `Tab` linear and elastic animation blink (flutter/flutter#162315)
2025-01-29 pateltirth454@gmail.com Pass-through `textInputAction` in `DropdownMenu` (flutter/flutter#162309)
2025-01-29 38378650+hgraceb@users.noreply.github.com Fix scrollUntilVisible in WidgetTester (flutter/flutter#159582)
2025-01-29 pateltirth454@gmail.com Pass-through `maxLines` in `DropdownMenu` (flutter/flutter#161903)
2025-01-29 gaganyadav80@gmail.com fix: appbar leading width is not square for custom toolbar height (flutter/flutter#161880)
2025-01-29 chinmaygarde@google.com [DisplayList] Don't call Skia Ganesh methods when its not available. (flutter/flutter#162345)
2025-01-29 reidbaker@google.com Update README.md to include googler post verification steps (flutter/flutter#162272)
2025-01-29 kevmoo@users.noreply.github.com [engine, web] return switch expressions in many places (flutter/flutter#162336)
2025-01-29 reidbaker@google.com Update README.md to not have engine link for android (flutter/flutter#162330)
2025-01-29 bkonyi@google.com Reland "[ Widget Previews ] Add support for detecting previews and generating code (#161911)"" (flutter/flutter#162337)
2025-01-29 34871572+gmackall@users.noreply.github.com Add instructions to download the Gradle wrapper to FGP readme, and add to gitignore (flutter/flutter#162332)
2025-01-29 matanlurey@users.noreply.github.com Fix tests to prepare for `--explicit-package-dependencies` and a bug. (flutter/flutter#162289)
2025-01-29 matanlurey@users.noreply.github.com Add a currently unused `runs_in_merge_queue` property to `Linux analyze`. (flutter/flutter#162335)
2025-01-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ Widget Previews ] Add support for detecting previews and generating code (#161911)" (flutter/flutter#162327)
2025-01-28 58529443+srujzs@users.noreply.github.com Support hot restart for DDC library bundle format (flutter/flutter#162123)
2025-01-28 30870216+gaaclarke@users.noreply.github.com Started adjusting uvs to match pixel snapping. (flutter/flutter#162049)
2025-01-28 mohellebiabdessalem@gmail.com Refactor code inside flutter.groovy  (flutter/flutter#160250)
2025-01-28 47866232+chunhtai@users.noreply.github.com Table implements redepth (flutter/flutter#162282)
2025-01-28 bkonyi@google.com [ Widget Previews ] Add support for detecting previews and generating code (flutter/flutter#161911)
2025-01-28 andrewrkolos@gmail.com remove dependency on `Usage` from `Pub` class (flutter/flutter#162279)
2025-01-28 engine-flutter-autoroll@skia.org Roll Packages from 258f6dc to 02c6fef (6 revisions) (flutter/flutter#162313)
2025-01-28 matanlurey@users.noreply.github.com Remove `scenario_app/android` and rename to `ios_scenario_app`. (flutter/flutter#160992)
2025-01-28 matanlurey@users.noreply.github.com Apparently it is illegal to use `stderr` in this project. (flutter/flutter#162294)
2025-01-28 aam@google.com Fix update_engine_version_test in presence of FLUTTER_PREBUILT_ENGINE_VERSION env vars. (flutter/flutter#162270)
2025-01-28 matanlurey@users.noreply.github.com Add missing `properties: ...` and move to presubmit. (flutter/flutter#162170)
2025-01-27 jonahwilliams@google.com [Impeller] make swapchain related external fence/semaphore extensions optional. (flutter/flutter#162205)
2025-01-27 49699333+dependabot[bot]@users.noreply.github.com Bump the all-github-actions group with 2 updates (flutter/flutter#162277)
2025-01-27 chinmaygarde@google.com Don't depend on Dart from FML. (flutter/flutter#162271)
2025-01-27 chinmaygarde@google.com [DisplayList] Move nested canvas enums into their own TU. (flutter/flutter#162037)
2025-01-27 importRyan@gmail.com Avoid iOS text selection crash by returning nil range (flutter/flutter#161996)
2025-01-27 mohellebiabdessalem@gmail.com fix `felt` link to point to flutter repo instead of the engine repo (flutter/flutter#161423)
2025-01-27 matanlurey@users.noreply.github.com Enable the Android Engine OpenGLES/Vulkan suites. (flutter/flutter#162258)
2025-01-27 1961493+harryterkelsen@users.noreply.github.com [canvaskit] Fix debug build for CanvasKit (flutter/flutter#162198)
2025-01-27 engine-flutter-autoroll@skia.org Roll Packages from 3d3ab7b to 258f6dc (19 revisions) (flutter/flutter#162254)
2025-01-25 matanlurey@users.noreply.github.com Pin `customer_testing` to the SHA specified in `tests.version` (flutter/flutter#162048)
2025-01-25 matanlurey@users.noreply.github.com Formalize `update_engine_version.{sh|ps1}`. (flutter/flutter#162118)
2025-01-25 pateltirth454@gmail.com Rename 'SelectionChangedCause.scribble' to 'SelectionChangedCause.stylusHandwriting' (flutter/flutter#161518)
2025-01-25 jacksongardner@google.com Don't install xcode when doing `local_engine` web builds on mac. (flutter/flutter#162164)
2025-01-25 matanlurey@users.noreply.github.com Force Impeller backend for `android_engine_test`, and test both OpenGLES and Vulkan (flutter/flutter#162089)
2025-01-24 jonahwilliams@google.com [Impeller] when a command pool has many unused buffers, reset with release resources flag. (flutter/flutter#162171)
2025-01-24 mdebbar@google.com [web] Remove HTML renderer from framework tests (flutter/flutter#162038)
2025-01-24 jonahwilliams@google.com [Impeller] Skip clip entity replay that cannot impact current clip. (flutter/flutter#162113)
2025-01-24 de.frankenapps@gmail.com Update Android integration test package for newer AGP (flutter/flutter#161856)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
...
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
Roll Flutter from c1ffaa9 to b007899 (43 revisions)

flutter/flutter@c1ffaa9...b007899

2025-01-29 tessertaha@gmail.com Fix `Tab` linear and elastic animation blink (flutter/flutter#162315)
2025-01-29 pateltirth454@gmail.com Pass-through `textInputAction` in `DropdownMenu` (flutter/flutter#162309)
2025-01-29 38378650+hgraceb@users.noreply.github.com Fix scrollUntilVisible in WidgetTester (flutter/flutter#159582)
2025-01-29 pateltirth454@gmail.com Pass-through `maxLines` in `DropdownMenu` (flutter/flutter#161903)
2025-01-29 gaganyadav80@gmail.com fix: appbar leading width is not square for custom toolbar height (flutter/flutter#161880)
2025-01-29 chinmaygarde@google.com [DisplayList] Don't call Skia Ganesh methods when its not available. (flutter/flutter#162345)
2025-01-29 reidbaker@google.com Update README.md to include googler post verification steps (flutter/flutter#162272)
2025-01-29 kevmoo@users.noreply.github.com [engine, web] return switch expressions in many places (flutter/flutter#162336)
2025-01-29 reidbaker@google.com Update README.md to not have engine link for android (flutter/flutter#162330)
2025-01-29 bkonyi@google.com Reland "[ Widget Previews ] Add support for detecting previews and generating code (#161911)"" (flutter/flutter#162337)
2025-01-29 34871572+gmackall@users.noreply.github.com Add instructions to download the Gradle wrapper to FGP readme, and add to gitignore (flutter/flutter#162332)
2025-01-29 matanlurey@users.noreply.github.com Fix tests to prepare for `--explicit-package-dependencies` and a bug. (flutter/flutter#162289)
2025-01-29 matanlurey@users.noreply.github.com Add a currently unused `runs_in_merge_queue` property to `Linux analyze`. (flutter/flutter#162335)
2025-01-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[ Widget Previews ] Add support for detecting previews and generating code (#161911)" (flutter/flutter#162327)
2025-01-28 58529443+srujzs@users.noreply.github.com Support hot restart for DDC library bundle format (flutter/flutter#162123)
2025-01-28 30870216+gaaclarke@users.noreply.github.com Started adjusting uvs to match pixel snapping. (flutter/flutter#162049)
2025-01-28 mohellebiabdessalem@gmail.com Refactor code inside flutter.groovy  (flutter/flutter#160250)
2025-01-28 47866232+chunhtai@users.noreply.github.com Table implements redepth (flutter/flutter#162282)
2025-01-28 bkonyi@google.com [ Widget Previews ] Add support for detecting previews and generating code (flutter/flutter#161911)
2025-01-28 andrewrkolos@gmail.com remove dependency on `Usage` from `Pub` class (flutter/flutter#162279)
2025-01-28 engine-flutter-autoroll@skia.org Roll Packages from 258f6dc to 02c6fef (6 revisions) (flutter/flutter#162313)
2025-01-28 matanlurey@users.noreply.github.com Remove `scenario_app/android` and rename to `ios_scenario_app`. (flutter/flutter#160992)
2025-01-28 matanlurey@users.noreply.github.com Apparently it is illegal to use `stderr` in this project. (flutter/flutter#162294)
2025-01-28 aam@google.com Fix update_engine_version_test in presence of FLUTTER_PREBUILT_ENGINE_VERSION env vars. (flutter/flutter#162270)
2025-01-28 matanlurey@users.noreply.github.com Add missing `properties: ...` and move to presubmit. (flutter/flutter#162170)
2025-01-27 jonahwilliams@google.com [Impeller] make swapchain related external fence/semaphore extensions optional. (flutter/flutter#162205)
2025-01-27 49699333+dependabot[bot]@users.noreply.github.com Bump the all-github-actions group with 2 updates (flutter/flutter#162277)
2025-01-27 chinmaygarde@google.com Don't depend on Dart from FML. (flutter/flutter#162271)
2025-01-27 chinmaygarde@google.com [DisplayList] Move nested canvas enums into their own TU. (flutter/flutter#162037)
2025-01-27 importRyan@gmail.com Avoid iOS text selection crash by returning nil range (flutter/flutter#161996)
2025-01-27 mohellebiabdessalem@gmail.com fix `felt` link to point to flutter repo instead of the engine repo (flutter/flutter#161423)
2025-01-27 matanlurey@users.noreply.github.com Enable the Android Engine OpenGLES/Vulkan suites. (flutter/flutter#162258)
2025-01-27 1961493+harryterkelsen@users.noreply.github.com [canvaskit] Fix debug build for CanvasKit (flutter/flutter#162198)
2025-01-27 engine-flutter-autoroll@skia.org Roll Packages from 3d3ab7b to 258f6dc (19 revisions) (flutter/flutter#162254)
2025-01-25 matanlurey@users.noreply.github.com Pin `customer_testing` to the SHA specified in `tests.version` (flutter/flutter#162048)
2025-01-25 matanlurey@users.noreply.github.com Formalize `update_engine_version.{sh|ps1}`. (flutter/flutter#162118)
2025-01-25 pateltirth454@gmail.com Rename 'SelectionChangedCause.scribble' to 'SelectionChangedCause.stylusHandwriting' (flutter/flutter#161518)
2025-01-25 jacksongardner@google.com Don't install xcode when doing `local_engine` web builds on mac. (flutter/flutter#162164)
2025-01-25 matanlurey@users.noreply.github.com Force Impeller backend for `android_engine_test`, and test both OpenGLES and Vulkan (flutter/flutter#162089)
2025-01-24 jonahwilliams@google.com [Impeller] when a command pool has many unused buffers, reset with release resources flag. (flutter/flutter#162171)
2025-01-24 mdebbar@google.com [web] Remove HTML renderer from framework tests (flutter/flutter#162038)
2025-01-24 jonahwilliams@google.com [Impeller] Skip clip entity replay that cannot impact current clip. (flutter/flutter#162113)
2025-01-24 de.frankenapps@gmail.com Update Android integration test package for newer AGP (flutter/flutter#161856)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants