dwds 26.2.3
dwds: ^26.2.3 copied to clipboard
A service that proxies between the Chrome debug protocol and the Dart VM service protocol.
26.2.3 #
- Bump
build_web_compilersto ^4.4.1. - Remove unused
clientFuturearg fromDwdsVmClientmethods. - Fix pausing starting of
mainafter the hot restart. - Updating bootstrapper for DDC library bundler module format + Frontend Server.
- Fix setting up breakpoints when handling in-app restarts with attached debugger.
- Fix issue where the web socket connections with the target application and Chrome debugger close when the computer sleeps.
- Fix setting up breakpoints when handling full reloads from attached debugger / page refreshes.
26.2.2 #
- Fix issue where isolate pause events were not reported correctly when using the web socket proxy service.
26.2.1 #
- Add support for DDS APIs and serving Dart DevTools when no Chrome Debugger is available.
26.2.0 #
- Add support for more service APIs over websocket connections when no Chrome Debugger is available.
26.1.0 #
reloadSourcesandhotRestartnow throw an RPC error withkServerErrorcode whenNoClientsAvailableExceptionis caught (no browser clients are connected), allowing tooling to detect and handle this scenario.pausenow does not send aPauseInterruptedevent inWebSocketProxyServiceas we didn't actually pause.
26.0.0 #
- Bump SDK constraint to ^3.10.0
- Added 'scriptUri' parameter to compileExpressionToJs
- Fix an issue in
reloadSourceswhere aPauseInterruptedevent was sent. - #61560 - Expose
dtdUriviaDebugConnection.
25.1.0 #
- Added
DartDevelopmentServiceConfigurationto allow for configuring DDS behavior. - Added support for serving DevTools via DDS. This will become the sole method of serving DevTools from DWDS in a future major release.
- Deprecated
spawnDds,ddsPort, anddevToolsLauncherproperties inDebugSettings. - Added
ddsConfigurationtoDebugSettings.
25.0.4 #
Bug Fixes: #
- Fix issue where
DebugService: Error serving requestsError: Unsupported operation: Cannot send Nullwould be spammed on the console.
25.0.3 #
Bug Fixes: #
- Fix issue in hot restart with the web socket where we didn't pass the reloaded sources path, resulting in a null assertion.
25.0.2 #
Bug Fixes: #
- Fix issue where DDS would fail to initialize if DWDS already had existing clients.
25.0.1 #
Bug Fixes: #
- Fix issue in hot restart where a hot restart with no changes followed by one
with changes, a
Futurewas completed again, resulting in a crash.
25.0.0 #
- Implemented hot restart over websockets with multi window support.
- Fix refresh race condition bug by adding an isolate destruction grace period.
- Update a call to the
package:shelf_web_socketwebSocketHandler()function.
Breaking changes
- Remove deprecated parameter
injectDebuggingSupportCodefromDwds.start(). - Remove all deprecated fields, getters, and parameters related to the null safety compilation mode. Dart 3 only supports sound null safety.
- Rename
FrontendServerDdcLibraryBundleStrategy.hotReloadSourcesUritoreloadedSourcesUri. The file that theUripoints to should now be updated for both a hot restart and a hot reload.
24.4.1 #
- Implemented a WebSocket-based communication protocol that provides essential developer tooling (hot reload, service extensions) when Chrome debugger access is unavailable. - #2605
- Added WebSocket-based hot reload and service extension support via new
WebSocketProxyServiceclass that implements VM service protocol over WebSockets. - Enhanced
DevHandlerwithuseWebSocketConnectionflag to toggle between Chrome-based and WebSocket-based communication protocols. - Fixed an issue where we didn't wait until all scripts were parsed before recomputing metadata on a hot reload.
24.4.0 #
- Added support for breakpoint registering on a hot reload with the DDC library bundle format using PausePostRequests.
FrontendServerDdcLibraryBundleStrategy.hotReloadSourceUriis now expected to also provide the reloaded modules.
24.3.11 #
- Changed DWDS to always inject the client and added
useDwdsWebSocketConnectionflag to control communication protocol: when true uses socket-based implementation, when false uses Chrome-based communication protocol. - Added WebSocket-based hot reload support:
reloadSourcesinChromeProxyServiceandDevHandlernow handle hot reload requests and responses over WebSockets. - Refactored the injected client to use a reusable function for handling hot reload requests and responses over WebSockets.
- Added support for breakpoint registering on a hot restart with the DDC library bundle format using PausePostRequests.
24.3.10 #
- Disabled breakpoints on changed files in a hot reload. They currently do not map to the correct locations or are broken, so disable them for now. - #60186
24.3.9 #
- Renamed DWDS Injector parameter
enableDebuggingSupporttoinjectDebuggingSupportCodefor clearer intent.
24.3.8 #
- Updated DWDS to include a boolean flag that enables debugging support only when set to true. #60289
24.3.7 #
-
The registered extension
reassembleis now no longer called when callingreloadSources. Users should callreassembleusingcallServiceExtension. -
callServiceExtensionnow checks the runtime for the list of registered service extensions. It also now throws aRPCErrorwithRPCErrorKind.kMethodNotFoundwhen a service extension is not found instead of throwing a JS evaluation error.
24.3.6 #
- Bump minimum sdk version to 3.7.0
- use 'compile js-dev' instead of directly invoking the ddc snapshot.
FrontendServerDdcLibraryBundleStrategynow takes ahotReloadSourcesUriparameter in order to fetch the file that contains the changed sources and libraries instead of assuming it exists in the globalwindow.
24.3.5 #
- Allow clients to specify the
packageConfigPathinLoadStrategyclass and associated providers.
24.3.4 #
24.3.3 #
- Added support for some debugging APIs with the DDC library bundle format. - #2563
- Update
DCMversion to1.26.0-1 - Add support for hot restart using the DDC library bundle format.
24.3.2 #
- Bump
package:ddsto>=4.2.5 <6.0.0.
24.3.1 #
- Add support for binding DDS to a custom port.
24.3.0 #
- Update to be forward compatible with changes to
package:shelf_web_socket. - Added support for some debugging APIs with the DDC library bundle format. - #2537,#2544,#2548
- Fix issue where batched expression evals were failing if any subexpression failed. - #2551
- Expose a partial implementation of
FrontendServerDdcLibraryBundleStrategyProvider. - Update
package:vm_service_interfaceto '^2.0.1'.
24.2.0 #
- Consolidate
FrontendServerDdcStrategyProviderandFrontendServerRequireStrategyProviderunder a shared parent class. - #2517 - Remove
build_daemon_ddc_and_canary_evaluate_test. - 2512 - Replace deprecated JS code
this.__proto__withObject.getPrototypeOf(this). - #2500 - Migrate injected client code to
package:web. - #2491 - Deprecated MetadataProvider's, CompilerOptions', SdkConfiguration's & SdkLayout's soundNullSafety. - #2427
- Add load strategy and an unimplemented hot restart strategy for DDC library bundle format.
- Added
useModuleNameoption toMetadataProviderto determine whether or not to use the providednamein aModuleMetadata. Metadata provided by DDC when using the library bundle format does not provide a useful bundle name. - Migrate to
package:webv1.1.0. - Added support for some debugging APIs with the DDC library bundle format. - #2488, #2534
- Update
package:vm_serviceto '>=14.2.4 <16.0.0'. - Update
package:vm_service_interfaceto '2.0.1'.
24.1.0 #
- Fix bug where debugging clients are not aware of service extensions when connecting to a new web app. - #2388
- Respect the value of
pause_isolates_on_startduring page-refreshes. - #2431 - Fix issue where DAP clients wouldn't resume after a restart. - #2441
- Add implementation for the VM Service's
getFlagListAPI. - #2438 - Hide more variables from the local scope when debugging. These variables were synthetically added by the compiler to support late local variables and don't appear in the original source code. - #2445
- Spawn DDS in a separate process using
dart development-serviceinstead of launching frompackage:dds. - #2466 - Update package
web_socket_channel: '>=2.2.0 <4.0.0'. - Require Dart
^3.4 - Prepare to update
package:vm_service_interfaceconstraint to2.0.0.
24.0.0 #
- Implement
setFlagwhen it is called withpause_isolates_on_start. - #2373 - Do not persist breakpoints across hot restarts or page reloads. - #2371
- If
pause_isolates_on_startistrue, wait forresumeto run the app'smainmethod. - #2378 - Fix bug where setting breakpoints in a project using macros would fail. - #2403
- Make stack trace calculation resilient against one frame throwing an error. - #2408
Breaking changes
- Rename
dart_library.jstoddc_module_loader.jsto match SDK naming changes. - #2360
23.3.0 #
23.2.0 #
23.0.0 #
- Restructure
LoadStrategyto provide build settings. - #2270 - Add
FrontendServerLegacyStrategyProviderand update bootstrap generation logic forLegacyStrategy- #2285 - Tolerate failures to detect a Dart execution context. - #2286
- Fix a null cast error when debugging a
Classfrom VS Code. - #2303 - Update
package:vm_serviceconstraint to^14.0.0. - #2307 - Update
package:vm_service_interfaceconstraint to1.0.1. - #2307
22.0.0 #
21.0.0 #
20.0.0 #
- Require clients to specify the
basePathonAssetReader. - #2160 - Update SDK constraint to
>=3.1.0-254.0.dev <4.0.0. - #2169 - Require min
build_web_compilersversion4.0.4- #2171 - Switch to using new debugging API from DDC to support new type system. - #2159
- Fix Flutter crash when calling
resumewhen app is not paused. - #2188 - Update file dependency to
7.0.0.
19.0.1 #
- Do not show async frame errors on evaluation. - #2073
- Refactor code for presenting record instances. - #2074
- Display record types concisely. - #2070
- Display type objects concisely. - #2103
- Support using scope in
ChromeProxyService.evaluateInFrame. - #2122 - Check for new events more often in batched stream. - #2123
- Map Chrome error on
resumeto the same error returned by the Dart VM. - #2133 - VM service API methods throw type
RPCError, same as the Dart VM. - #2144
19.0.0 #
18.0.2 #
18.0.1 #
18.0.0 #
- Cleanup
getObjectcode for lists and maps.- Now works with offset
0andnullcount. - Fix failures on edge cases.
- Now works with offset
- Support records:
- Update SDK constraint to
>=3.0.0-188.0.dev <4.0.0. - Update
package:vm_serviceconstraint to>=10.1.2 <12.0.0. - Update
package:ddsconstraint to^2.7.1. - Fill
BoundField.namefor records. - Display records as a container of fields.
- Update SDK constraint to
- Remove test-only code from
sdk_configuration.dart. - Move shared test-only code to a new
test_commonpackage. - Convert unnecessary async code to sync.
- Allow empty scopes in expression evaluation in a frame.
Breaking changes
- Require
sdkConfigurationProviderinExpressionCompilerServiceconstructor. - Change DWDS parameter
isFlutterAppfrom typebool?to typeFuture<bool> Function()?.
17.0.0 #
- Include debug information in the event sent from the injected client to the Dart Debug Extension notifying that the Dart app is ready.
- Fix null cast error on expression evaluations after dwds fails to find class metadata.
- Include the entire exception description up to the stacktrace in
mapExceptionStackTrace. - Allow enabling experiments in the expression compiler service.
- Pre-warm expression compiler cache to speed up Flutter Inspector loading.
- Display full error on failure to start DDS.
- Fix crash on processing DevTools event when starting DevTools from DevTools uri.
- Prepare or Dart 3 alpha breaking changes:
- Move weak null safety tests to special branch of
build_web_compilers. - Do not pass
--(no)-sound-null-safetyflag to build daemon.
- Move weak null safety tests to special branch of
- Add back
ChromeProxyService.setExceptionPauseMode()without override. - Make hot restart atomic to prevent races on simultaneous execution.
- Return error on expression evaluation if expression evaluator stopped.
- Update SDK constraint to
>=3.0.0-134.0.dev <4.0.0. - Update
package:vm_serviceconstraint to>=10.1.0 <12.0.0. - Fix expression compiler throwing when weak SDK summary is not found.
Breaking changes
- Include an optional param to
Dwds.startto indicate whether it is running internally or externally. - Include an optional param to
Dwds.startto indicate whether it a Flutter app or not. - Remove
sdkConfigurationProviderparameter fromDwds.start. - Remove deprecated
ChromeProxyService.setExceptionPauseMode(). - Support dart 3.0-alpha breaking changes:
- Generate missing SDK assets for tests.
- Enable frontend server null safe tests.
- Update
build_web_compilersconstraint to^4.0.0. - Update
build_runnerconstraint to^2.4.0. - Support changes in the SDK layout for dart 3.0.
16.0.1 #
- Allow the following API to return
nulland add error handling:LoadStrategy.serverPathForModuleLoadStrategy.sourceMapPathForModule
- Expression evaluation performance improvement:
- Batch
ChromeProxyService.evaluate()requests that are close in time and are executed in the same library and scope.
- Batch
- Update
package:fileversion to6.13or greater to handle https://github.com/dart-lang/sdk/issues/49647.
16.0.0 #
- Fix a hang and report errors on hot reload exceptions from the injected client.
- Remove
AppInspector.evaluatecode that has been replaced by expression evaluation using a compiler in all scenarios. - Fix a bug where evaluation would fail with more than one parameter in the scope.
- Remove showing un-captured values from the stack during evaluation.
- Refactor code to break most circular dependencies between files.
- Migrate
package:dwdsto null safety. - Make
ChromeProxyService.getStackwait for the debugger to perform initial resume operation. This avoids race conditions on isolate start. - Make server paths match directory structure
- Allows correct relative source map paths resolution.
- Add
PackageUriMapperclass to allow mapping uris to server paths.
- Update the min SDK constraint to 2.18.0.
- Make DartUri work for
google3:uris.
Breaking changes
- Remove no longer used
ExpressionCompilerService.handler. - Remove
assetHandlerparameter fromExpressionCompilerServiceconstructor. - Add
packageUriMapperparameter to the constructor ofFrontendServerRequireStrategyProvider.
15.0.0 #
- Port some
dwdsfiles to null safety. - Fix failing
frontend_server_evaluatetests. - Prevent
flutter_toolscrash when the Dart execution context cannot be found. - Update method signature of
lookupResolvedPackageUris.
14.0.3 #
- Make data types null safe.
- Update
package:vm_serviceto 8.3.0. - Convert JavaScript stack traces in uncaught exceptions to Dart stack traces.
- Fix failure to set breakpoints on windows with a base change in index.html.
- Add the
setIsolatePauseModemethod to Chrome Proxy Service. - Batch extension
Debugger.scriptParsedevents and send batches every 1000ms to the server. - Move
batched_stream.dartinto shared utilities. - Update the method signature for
lookupResolvedPackageUris.
14.0.2 #
- Update the min SDK constraint to 2.17.0.
14.0.1 #
- Add
libraryFiltersoptional parameter to the vm service implementation ofgetSourceReport. - Update temp variable detection heuristics so internal JS type objects do not show in the debugger.
14.0.0 #
- Add column information to breakpoints to allow precise breakpoint placement.
- Split SDK validation methods to allow validation of separate components.
- Remove dependency on
package:_fe_analyzer_shared. Note: this removes current incomplete support for resolvingdart:uris. - Fix issues discovered when using flutter tools with web server device:
- Remove
dart:web_sqlfrom the list of SDK libraries as it is no longer used. - Fix crash when using flutter tools with web server device.
- Remove clearing all scripts on page load for extension debugger.
- Remove
- Fix breakpoints not hitting after changing a base in index.html.
- Find best locations for call frames, breakpoints, or expression evaluation.
- Close the SSE connection when a DebugExtension.detached event is received.
- Fix issues discovered when using legacy module system, debug extension, and
JIT modules:
- Improve step-into times by not stepping into library loading code.
- Fix incorrect skip lists due to unsorted locations.
- Fix memory leak in extension debugger by removing stale script IDs.
- Allow mapping JS locations to Dart locations matching other JS lines, to match the behavior of Chrome DevTools.
- Fix expression evaluation failure if debugger is stopped in the middle of a variable definition.
Breaking changes:
- Add
basePathparameter toFrontendServerRequireStrategy. - Add
loadLibrariesModulegetter toLoadStrategyinterface.
13.1.0 #
- Update _fe_analyzer_shared to version ^38.0.0.
13.0.0 #
- Change wording of paused overlay from "Paused in Dart DevTools" to "Paused"
- Allow sending back the Dart DevTools URL from DWDS instead of launching Dart DevTools, to support embedding Dart DevTools in Chrome DevTools.
- Temporarily disable the paused in debugger overlay.
- Add
SdkConfigurationandSdkConfigurationProviderclasses to allow for lazily created SDK configurations. - Fix an issue in reporting DevTools stats where the DevTools load time was not always recorded.
- Add an
idequery parameter to the Dart DevTools URL for analytics. - Fix a race where injected client crashed on events send just before hot restart.
- Remove verbose printing on receiving DevTools events.
- Update
vm_serviceversion to^8.2.0. - Migrate .packages to package_config.json.
- Update error message on expression evaluation using unloaded libraries.
- Add
screenfield to theDebuggerReadyevent. - Report
DebuggerReadyevents for DevTools embedded into Chrome Devtools. - Fix missing
CallFrame.urlafter update to Chrome 100.
Breaking changes:
Dwds.startandExpressionCompilerServicenow takesdkConfigurationProviderargument instead of separate SDK-related file paths.
12.1.0 #
- Update _fe_analyzer_shared to version ^34.0.0.
12.0.0 #
- Implement
lookupResolvedPackageUrisandlookupPackageUrisvm service API. - Update
vm_serviceversion to^8.1.0. - Make
ExpressionCompilerServiceinfer location oflibraries.jsonfromsdkDirparameter. - Show an alert in the Dart Debug Extension for a multi-app scenario.
- Fix a bug where
dartEmitDebugEventswas set as aStringinstead ofboolin the injected client. - Emit a warning instead of crashing on missing
libraries.json. - Remove dead code for reading
'dart.developer.registerExtension'and'dart.developer.postEvent'events from the chrome console. These messages haven't been written to the console since dwds v11.1.0 and Dart SDK v2.14.0. - Batch debug events sent from injected client to dwds to relieve network load.
- Update
_fe_analyzer_sharedversion to33.0.0 - Update the Dart minimum SDK to
>=2.16.0.
Breaking changes:
- Add
sdkDirandlibrariesPatharguments toDwds.startto help file resolution for sdk uris. - Add
emitDebugEventsargument toDwds.startto suppress emitting debug events from the injected client. - Replace
sdkRootparameter bysdkDirinExpressionCompilerService. - Adds an additional parameter to launch Dart DevTools in the same window as the connected Dart app.
11.5.1 #
- Update SDK constraint to
>=2.15.0 <3.0.0.
11.5.0 #
-
Support hot restart in a multi-app scenario with legacy modules.
- Rename
$dartHotRestartin the injected client to$dartHotRestartDwds. - Make
$dartHotRestartDwdstake arunId. - No change in behavior for single applications.
- For a multi-app scenario using legacy modules, this will make all sub-apps
with the same
runIdrestart at the same time once.
Note that multi-app scenario is currently only supported for legacy modules, used by DDR, and is not yet supported for amd modules that are used by flutter tools and webdev.
- Rename
-
Fix chrome detection in iPhone emulation mode in chrome or edge browsers.
-
Reliably find unused port for extension backend http service.
-
Ignore offset / count parameters in getObject if the object has no length.
-
Include static member information for classes.
11.4.0 #
- Fix duplicated scripts returned by
VmService.getScriptsAPI. - Handle and log http request serving errors.
- Encode extension url asynchronously.
- Use default constant port for debug service.
- If we fail binding to the port, fall back to previous strategy of finding unbound ports.
- Add metrics measuring
- DevTools Initial Page Load time
- Various VM API
- Hot restart
- Http request handling exceptions
- Only return scripts included in the library with Library object.
- Add
ext.dwds.sendEventservice extension to dwds so other tools can send events to the debugger. Event format:
Currently supported event values:{ 'type': '<event type>', 'payload': { 'screen: '<screen name>', 'action: '<action name>' } }{ 'type: 'DevtoolsEvent', 'payload': { 'screen': 'debugger', 'action': 'pageReady' } }
11.3.0 #
- Update SDK constraint to
>=2.14.0 <3.0.0 - Depend on
vm_serviceversion7.3.0.
11.2.3 #
- Fix race causing intermittent
Aww, snaperrors on starting debugger with multiple breakpoints in source. - Fix needing chrome to be focus in order to wait for the isolate to exit on hot restart.
11.2.2 #
- Depend on
ddsversion2.1.1. - Depend on
vm_serviceversion7.2.0.
11.2.1 #
- Recover from used port errors when starting debug service.
- Update min SDK constraint to
2.13.0.
11.2.0 #
- Throw
SentinelExceptioninstead ofRPCErroron vm service API on unrecognized isolate. - Throw
RPCErroringetStackif the application is not paused. - Recognize
dart:uilibrary when debugging flutter apps. - Fix hang on hot restart when the application has a breakpoint.
- Fix out of memory issue during sending debug event notifications.
11.1.2 #
- Return empty library from
ChromeProxyService.getObjectfor libraries present in metadata but not loaded at runtime. - Log failures to load kernel during expression evaluation.
- Show lowered final fields using their original dart names.
- Limit simultaneous connections to asset server to prevent broken sockets.
- Fix hangs in hot restart.
- Initial support for passing scope to
ChromeProxyService.evaluate. - Require
build_web_compilersversion3.0.0so current version of dwds could be used with SDK stable2.13.xversions.
11.1.1 #
- Update versions of
package:sse,package:vm_service,package:dds.
11.1.0 #
- Add global functions to the injected client for
dart.developer.postEventanddart.developer.registerExtension. - Register new service extension
ext.dwds.emitEventso clients can emit events. This is intended to be used for analytics.
11.0.2 #
- Implement
_flutter.listViewsextension method in dwds vm client.
11.0.1 #
- Make adding and removing breakpoints match VM behavior:
- Allow adding existing breakpoints.
- Throw
RPCErrorwhen removing non-existent breakpoints.
11.0.0 #
- Do not send
kServiceExtensionAddedevents to subscribers on the terminating isolate during hot restart. - Support
vm_serviceversion6.2.0. - Fix missing sdk libraries in
getObject()calls. - Fix incorrect
rootLibreturned byChromeProxyService. - Fix not working breakpoints in library part files.
- Fix data race in calculating locations for a module.
- Fix uninitialized isolate after hot restart.
- Fix intermittent failure caused by evaluation not waiting for dependencies to be updated.
- The injected client now posts a top level event when the Dart application is loaded. This event is intended to be consumed by the Dart Debug Extension.
Breaking changes:
Dwds.startno longer supports automatically injecting a devtools server. AdevtoolsLaunchercallback must be provided to support launching devtools.
10.0.1 #
- Support
webkit_inspection_protocolversion^1.0.0.
10.0.0 #
- Support
VMService.evaluateusing expression compiler. - Update min sdk constraint to
>=2.13.0-144.0.dev. - Throw
RPCErroron evaluation if the program is not paused. - Record
ErrorRefreturned by evaluation in analytics.
Breaking changes:
- Change
ExpressionCompiler.initializemethod to include module format. - Add
LoadStrategy.moduleFormatto be used for communicating current module format to the expression compiler.
9.1.0 #
- Support authentication endpoint for the Dart Debug Extension.
- Support using WebSockets for the injected client by passing
useSseForInjectedClient: falsetoDwds.start(). Unlike SSE, WebSockets do not currently support keepAlives here (beyond the standard WebSocket pings to keep the socket alive).
9.0.0 #
- Fix an issue where relative worker paths provided to the
ExpressionCompilerServicewould cause a crash. - Fix an issue where the injected client connection could be lost while the application is paused.
- Support keep-alive for debug service connections.
- Depend on the latest
package:sse. - Filter out DDC temporary variables from the variable inspection view.
- Add
DwdsEvents around stepping and evaluation. - Send an event to the Dart Debug Extension that contains VM service protocol URI.
- Depend on
package:vm_serviceversion6.1.0+1. - Update the
keepAliveconfigs to prevent accidental reuse of a connection after stopping a debug session. - Support disabling the launching of Dart DevTools through
Alt + dwithenableDevtoolsLaunch. - Opt all dart files out of null safety for min SDK constraint update.
Breaking changes:
LoadStrategys now require amoduleInfoForEntrypoint.
8.0.3 #
- Fix an issue where failed hot restarts would hang indefinitely.
8.0.2 #
- Change
ExpressionCompilerto acceptFutureOr<int>port configuration. - Depend on
package:vm_serviceversion6.0.1-nullsafety.1.
8.0.1 #
- Support null safe versions of
package:crypto,package:uuidandpackage:webdriver.
8.0.0 #
- Improve logging around execution contexts.
- Remove the expression compilation dependency update from the create isolate critical path.
- Expose new event stream for future use with analytics.
- Update
ExpressionCompilerto include newinitializemethod which has a parameter for the null safety mode. - Update
ExpressionCompilerServiceto change how it is instantiated and implement the newinitializemethod. - Provide summary module paths to the expression compiler
- Depend on
package:vm_serviceversion6.0.1-nullsafety.0.
Breaking changes:
- Change
ExpressionCompiler.updateDependenciesmethod to include module summary paths
7.1.1 #
- Properly handle
requireJSerrors during hot restarts. - Fix an issue where Dart frame computation could result in a stack overflow for highly nested calls.
- Fix an issue where calling add breakpoint in quick succession would corrupt the internal state.
- Fix expression evaluation failure inside blocks.
- Now log the encoded URI of the debug service to both the terminal and application console.
- No longer blacklist the Dart SDK as the
skipListssupport serves the same purpose. - Fix an issue where running webdev with expression evaluation enabled would
fail to find
libraries.jsonfile and emit severe error.
7.1.0 #
- Fix a potential null issue while resuming.
- Depend on the latest
package:vm_service. - Fix crash in expression evaluation on null isolate.
- Fix incorrect file name detection for full kernel files.
- Add
ExpressionCompilerService.startWithPlatformAPI to enable running expression compiler worker from a given location. - Support Chrome
skipListsto improve stepping performance. - Export
AbsoluteImportUriException. - Depend on the latest
package:vm_servicewhich supports a newlimitparameter togetStack.
7.0.2 #
- Depend on the latest
package:sse. - Add more verbose logging around
hotRestart,fullReloadand entrypoint injection.
7.0.1 #
- Fix an issue where we attempted to find locations for the special
dart_librarymodule.
7.0.0 #
- Add support for the Dart Development Service (DDS). Introduces 'single client mode', which prevents additional direct connections to DWDS when DDS is connected.
- Update metadata reader version to
2.0.0. Support reading metadata versions2.0.0and1.0.0. - Support custom hosts and HTTPs traffic in a
ProxyServerAssetReader. - Remove heuristics from require strategies and use metadata to look up module
paths.
- Fix issue where upgrading
build_web_compilerswould cause missing module assets (JavaScript code and source maps).
- Fix issue where upgrading
- Fix issue where open http connections prevent the process for exiting.
- Add
ExpressionCompilationServiceclass that runs ddc in worker mode to support expression evaluation for clients that use build systems to build the code. - Require at least
devtoolsanddevtools_serverversion0.9.2. - Require at least
ddsversion1.4.1. - Require at least
build_web_compilersversion2.12.0. - Update min sdk constraint to
>=2.10.0. - Update
MetadataProviderto throw anAbsoluteImportUriExceptionwhen absolute file paths are used in an import uri.
Breaking changes:
- Change
ExpressionCompilerto require a newupdateDependenciesmethod. - Update a number of
LoadStrategyAPIs to remove heuristics and rely on theMetadataProvider. - No longer require a
LogWriterand correspondingverboseargument but instead properly usepackage:logger. FrontendServerRequireStrategyProvidernow requires adigestProvider.
6.0.0 #
- Depend on the latest
package:devtoolsandpackage:devtools_server. - Support using WebSockets for the debug backend by passing
useSseForDebugBackend: falsetoDwds.start() - Ensure we run main on a hot restart request even if no modules were updated.
- Allow reading metadata generated by
dev_compilerfrom file to supply module information toDwds. - Hide JavaScript type errors when hovering over text in the debugger.
- Fix an issue where reusing a connection could cause a null error.
- Improve the heuristic which filters JS scopes for debugging needs.
Breaking Changes:
- Require access to the
.ddc_merged_metadatafile. - Remove deprecated parameter
restoreBreakpointsas breakpoints are now set by regex URL and Chrome automatically reestablishes them.
5.0.0 #
- Have unimplemented VM service protocol methods return the RPC error
'MethodNotFound' /
-32601. - Fix an issue where the application main function was called before a hot restart completed.
- Breaking change
AssetReadernow requires ametadataContentsimplementation.
4.0.1 #
- Fixed issue where
getSupportedProtocolswould return the wrong protocol.
4.0.0 #
- Pin the
package:vm_serviceversion to prevent unintended breaks.
3.1.3 #
- Fix an issue where the injected client served under
httpsassumed the corresponding SSE handler was also underhttps.
3.1.2 #
- Gracefully handle multiple injected clients on a single page.
- Update to the latest
package:vm_serviceand use more RPCError error codes on call failures. - Update the
require_restarterto rerun main after a hot restart to align with the legacy strategy. We therefore no longer send aRunRequestafter a hot restart. - Compute only the required top frame for a paused event.
- Change
streamListento return anRPCError/ error code-32601for streams that are not handled. - Populate information about async Dart frames.
- Populate the
exceptionfield in debugger pause event when we break as a result of an exception. - Prompt users to install the Dart Debug Extension if local debugging does not work.
- Allow for the injected client to run with CSP enforced.
- Implement the
getMemoryUsage()call. - Fix an issue where the injected client could cause a mixed content error.
3.1.1 #
- Change the reported names for isolates to be more terse.
- Implemented the 'PossibleBreakpoints' report kind for
getSourceReport(). - Change the returned errors for the unimplemented
getClassListandreloadSourcesmethods to -32601 ('method does not exist / is not available'). - Do not include native JavaScript objects on stack returned from the debugger.
3.1.0 #
- Support Chromium based Edge.
- Depend on latest
package:sseversion3.5.0. - Bypass connection keep-alives when shutting down to avoid delaying process shutdown.
- Fix an issue where the isolate would incorrectly be destroyed after connection reuse.
3.0.3 #
- Support the latest version of
package:shelf_packages_handler. - Throw a more useful error if during a hot restart there is no active isolate.
- Fix a race condition in which loading module metadata could cause a crash.
- Correct scope detection for expression evaluation
- Silence verbose and recoverable exceptions during expression evaluation
- Return errors from ChromeProxyService.evaluateInFrame as ErrorRef so they are not shown when hovering over source in the IDE
3.0.2 #
- Fix an issue in JS to Dart location translation in
ExpressionEvaluator. JS location returned from Chrome is 0-based, adjusted to 1-based.
3.0.1 #
- Drop dependency on
package_resolverand usepackage_configinstead. - Bump min sdk constraint to
>=2.7.0.
3.0.0 #
- Depend on the latest
package:vm_serviceversion4.0.0.
Breaking Changes:
- Delegate to the
LoadStrategyfor module information:- moduleId -> serverPath
- serverPath -> moduleId
2.0.1 #
- Fix an issue where we would return prematurely during a
hotRestart. - Fix an issue where we would incorrectly fail if a
hotRestarthad to fall back to a full reload.
2.0.0 #
- Depend on the latest
package:vm_serviceversion3.0.0+1.
Breaking Changes:
- Now require a
LoadStrategytoDwds.start. This package defines two compatible load strategies,RequireStrategyand `LegacyStrategy. Dwds.startfunction signature has been changed to accept one more parameter of new interface typeExpressionCompilerto support expression evaluation- Provide an implementation of the
RequireStrategysuitable for use withpackage:build_runner. - Simplify hot reload logic and no longer provide module level hooks.
1.0.1 #
- Make the
rootoptional for theProxyServerAssetReader.
1.0.0 #
- Fix an issue where files imported with relative paths containing
../may fail to resolve breakpoint locations. - Remove dependency on
package:build_daemon. - Add
FrontendServerAssetReaderfor use with Frontend Server builds. - Depend on latest
package:ssefor handling client reconnects transparently on the server. - Fix an issue where a failure to initiate debugging through the Dart Debug Extension would cause your development server to crash.
- Fix an issue where trying to launch DevTools in a non-debug enabled Chrome instance could crash your development server.
Breaking Changes:
- No longer use the
BuildResultabstraction frompackage:build_daemonbut require a similar abstraction provided by this package. AssetHandlerhas been renamed toAssetReaderand no longer provides a generic resource handler. Specific methods for the required resources are now clearly defined. The new abstraction is now consumed throughdwds.dart.BuildRunnerAssetHandlerhas been renamed toProxyServerAssetReaderand is now consumed throughdwds.dart.
0.9.0 #
- Expose
middlewareandhandler.
Breaking Change: The AssetHandler will not automatically be added the DWDS
handler cascade. You must now also add the middleware to your server's
pipeline.
0.8.5 #
- Always bind to
localhostfor the local debug workflow. - Fix an issue where breakpoints could cause DevTools to hang.
0.8.4 #
- Support using WebSockets for the debug (VM Service) proxy by passing
useSseForDebugProxy: falsetoDwds.start()
0.8.3 #
- Support nesting Dart applications in iframes.
0.8.2 #
- Add the ability to receive events from the extension in batches.
0.8.1 #
- Depend on the latest
package:built_value.
0.8.0 #
- Add temporary support for restoring breakpoints. Eventually the Dart VM protocol will clearly define how breakpoints should be restored.
- Depend on latest
package:sseto get retry logic. - Don't spawn DevTools if
serveDevToolsis false. UrlEncoderwill also encode the base URI used by the injected client / Dart Debug Extension. ** Breaking Change **serveDevToolsis not automatically considered true ifenableDebugExtensionis true.
0.7.9 #
- Properly wait for hot reload to complete with the legacy module system.
- Fix issue with
getObjectfor a class with a generic type.
0.7.8 #
- Support optional argument
urlEncoderthat is used to encode remote URLs for use with the Dart Debug Extension.
0.7.7 #
- Handle getObject for primitives properly.
- Properly black box scripts if query parameters are provided.
0.7.6 #
- Fix issue with source map logic for the legacy module system.
- Allow setting breakpoints multiple times and just return the old breakpoint.
- Fix a bug with Maps that contain lists of simple types.
0.7.5 #
- The injected client's connection is now based off the request URI.
- Fix an issue where resuming while paused at the start would cause an error.
- Expose the
ChromeDebugExceptionclass for error handling purposes. - Expose the
AppConnectionExceptionclass for error handling purposes. - DevTools will now launch immediately and lazily sets up necessary state.
- Properly set
pauseBreakpointsonkPauseBreakpointevents. - Greatly improves handling of List, Map and IdentityMap instances.
- Lazily parse source maps to improve performance for large applications.
0.7.4 #
- Deobfuscate DDC extension method stack traces.
- Properly get all libraries with the
legacymodule system.
0.7.3 #
- Correctly set
Isolatestate if debugging is initiated after the application has already started.
0.7.2 #
- Account for root directory path when using
package:URIs withDartUri.
0.7.1 #
- Fix a bug where we would try to create a new isolate even for a failed hot restart. This created a race condition that would lead to a crash.
- Don't attempt to write a vm service request to a closed connection.
- Instead we log a warning with the attempted request message and return.
- Make all
closemethods more robust by allowing them to be called more than once and returning the cached future from previous calls. - Add explicit handling of app not loaded errors when handling chrome pause events.
0.7.0 #
DWDS.startnow requires anAssetHandlerinstead ofapplicationPort,assetServerPortandapplicationTarget.- Expose a
BuildRunnerAssetHandlerwhich proxies request to the asset server running within build runner. - Support the Legacy Module strategy through the injected client.
- Support DDK sourcemap URIs.
- Update SDK dependency to minimum of 2.5.0.
Bug Fixes: #
- Fix handling of chrome pause events when we have no isolate loaded yet.
0.6.2 #
- Capture any errors that happen when handling SSE requests in the DevHandler
and return an error response to the client code.
- Log error responses in the client to the console.
- Handle empty Chrome exception descriptions.
0.6.1 #
- Add
isolateReftoIsolatespauseEvents. - Depend on the latest
package:vm_service. - Implements
invoke. - Adds support for VM object IDs for things that don't have Chrome object Ids (e.g. int, double, bool, null).
0.6.0 #
- Add new required parameter
enableDebuggingtoDwds.start. Iffalseis provided, debug services will not run. However, reload logic will continue to work with the injected client. - Handle injected client SSE errors.
- Handle a race condition when the browser is refreshed in the middle of setting up the debug services.
0.5.5 #
- Properly set the
pauseEventon theIsolate. - Fix a race condition with Hot Restarts where the Isolate was not created in time for pause events.
0.5.4 #
- Fix issue where certain required fields of VM service protocol objects were null.
- Properly set the
exceptionPauseModeon theIsolate. - Depend on the latest
DevTools.
0.5.3 #
- Fix issue where certain required fields of VM service protocol objects were null.
0.5.2 #
- Fix issue where certain required fields of VM service protocol objects were null.
- Properly display
Closurenames in the debug view.
0.5.1 #
- Fix an issue where missing source maps would cause a crash. A warning will now be logged to the console instead.
- Depend on the latest
package:webkit_inspection_protocol.
0.5.0 #
- Fix an issue where we source map paths were not normalized.
- Added a check to tests for the variable DWDS_DEBUG_CHROME to run Chrome with a UI rather than headless.
- Catch unhandled errors in
client.jsand recommend using the--no-injected-clientflag for webdev users. - Add support for an SSE connection with Dart DevTools.
- Rename
wsUritourionDebugConnectionto reflect that the uri may not be a websocket. - Depend on latest
package:vm_service.
0.4.0 #
- Move
dataabstractions frompackage:webdevintopackage:dwds. - Move debugging related handlers from
package:webdevintopackage:dwds. - Move injected client from
package:webdevintopackage:dwds. - Create new public entrypoint
dwds.dart. Existing public APIservices.dartis now private.
0.3.3 #
- Add support for
getScriptfor paused isolates. - Add support for
onRequestandonResponselisteners for the vm service.
0.3.2 #
- Add support for
scopeinevaluatecalls.
0.3.1 #
- Improve error reporting for evals, give the full JS eval in the error message so it can be more easily reproduced.
0.3.0 #
- Change the exposed type on DebugService to VmServiceInterface
0.2.1 #
- Support
setExceptionPauseMode.
0.2.0 #
- Added custom tokens to the
wsUrifor increased security.- Treating this as a breaking change because you now must use the
wsUrigetter to get a valid uri for connecting to the service, when previously combining the port and host was sufficient.
- Treating this as a breaking change because you now must use the
0.1.0 #
- Initial version