Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
158 commits
Select commit Hold shift + click to select a range
6db11cd
Adding tests for Build Daemon + Frontend Server backend
Markzipan Apr 20, 2026
0415fed
Adding dwds hooks for build runner + FES expression eval
Markzipan Apr 29, 2026
890f49b
Adding support for FES port communications
Markzipan May 5, 2026
2fb3a67
Support fes_manager in tests.
Markzipan May 7, 2026
e8a9d44
updating port file name
Markzipan May 14, 2026
c6efb3c
formatting
Markzipan May 14, 2026
ef4b320
adding local override
Markzipan May 14, 2026
f0086a1
updating tests
Markzipan May 15, 2026
82ad3a4
formatting
Markzipan May 15, 2026
6ace94c
Merging
Markzipan May 15, 2026
163b4b9
Fixing override
Markzipan May 15, 2026
8782282
updating test pubspec
Markzipan May 18, 2026
e74fc12
Updating test constraints
Markzipan May 19, 2026
dc58b2a
updating compilationMode checks
Markzipan May 19, 2026
1d84f5c
Add hot reload + restart support
Markzipan May 28, 2026
67f91bc
Fix DWDS test hangs by targeting specific web assets path
Markzipan Jun 12, 2026
67bbfea
Extending tests
Markzipan Jun 16, 2026
a3f687e
updating dwds test utilities
Markzipan Jun 16, 2026
85a056b
Adding DdcUriTranslator
Markzipan Jun 16, 2026
b0f17b6
Using DdcUriTranslator
Markzipan Jun 16, 2026
b41e58e
Add hotReloadResult vm service extension call
Markzipan Jun 16, 2026
cb923d6
fix expression eval in FES mode
Markzipan Jun 16, 2026
4358d38
Updating path resolution and FES-specific logic
Markzipan Jun 16, 2026
79b7fa2
Finalizing test fixture serving logic and adding cleanup
Markzipan Jun 16, 2026
b87fbce
Cleaning up unused or debug code
Markzipan Jun 16, 2026
0486e4d
Bumping build web compilers to 4.8.2
Markzipan Jun 16, 2026
292ca00
Reverting unused test code
Markzipan Jun 16, 2026
0967e59
Fixing fes_manager resolution
Markzipan Jun 16, 2026
d1a6baa
Update URI translation
Markzipan Jun 16, 2026
eb304ae
Updating versions
Markzipan Jun 17, 2026
b3991f2
Readding uri roots
Markzipan Jun 17, 2026
503cff9
Updating hot reload error signalling in tests
Markzipan Jun 17, 2026
2315796
Merge remote-tracking branch 'origin/main' into expression_eval_dwds
Markzipan Jun 17, 2026
5bec825
Updating uri tests
Markzipan Jun 18, 2026
5ab44e9
Add useDebuggerModuleNames support
Markzipan Jul 1, 2026
16c1e6f
Splitting more dwds tests between ddc module systems
Markzipan Jul 8, 2026
54db476
Merge remote-tracking branch 'origin/main' into expression_eval_dwds
Markzipan Jul 9, 2026
035c94b
formatting
Markzipan Jul 9, 2026
5669ced
Reading entrypoints from .web.entrypoint.json and cleaning up test sc…
Markzipan Jul 10, 2026
06cee25
Updating uri tests
Markzipan Jul 13, 2026
6ceb90c
bumping fixtures to dwds 4.8.7
Markzipan Jul 14, 2026
4ce2ee8
Merge remote-tracking branch 'origin/main' into expression_eval_dwds
Markzipan Jul 14, 2026
7ba2c1f
Fixing analysis issues
Markzipan Jul 14, 2026
10302f8
code cleanup + adding comments
Markzipan Jul 14, 2026
f074c92
Removing extraneous debug code
Markzipan Jul 14, 2026
56a50bd
Code cleanup
Markzipan Jul 14, 2026
b6e816f
Removing invalid tests and fixing timeouts
Markzipan Jul 14, 2026
0e0e083
Removing debug pubspec files
Markzipan Jul 15, 2026
df538ab
Passing AppUriLayout
Markzipan Jul 15, 2026
1174260
Updating expectations
Markzipan Jul 15, 2026
7ed1938
Deleting tests in the test workspace to ensure a single entrypoint
Markzipan Jul 15, 2026
fba1e52
Updating tls test expectations
Markzipan Jul 15, 2026
96d62da
formatting
Markzipan Jul 15, 2026
1aa966c
fixing analysis errors
Markzipan Jul 15, 2026
858e6f2
Updating versions
Markzipan Jul 16, 2026
6e66ca9
Updating injected client logic
Markzipan Jul 16, 2026
28afafa
Updating versions in fixtures
Markzipan Jul 17, 2026
47c54cf
Updating changelogs
Markzipan Jul 18, 2026
d87e0ea
Updating versions
Markzipan Jul 18, 2026
eb0883b
Updating uri modifiers to support windows style paths
Markzipan Jul 18, 2026
9c4dbb1
Updating ver
Markzipan Jul 20, 2026
a483dc0
Filtering Windows slashes
Markzipan Jul 20, 2026
d4b230b
Updating location parsing
Markzipan Jul 20, 2026
ce50fbe
Support flutter style URIs for package paths
Markzipan Jul 21, 2026
3548250
Adding flutter-specific handling to FrontendServerDdcLibraryBundleStr…
Markzipan Jul 22, 2026
f6d5c53
Merge remote-tracking branch 'origin/main' into expression_eval_dwds
Markzipan Jul 23, 2026
3ce0cf1
Allowing null reloadedSources and handling them at downstream call sites
Markzipan Jul 23, 2026
50042ad
Adding an AppUriLayout.flutter option + adding tests for uri translation
Markzipan Jul 24, 2026
76ba3b0
Updating versions
Markzipan Jul 24, 2026
96ac149
Cleaning up FrontendServerBuildDaemonStrategyProvider
Markzipan Jul 24, 2026
626c9e7
Removing URI hacks
Markzipan Jul 24, 2026
f10aba4
Reusing defaultWebDirs
Markzipan Jul 24, 2026
72034ca
Using better package uri/path naming
Markzipan Jul 24, 2026
cc98d75
Updating major ver
Markzipan Jul 24, 2026
e7cdbbf
Reverting unnecessary windows guards
Markzipan Jul 24, 2026
409afeb
Cleaning up debug code
Markzipan Jul 24, 2026
165b2c7
Renaming DDCUriTranslator to WebPathTranslator
Markzipan Jul 24, 2026
f91a578
Adding separate 'providers' for asset scheme, metadata, and path tran…
Markzipan Jul 28, 2026
c380689
Splitting path resolvers
Markzipan Jul 28, 2026
251b9f1
Disabling symlinks to avoid race condition
Markzipan Jul 28, 2026
085e16a
Updating test timeout
Markzipan Jul 28, 2026
adf0170
Merge remote-tracking branch 'origin/main' into expression_eval_dwds
Markzipan Jul 28, 2026
4471036
Pulling sdk out
Markzipan Jul 28, 2026
c699532
Unifying metadata and asset loader
Markzipan Jul 30, 2026
3459043
Cleaning up webdev_server.dart
Markzipan Jul 30, 2026
7959e10
Updating metadata exports and fixing asset schemes
Markzipan Jul 30, 2026
507db34
Using const asset schemes and cleaning up code
Markzipan Jul 30, 2026
0df9809
Merge remote-tracking branch 'origin/main' into expression_eval_dwds
Markzipan Jul 30, 2026
dc5d44a
Fixing analysis issues
Markzipan Jul 30, 2026
e3acde3
adding todo
Markzipan Jul 31, 2026
e77a5bb
Removing extraneous diffs
Markzipan Aug 3, 2026
3512543
Resolving comments
Markzipan Aug 3, 2026
2b93805
Merge remote-tracking branch 'origin/main' into expression_eval_dwds
Markzipan Aug 4, 2026
3993570
Merge remote-tracking branch 'origin/main' into expression_eval_dwds
Markzipan Aug 4, 2026
7a0ee60
Moving tests to webdev or dwds where necessary to match SDK
Markzipan Aug 6, 2026
1dcd91f
Adding analysis error ignore tags
Markzipan Aug 7, 2026
9af74df
Fixing asset reader test
Markzipan Aug 7, 2026
2e1b65f
moving tests to webdev
Markzipan Aug 12, 2026
83ec494
fix unused imports in moved tests
Markzipan Aug 12, 2026
4dee23c
fix unused imports in moved tests on expression_eval_dwds
Markzipan Aug 12, 2026
9f80795
Update extension tests to run from debug_extension package
Markzipan Aug 12, 2026
9f41007
DWDS Feature: Daemon Expression Compiler & FES Support
Markzipan Aug 11, 2026
dab17bd
Webdev CLI Integration & Spanning Tests
Markzipan Aug 11, 2026
f11317f
Temp commit of fixes to match expression_eval_dwds
Markzipan Aug 11, 2026
cccc105
moving tests to webdev
Markzipan Aug 12, 2026
75b8248
fix unused imports in moved tests
Markzipan Aug 12, 2026
4006a94
Fix extension tests in CI by running them from debug_extension package
Markzipan Aug 12, 2026
4fbaaea
Merge hot_reload_and_eval_2 (refactored stack) into expression_eval_dwds
Markzipan Aug 13, 2026
bc302c2
Fix imports and move tests back to dwds after merge
Markzipan Aug 13, 2026
b3021d4
Fix integration test infrastructure for Build Daemon and Frontend Server
Markzipan Aug 13, 2026
f23330d
Fix hot reload rejection test for Build Daemon and Frontend Server
Markzipan Aug 13, 2026
975cbd3
Migrating to SDK-style test contexts and conventions
Markzipan Aug 14, 2026
d5a0d92
resolving analysis errors
Markzipan Aug 14, 2026
4466a90
Merge remote-tracking branch 'origin/main' into expression_eval_dwds
Markzipan Aug 14, 2026
b93c9f9
Webdev CLI Integration & Spanning Tests
Markzipan Aug 11, 2026
a744507
Temp commit of fixes to match expression_eval_dwds
Markzipan Aug 11, 2026
a12599a
moving tests to webdev
Markzipan Aug 12, 2026
008cee4
fix unused imports in moved tests
Markzipan Aug 12, 2026
4e06af3
Fix extension tests in CI by running them from debug_extension package
Markzipan Aug 12, 2026
29dd36c
Cleanup internal monologue comments in context.dart
Markzipan Aug 14, 2026
6e1f4ba
cleanup
Markzipan Aug 14, 2026
34a6526
Polish context.dart with latest SDK sync updates
Markzipan Aug 14, 2026
32641e5
Merge expression_eval_dwds into hot_reload_and_eval_2 to sync SDK upd…
Markzipan Aug 14, 2026
2853ef3
Fix unresolved conflict markers in hot_restart tests
Markzipan Aug 14, 2026
fce749b
Remove unused logger from BuildDaemonTestContext in hot_reload_and_ev…
Markzipan Aug 14, 2026
e0a0d14
Format files in hot_reload_and_eval_2
Markzipan Aug 14, 2026
53f4c31
Merge hot_reload_and_eval_1 into hot_reload_and_eval_2 and resolve co…
Markzipan Aug 14, 2026
07c2816
removing extraneous files
Markzipan Aug 14, 2026
978601c
Merge branch 'hot_reload_and_eval_1' into hot_reload_and_eval_2
Markzipan Aug 14, 2026
458b42b
Merge hot_reload_and_eval_1 and remove build_daemon dep
Markzipan Aug 14, 2026
247d049
Merge branch 'hot_reload_and_eval_1' into hot_reload_and_eval_2
Markzipan Aug 14, 2026
1618dff
Merge branch 'hot_reload_and_eval_1' into hot_reload_and_eval_2
Markzipan Aug 14, 2026
26a3a98
Merge hot_reload_and_eval_1 and apply Xvfb changes
Markzipan Aug 14, 2026
77f41ab
Merge branch 'hot_reload_and_eval_1' into hot_reload_and_eval_2
Markzipan Aug 14, 2026
e64f305
Merge hot_reload_and_eval_1 and regenerate CI config
Markzipan Aug 14, 2026
f2fd7fe
Merge hot_reload_and_eval_1 with Zizmor fixes
Markzipan Aug 14, 2026
1f30c7f
Merge hot_reload_and_eval_1 with pull_request_label fix
Markzipan Aug 14, 2026
2d54af7
Merge hot_reload_and_eval_1 and regenerate CI config
Markzipan Aug 14, 2026
a716590
Merge hot_reload_and_eval_1 and regenerate CI config
Markzipan Aug 14, 2026
7b76d77
Pass useDebuggerModuleNames to TestBuildSettings and restore fixtures
Markzipan Aug 15, 2026
1645f8c
Fix duplicate daemon connection in BuildDaemonAndFrontendServerTestCo…
Markzipan Aug 15, 2026
e8c3e7a
Format files
Markzipan Aug 15, 2026
e7efd9e
Resolve standard Windows Chrome installation paths in context.dart
Markzipan Aug 15, 2026
3329342
Pass provider moduleFormat and canaryFeatures to TestSettings in dart…
Markzipan Aug 15, 2026
7da8179
Improve waitForAppId error reporting and diagnostic output
Markzipan Aug 15, 2026
c6d1b4e
Fix appServerPath in dart_uri_file_uri and reset _expressionCompiler …
Markzipan Aug 15, 2026
33001a3
Format code with dart format
Markzipan Aug 15, 2026
4d2a44d
Format code with dart format
Markzipan Aug 17, 2026
4cf2aab
Format code with modern dart format
Markzipan Aug 17, 2026
842c791
Format debug_extension with modern dart format
Markzipan Aug 17, 2026
36fbb6f
Prepare 4.0.2 release (#2866)
Markzipan Aug 17, 2026
9b1d5a2
Remove test_uri.dart scratch file
Markzipan Aug 17, 2026
6380367
Merge origin/main into hot_reload_and_eval_2
Markzipan Aug 17, 2026
2487c8a
Implement waitForSuccessfulBuild in BuildDaemonContextMixin
Markzipan Aug 18, 2026
66e618b
Fix appServerPath in dart_uri_file_uri to check usesFrontendServer
Markzipan Aug 18, 2026
869d651
Reduce concurrency in asset_handler test to prevent socket exhaustion…
Markzipan Aug 18, 2026
19fb8d1
Wrap test IOClient with RetryClient to handle intermittent TCP connec…
Markzipan Aug 18, 2026
68f0185
Log warning when retrying request on network error in RetryClient
Markzipan Aug 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
321 changes: 208 additions & 113 deletions .github/workflows/dart.yml

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions debug_extension/mono_pkg.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# See https://pub.dev/packages/mono_repo for details
stages:
- analyzer_and_format:
- group:
- format
- analyze: --fatal-infos .
sdk: dev
- unit_test:
- group:
- command: Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
- test: -j 1
sdk: dev
os:
- linux
- test: -j 1
os: windows
sdk: dev
10 changes: 6 additions & 4 deletions dwds/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
## 28.0.0

- Support expression evaluation in Frontend Server + Build Daemon mode via `DaemonExpressionCompiler`.
- Add `WebPathTranslator` to support path translation between Frontend Server and Build Daemon.
- Replace `PackageUriMapper` with `PathResolver` strategy.
- **Breaking Change**: Removed `PackageUriMapper` in favor of **`PathResolver`** - with `BuildRunnerPathResolver`, `FrontendServerPathResolver`, and `FlutterPathResolver` impls.
- **Breaking Change**: **`LoadStrategy`** implementors must now implement the **`assetScheme`** getter.
- Introduce **`AssetScheme`** to generalize asset naming schemes.
- Add support for Frontend Server + Build Daemon configuration with hot reload via **`FrontendServerBuildDaemonStrategyProvider`**.
- Expose **`DaemonExpressionCompiler`** for handling expression compilation directly via `build_daemon`.
- **`BuildSettings`** now supports **`useDebuggerModuleNames`** to distinguish between debugger-friendly paths and raw server paths.

## 27.1.3-wip

Expand Down
2,238 changes: 809 additions & 1,429 deletions dwds/lib/src/handlers/injected_client_js.dart

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions dwds/test/integration/dart_uri_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,12 @@ void main() {

test('parses org-dartlang-app paths', () {
final uri = DartUri('org-dartlang-app:///blah/main.dart');
expect(uri.serverPath, '/blah/main.dart');
expect(uri.serverPath, 'blah/main.dart');
});

test('parses google3 paths', () {
final uri = DartUri('google3:///blah/main.dart');
expect(uri.serverPath, '/blah/main.dart');
expect(uri.serverPath, 'blah/main.dart');
});

test('parses packages paths', () {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ class FrontendServerTestContext extends TestContext {
canaryFeatures: testSettings.canaryFeatures,
isFlutterApp: testSettings.isFlutterApp,
experiments: testSettings.experiments,
useDebuggerModuleNames: testSettings.useDebuggerModuleNames,
);

final filePathToServe = webCompatiblePath([
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.

import 'package:dwds/expression_compiler.dart';

import 'package:dwds_test_common/integration/hot_reload_breakpoints.dart';
import 'package:dwds_test_common/test_sdk_configuration.dart';
import 'package:test/test.dart';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.

import 'package:dwds/expression_compiler.dart';

import 'package:dwds_test_common/integration/hot_reload.dart';
import 'package:dwds_test_common/test_sdk_configuration.dart';
import 'package:test/test.dart';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.

import 'package:dwds/src/services/expression_compiler.dart';

import 'package:dwds_test_common/integration/instance_inspection.dart';
import 'package:dwds_test_common/test_sdk_configuration.dart';
import 'package:test/test.dart';
Expand Down
22 changes: 14 additions & 8 deletions dwds/test/integration/package_uri_mapper_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ void main() {

final resolvedPath = '${project.packageDirectory}/lib/test_library.dart';

late final BuildRunnerPathResolver pathResolver;
late final PathResolver packageUriMapper;
setUpAll(() async {
await project.setUp();
// Note: Run `dart pub upgrade` before the test cases to fix
Expand All @@ -51,25 +51,31 @@ void main() {
),
);

pathResolver = await BuildRunnerPathResolver.create(
fileSystem,
packageConfigFile,
useDebuggerModuleNames: useDebuggerModuleNames,
);
packageUriMapper = useDebuggerModuleNames
? await FrontendServerPathResolver.create(
fileSystem,
packageConfigFile,
useDebuggerModuleNames: useDebuggerModuleNames,
)
: await BuildRunnerPathResolver.create(
fileSystem,
packageConfigFile,
useDebuggerModuleNames: useDebuggerModuleNames,
);
});

tearDownAll(project.tearDown);

test('Can convert package urls to server paths', () {
expect(
pathResolver.appUriToServerPath(packageUri.toString()),
packageUriMapper.appUriToServerPath(packageUri.toString()),
serverPath,
);
});

test('Can convert server paths to file paths', () {
expect(
pathResolver.serverPathToResolvedUri(serverPath),
packageUriMapper.serverPathToResolvedUri(serverPath),
isA<Uri>()
.having((uri) => uri.scheme, 'scheme', 'file')
.having((uri) => uri.path, 'path', endsWith(resolvedPath)),
Expand Down
Loading