reportHttpClientLoadingFailed method

void reportHttpClientLoadingFailed({
  1. required String requestId,
  2. required double contextId,
  3. required Uri uri,
  4. required String errorText,
  5. bool canceled = false,
})

Public API for non-Dio networking to report a request failure to DevTools.

Implementation

void reportHttpClientLoadingFailed({
  required String requestId,
  required double contextId,
  required Uri uri,
  required String errorText,
  bool canceled = false,
}) {
  final timestamp = (DateTime.now().millisecondsSinceEpoch - _initialTimestamp) / 1000;
  final type = _guessTypeFromPath(uri.path);

  // Emit CDP loadingFailed
  sendEventToFrontend(NetworkLoadingFailedEvent(
    requestId: requestId,
    timestamp: timestamp,
    type: type,
    errorText: errorText,
    canceled: canceled,
  ));

  // Update NetworkStore for UI
  NetworkStore().updateRequest(
    requestId,
    statusCode: 0,
    statusText: errorText,
    mimeType: 'text/plain',
    responseBody: Uint8List(0),
    endTime: DateTime.now(),
    contentLength: 0,
    fromCache: false,
    remoteIPAddress: uri.host,
    remotePort: uri.hasPort ? uri.port : (uri.scheme == 'https' ? 443 : 80),
  );
}