Fix cancelled HTTP requests showing as Pending in DevTools Network tab (#9685)

## Description

This PR fixes an issue where cancelled HTTP requests appear as "Pending" in the DevTools Network tab.

When a request is aborted (for example using `HttpClientRequest.abort` or Dio cancellation), DevTools keeps the request in a Pending state because no response is received. This change detects such cases and displays the request status as "Cancelled" instead.

### Changes
- Detect cancelled/aborted requests in `HttpRequestData`
- Display "Cancelled" instead of "Pending" in the Network table
- Ensure cancelled requests are no longer treated as `inProgress`
- Prevent duration from remaining `null` for cancelled requests
- Add a regression test to verify the behavior
- Update `CustomPointerScrollView` to use `cacheExtent` so the project compiles with the current Flutter SDK

All existing network tests pass locally.

Fixes: #9593

![build.yaml badge]

If you need help, consider asking for help on [Discord].

[build.yaml badge]: https://github.com/flutter/devtools/actions/workflows/build.yaml/badge.svg
9 files changed
tree: d4527420d87c85197e1cf6130e99f9fa346828f7
  1. .agents/
  2. .gemini/
  3. .github/
  4. .vscode/
  5. _markdown_images/
  6. docs/
  7. packages/
  8. third_party/
  9. tool/
  10. .gitattributes
  11. .gitignore
  12. AGENTS.md
  13. analysis_options.yaml
  14. AUTHORS
  15. BETA_TESTING.md
  16. CLAUDE.md
  17. CODE_OF_CONDUCT.md
  18. CODEOWNERS
  19. CONTRIBUTING.md
  20. DEBUGGING.md
  21. devtools_options.yaml
  22. DOCUMENTATION.md
  23. flutter-candidate.txt
  24. LICENSE
  25. pubspec.lock
  26. pubspec.yaml
  27. README.md
  28. STYLE.md
  29. TESTING.md
  30. 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.