Attempt to reconnect to DTD automatically if the connection drops (#9587)

* Attempt to reconnect to DTD automatically if the connection drops

- Repurposes the property editor "ReconnectingOverlay" as a more general "Connecting Overlay" also for the sidebar.
- If a DTD connection drops, it will be retried up to 5 times (and the new connection sent to the ValueNotifier)
- If the connection fails after all retries, a "Retry" button is shown to allow the user to restart connection attempts again
- The periodic check for the connection being alive is now part of DTDManager instead of only the property editor
- DTDManager now also emits state values so consumers can handle each state differently (rather than just connected/not connected)
- Mock editor for Stager apps now has a "Drop Connection" button to similate DTD connection drops
- Stager apps that use the mock editor now use a real DTDManager (since they connect to real DTD) and can simulate slow and failed connections
- Removed the force refresh for reconnect, and instead just made the `_DtdConnectedScreen` use a `key` so that when the connection changes, the widget gets new state
15 files changed
tree: c3f2928eb73d9ce197bd615fcd68bbc6d65bd66b
  1. .github/
  2. .vscode/
  3. _markdown_images/
  4. docs/
  5. packages/
  6. third_party/
  7. tool/
  8. .gitattributes
  9. .gitignore
  10. analysis_options.yaml
  11. AUTHORS
  12. BETA_TESTING.md
  13. CODE_OF_CONDUCT.md
  14. CODEOWNERS
  15. CONTRIBUTING.md
  16. DEBUGGING.md
  17. devtools_options.yaml
  18. DOCUMENTATION.md
  19. flutter-candidate.txt
  20. GEMINI.md
  21. LICENSE
  22. pubspec.lock
  23. pubspec.yaml
  24. README.md
  25. STYLE.md
  26. TESTING.md
  27. TRIAGE.md
README.md

Dart & Flutter DevTools

Build Status OpenSSF Scorecard

What is this?

Dart & Flutter DevTools is a suite of performance tools for Dart and Flutter.

Getting started

For documentation on installing and trying out DevTools, please see our docs.

Contributing and development

Contributions welcome! See our contributing page for an overview of how to build and contribute to the project.

Terms and Privacy

By using Dart DevTools, you agree to the Google Terms of Service. To understand how we use data collected from this service, see the Google Privacy Policy.