6.0.0
- Depend on the latest
package:devtools
and package:devtools_server
. - Support using WebSockets for the debug backend by passing
useSseForDebugBackend: false
to Dwds.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 to Dwds
. - 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 a metadataContents
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 under https
.
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 a RunRequest
after a hot restart. - Compute only the required top frame for a paused event.
- Change
streamListen
to return an RPCError
/ 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
and reloadSources
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
version 3.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 use package_config
instead. - Bump min sdk constraint to
>=2.7.0
.
3.0.0
- Depend on the latest
package:vm_service
version 4.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
version 3.0.0+1
.
Breaking Changes:
- Now require a
LoadStrategy
to Dwds.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 type ExpressionCompiler
to support expression evaluation- Provide an implementation of the
RequireStrategy
suitable for use with package:build_runner
. - Simplify hot reload logic and no longer provide module level hooks.
1.0.1
- Make the
root
optional for the ProxyServerAssetReader
.
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 from package:build_daemon
but require a similar abstraction provided by this package. AssetHandler
has been renamed to AssetReader
and no longer provides a generic resource handler. Specific methods for the required resources are now clearly defined. The new abstraction is now consumed through dwds.dart
.BuildRunnerAssetHandler
has been renamed to ProxyServerAssetReader
and is now consumed through dwds.dart
.
0.9.0
- Expose
middleware
and handler
.
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
to Dwds.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 if enableDebugExtension
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
on kPauseBreakpoint
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 with DartUri
.
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 an AssetHandler
instead of applicationPort
, assetServerPort
and applicationTarget
.- 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
to Isolate
s pauseEvent
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
to Dwds.start
. If false
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 the Isolate
. - 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 the Isolate
. - 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
to uri
on DebugConnection
to reflect that the uri may not be a websocket. - Depend on latest
package:vm_service
.
0.4.0
- Move
data
abstractions from package:webdev
into package:dwds
. - Move debugging related handlers from
package:webdev
into package:dwds
. - Move injected client from
package:webdev
into package:dwds
. - Create new public entrypoint
dwds.dart
. Existing public API services.dart
is now private.
0.3.3
- Add support for
getScript
for paused isolates. - Add support for
onRequest
and onResponse
listeners for the vm service.
0.3.2
- Add support for
scope
in evaluate
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.
0.1.0