[DWDS] Don't send PauseInterrupted event during a hot reload (#2695)

Fixes https://github.com/dart-lang/sdk/issues/61560

We rely on a pause within a hot reload to pause execution so that we can reregister breakpoints. However, the existing pause mechanism always sends a PauseInterrupted event, which then triggers the client to think this is a normal pause event and not an internal detail. Instead, we should have the ChromeProxyService signal to the debugger that this is an "internal pause" and therefore it should not send a regular pause event and should use a completer to signal the pause is done.

Tests are refactored and updated to correctly check for the events when reregistering breakpoints. Specifically, it checks no other events besides the expected ones are sent.
6 files changed
tree: e861ac30100b3075824f1dfd6e384391fd1b60db
  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.