[ DWDS ] Disconnect non-DDS clients when DDS connects (#2671)

The native VM service disconnects all non-DDS clients when DDS connects
in order to keep state consistent. DWDS was never configured to work
this way and, instead, would not let DDS connect if there were already
existing clients.

This is fine most of the time, as DDS is typically the first client, but
in cases where multiple DDS instances attempt to start at once (e.g., a
simultaneous `flutter run` and `flutter attach`), this inconsistency
prevents tools from falling back to using an already connected DDS
instance, as seen in https://github.com/flutter/flutter/issues/171758.

Fixes https://github.com/dart-lang/webdev/issues/2399
7 files changed
tree: 8fddfe7faf7031ade918460c431efd438426dc56
  1. .github/
  2. _analysis_config/
  3. dwds/
  4. example/
  5. fixtures/
  6. frontend_server_client/
  7. frontend_server_common/
  8. test_common/
  9. tool/
  10. webdev/
  11. .gitattributes
  12. .gitignore
  13. AUTHORS
  14. CONTRIBUTING.md
  15. mono_repo.yaml
  16. README.md
README.md

Dart

Packages

PackageDescriptionVersion
dwdsA service that proxies between the Chrome debug protocol and the Dart VM service protocol.pub package
frontend_server_clientClient code to start and interact with the frontend_server compiler from the Dart SDK.pub package
webdevA CLI for Dart web development. Provides an easy and consistent set of features for users and tools to build and deploy web applications with Dart.pub package

Publishing automation

For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.