Fix failing breakpoints in library part files and data race in calculating locations (#1296)

* Fix failing breakpoints in library part files and data race

- Record library part paths in debugger tables properly.
  Make sure that we have module and library recorded for
  part scripts, in `MetadataProvider` and `Modules`,
- Calculate locations for module atomically in `Locations`.
  This fixes intermittent 'Oh, snap!' in chrome due to a
  data race in location computation if several breakpoints
  are set in the same dart library.

- Update test fixtures to include part files.
- Add tests for frontend server and build runner scenarios.

Closes: https://github.com/dart-lang/webdev/issues/1271

* Addressed CR comments

* Format and build after rebase
14 files changed
tree: 21ce9c80a73427363094eecf86d910a2ed637894
  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.