receiveFromFrontend method
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;
}
}