receiveFromFrontend method

  1. @override
void receiveFromFrontend(
  1. int? id,
  2. String method,
  3. Map<String, dynamic>? params
)

Implementation

@override
void receiveFromFrontend(int? id, String method, Map<String, dynamic>? params) {
  if (DebugFlags.enableDevToolsLogs) {
    devToolsLogger.fine('[DevTools] Network.$method');
  }
  switch (method) {
    case 'setCacheDisabled':
      bool cacheDisabled = params?['cacheDisabled'];
      if (cacheDisabled) {
        HttpCacheController.mode = HttpCacheMode.NO_CACHE;
      } else {
        HttpCacheController.mode = _httpCacheOriginalMode;
      }
      sendToFrontend(id, null);
      break;
    case 'getResponseBody':
      String requestId = params!['requestId'];
      Uint8List? buffer = _responseBuffers[requestId];
      // Decide whether to return text or base64 based on MIME type
      final req = NetworkStore().getRequestById(requestId);
      final mime = req?.mimeType?.toLowerCase();
      final isText = _isTextMimeType(mime);
      String bodyStr = '';
      bool base64 = false;
      if (buffer != null) {
        if (isText) {
          bodyStr = utf8.decode(buffer, allowMalformed: true);
          base64 = false;
        } else {
          bodyStr = base64Encode(buffer);
          base64 = true;
        }
      }
      sendToFrontend(
          id,
          JSONEncodableMap({
            'body': bodyStr,
            'base64Encoded': base64,
          }));
      break;

    case 'setAttachDebugStack':
      sendToFrontend(id, JSONEncodableMap({}));
      break;

    case 'clearAcceptedEncodingsOverride':
      sendToFrontend(id, JSONEncodableMap({}));
      break;
  }
}