Fix hot restart and breakpoints races (#1384)

* Fix hot restart and breakpoints races

Multiple breakpoints restored ad the isolate start can cause
the app to crash in chrome, serialize them using a mutex to
prevent the crash.

Hot restart runs main immediately, followed by createIsolate
that restores breakpoints, sometimes too late, causing non-
removable breakpoints and failures in the UI. Make the dwds
run main after createIsolate is done, to make sure breakpoints
are all set before the run.

Hot restart tries to resume the exiting isolate, and checks if
it resumed before that, which causes various races or chrome
requiring to be in focus, depending on the way the check is done.
Remove the check and just catch exception in case the isolate
is already running.

* Use local dwds in webdev, update changelog

* Rebase, update version and build

* Increase timeout for failing tests

* Update frontend_sever_client_test.dart

revert timeout on frontend_server_client tests, it is fixed in another PR.

* Remove no running main on hot restart

* Addressed CR comments
10 files changed
tree: 9a90984f249193553890572a1fcbc143d120f060
  1. .github/
  2. dwds/
  3. example/
  4. fixtures/
  5. frontend_server_client/
  6. frontend_server_common/
  7. tool/
  8. webdev/
  9. .gitattributes
  10. .gitignore
  11. analysis_options.yaml
  12. AUTHORS
  13. CONTRIBUTING.md
  14. mono_repo.yaml
  15. README.md
README.md

Dart

dwds Pub Package

A service that proxies between the Chrome debug protocol and the Dart VM service protocol.

webdev Pub Package

A command-line tool for developing and deploying web applications with Dart.