dwds 11.0.1 dwds: ^11.0.1 copied to clipboard
A service that proxies between the Chrome debug protocol and the Dart VM service protocol.
11.0.1 #
- Make adding and removing breakpoints match VM behavior:
- Allow adding existing breakpoints.
- Throw
RPCError
when removing non-existent breakpoints.
11.0.0 #
- Do not send
kServiceExtensionAdded
events to subscribers on the terminating isolate during hot restart. - Support
vm_service
version6.2.0
. - Fix missing sdk libraries in
getObject()
calls. - Fix incorrect
rootLib
returned 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.start
no longer supports automatically injecting a devtools server. AdevtoolsLauncher
callback must be provided to support launching devtools.
10.0.1 #
- Support
webkit_inspection_protocol
version^1.0.0
.
10.0.0 #
- Support
VMService.evaluate
using expression compiler. - Update min sdk constraint to
>=2.13.0-144.0.dev
. - Throw
RPCError
on evaluation if the program is not paused. - Record
ErrorRef
returned by evaluation in analytics.
Breaking changes:
- Change
ExpressionCompiler.initialize
method to include module format. - Add
LoadStrategy.moduleFormat
to 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: false
toDwds.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
ExpressionCompilerService
would 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
DwdsEvent
s around stepping and evaluation. - Send an event to the Dart Debug Extension that contains VM service protocol URI.
- Depend on
package:vm_service
version6.1.0+1
. - Update the
keepAlive
configs to prevent accidental reuse of a connection after stopping a debug session. - Support disabling the launching of Dart DevTools through
Alt + d
withenableDevtoolsLaunch
. - Opt all dart files out of null safety for min SDK constraint update.
Breaking changes:
LoadStrategy
s now require amoduleInfoForEntrypoint
.
8.0.3 #
- Fix an issue where failed hot restarts would hang indefinitely.
8.0.2 #
- Change
ExpressionCompiler
to acceptFutureOr<int>
port configuration. - Depend on
package:vm_service
version6.0.1-nullsafety.1
.
8.0.1 #
- Support null safe versions of
package:crypto
,package:uuid
andpackage: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
ExpressionCompiler
to include newinitialize
method which has a parameter for the null safety mode. - Update
ExpressionCompilerService
to change how it is instantiated and implement the newinitialize
method. - Provide summary module paths to the expression compiler
- Depend on
package:vm_service
version6.0.1-nullsafety.0
.
Breaking changes:
- Change
ExpressionCompiler.updateDependencies
method to include module summary paths
7.1.1 #
- Properly handle
requireJS
errors 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
skipLists
support serves the same purpose. - Fix an issue where running webdev with expression evaluation
enabled would fail to find
libraries.json
file 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.startWithPlatform
API to enable running expression compiler worker from a given location. - Support Chrome
skipLists
to improve stepping performance. - Export
AbsoluteImportUriException
. - Depend on the latest
package:vm_service
which supports a newlimit
parameter togetStack
.
7.0.2 #
- Depend on the latest
pacakge:sse
. - Add more verbose logging around
hotRestart
,fullReload
and entrypoint injection.
7.0.1 #
- Fix an issue where we attempted to find locations for the special
dart_library
module.
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.0
and1.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_compilers
would 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
ExpressionCompilationService
class that runs ddc in worker mode to support expression evaluation for clients that use build systems to build the code. - Require at least
devtools
anddevtools_server
version0.9.2
. - Require at least
dds
version1.4.1
. - Require at least
build_web_compilers
version2.12.0
. - Update min sdk constraint to
>=2.10.0
. - Update
MetadataProvider
to throw anAbsoluteImportUriException
when absolute file paths are used in an import uri.
Breaking changes:
- Change
ExpressionCompiler
to require a newupdateDependencies
method. - Update a number of
LoadStrategy
APIs to remove heuristics and rely on theMetadataProvider
. - No longer require a
LogWriter
and correspondingverbose
arguement but instead properly usepackage:logger
. FrontendServerRequireStrategyProvider
now requires adigestProvider
.
6.0.0 #
- Depend on the latest
package:devtools
andpackage:devtools_server
. - Support using WebSockets for the debug backend by passing
useSseForDebugBackend: false
toDwds.start()
- Ensure we run main on a hot restart request even if no modules were updated.
- Allow reading metadata generated by
dev_compiler
from 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_metadata
file. - Remove deprecated parameter
restoreBreakpoints
as 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
AssetReader
now requires ametadataContents
implementation.
4.0.1 #
- Fixed issue where
getSupportedProtocols
would return the wrong protocol.
4.0.0 #
- Pin the
package:vm_service
version to prevent unintended breaks.
3.1.3 #
- Fix an issue where the injected client served under
https
assumed 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_service
and use more RPCError error codes on call failures. - Update the
require_restarter
to rerun main after a hot restart to align with the legacy strategy. We therefore no longer send aRunRequest
after a hot restart. - Compute only the required top frame for a paused event.
- Change
streamListen
to return anRPCError
/ error code-32601
for streams that are not handled. - Populate information about async Dart frames.
- Populate the
exception
field 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
getClassList
andreloadSources
methods to -32601 ('method does not exist / is not available'). - Do not include native JavaScipt objects on stack returned from the debugger.
3.1.0 #
- Support Chromium based Edge.
- Depend on latest
package:sse
version3.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_resolver
and usepackage_config
instead. - Bump min sdk constraint to
>=2.7.0
.
3.0.0 #
- Depend on the latest
package:vm_service
version4.0.0
.
Breaking Changes:
- Delegate to the
LoadStrategy
for 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
hotRestart
had to fall back to a full reload.
2.0.0 #
- Depend on the latest
package:vm_service
version3.0.0+1
.
Breaking Changes:
- Now require a
LoadStrategy
toDwds.start
. This package defines two compatible load strategies,RequireStrategy
and `LegacyStrategy. Dwds.start
function signature has been changed to accept one more parameter of new interface typeExpressionCompiler
to support expression evaluation- Provide an implementation of the
RequireStrategy
suitable for use withpackage:build_runner
. - Simplify hot reload logic and no longer provide module level hooks.
1.0.1 #
- Make the
root
optional 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
FrontendServerAssetReader
for use with Frontend Server builds. - Depend on latest
package:sse
for 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
BuildResult
abstraction frompackage:build_daemon
but require a similar abstraction provided by this package. AssetHandler
has been renamed toAssetReader
and 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
.BuildRunnerAssetHandler
has been renamed toProxyServerAssetReader
and is now consumed throughdwds.dart
.
0.9.0 #
- Expose
middleware
andhandler
.
Breaking Change: The AssetHandler
will not automatically be added the
DWDS handler cascade. You must now also add the middelware
to your server's
pipeline.
0.8.5 #
- Always bind to
localhost
for 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: false
toDwds.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:sse
to get retry logic. - Don't spawn DevTools if
serveDevTools
is false. UrlEncoder
will also encode the base URI used by the injected client / Dart Debug Extension. ** Breaking Change **serveDevTools
is not automatically considered true ifenableDebugExtension
is true.
0.7.9 #
- Properly wait for hot reload to complete with the legacy module system.
- Fix issue with
getObject
for a class with a generic type.
0.7.8 #
- Support optional argument
urlEncoder
that 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
ChromeDebugException
class for error handling purposes. - Expose the
AppConnectionException
class for error handling purposes. - DevTools will now launch immediately and lazily sets up necessary state.
- Properly set
pauseBreakpoints
onkPauseBreakpoint
events. - 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
legacy
module system.
0.7.3 #
- Correctly set
Isolate
state 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
close
methods 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.start
now requires anAssetHandler
instead ofapplicationPort
,assetServerPort
andapplicationTarget
.- Expose a
BuildRunnerAssetHandler
which 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
isolateRef
toIsolate
spauseEvent
s. - 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
enableDebugging
toDwds.start
. Iffalse
is 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
pauseEvent
on 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
exceptionPauseMode
on 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
Closure
names 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.js
and recommend using the--no-injected-client
flag for webdev users. - Add support for an SSE connection with Dart DevTools.
- Rename
wsUri
touri
onDebugConnection
to reflect that the uri may not be a websocket. - Depend on latest
package:vm_service
.
0.4.0 #
- Move
data
abstractions frompackage:webdev
intopackage:dwds
. - Move debugging related handlers from
package:webdev
intopackage:dwds
. - Move injected client from
package:webdev
intopackage:dwds
. - Create new public entrypoint
dwds.dart
. Existing public APIservices.dart
is now private.
0.3.3 #
- Add support for
getScript
for paused isolates. - Add support for
onRequest
andonResponse
listeners for the vm service.
0.3.2 #
- Add support for
scope
inevaluate
calls.
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
wsUri
for increased security.- Treating this as a breaking change because you now must use the
wsUri
getter 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