[package:http_profile] Store request and response bodies in the backing map as lists instead of as streams#1154
Conversation
… of streams This PR also adds getters that return the request and response bodies as lists of ints
| unawaited(bodySink.close()); | ||
| _data['endTime'] = (endTime ?? DateTime.now()).microsecondsSinceEpoch; | ||
| await bodySink.close(); | ||
| _responseData['endTime'] = |
There was a problem hiding this comment.
So this was incorrect before?
There was a problem hiding this comment.
It worked before because we were awaiting _body.stream.expand(...).toList(...) on the SDK side, so it was impossible for this unawaited bodySink.close() to cause the 'requestBody' or 'responseBody' entries to get populated incorrectly here (https://github.com/dart-lang/sdk/blob/9efa95674966c1d8b498c1846372f36db689f8c7/sdk/lib/io/network_profiling.dart#L34-L44).
With the changes in this PR, we need to await bodySink.close() to guarantee that all the bytes that have been added to the sink have also been added to _data['requestBodyBytes'] before the SDK tries to read _data['requestBodyBytes'].
http/pkgs/http_profile/lib/src/http_client_request_profile.dart
Lines 81 to 83 in bb1f7a8
Revisions updated by `dart tools/rev_sdk_deps.dart`. async (https://github.com/dart-lang/async/compare/6cdbc41..1556660): 1556660 2024-03-07 Kevin Moore Test on wasm (dev) and JS (dart-archive/async#269) dartdoc (https://github.com/dart-lang/dartdoc/compare/0de8aff..ef990e7): ef990e79 2024-03-10 dependabot[bot] Bump actions/cache from 4.0.0 to 4.0.1 (dart-lang/dartdoc#3700) 962d68fe 2024-03-08 Sam Rawlins Convert many fields on Container and TopLevelContainer to getters (dart-lang/dartdoc#3710) 353b426c 2024-03-08 Kallen Tu Remove unresolved-export warning. (dart-lang/dartdoc#3711) cdcbf6d8 2024-03-08 Kallen Tu Change mixin implements and remove unused Extendable. (dart-lang/dartdoc#3709) da7071d5 2024-03-08 Sam Rawlins Display an extension's extended type in a few places. (dart-lang/dartdoc#3708) 3d56168d 2024-03-08 Sam Rawlins Add some help messages to tool/task.dart (dart-lang/dartdoc#3707) 4f849678 2024-03-07 Sam Rawlins Remove the TypeImplementing mixin; unnecessary (dart-lang/dartdoc#3705) 7b50ea4a 2024-03-07 Sam Rawlins Move the `filterNonDocumented` and `filterNonPublic` functions as extension getters (dart-lang/dartdoc#3699) http (https://github.com/dart-lang/http/compare/8d3c647..8da6e0e): 8da6e0e 2024-03-08 Derek Xu [package:http_profile] Store request and response bodies in the backing map as lists instead of streams (dart-lang/http#1154) markdown (https://github.com/dart-lang/markdown/compare/1ca5166..9c6b1af): 9c6b1af 2024-03-10 Jonas Finnemann Jensen Run a periodic crash-test (dart-archive/markdown#590) 1654801 2024-03-08 Zhiguang Chen Add single tilde support to `StrikethroughSyntax` (dart-archive/markdown#595) test (https://github.com/dart-lang/test/compare/7724aab..ba64bbb): ba64bbba 2024-03-07 Nate Bosch Let the IsolateChannel close the ReceivePort (dart-lang/test#2196) Change-Id: I5fad5442fe1a183707888276264eb9c47cc3c96f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/356780 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Auto-Submit: Devon Carew <devoncarew@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Devon Carew <devoncarew@google.com>
This PR also adds getters that return the request and response bodies as lists of ints