LibRequests: Decode RequestTimingInfo IPC fields as i64's

On 64-bit Windows, long's are only 4 bytes. This meant that when the
client is deocding the IPC message from a async_request_finished call,
we were corrupting the RequestTimingInfo field and all the fields after
it as we were 4 bytes off.
This commit is contained in:
ayeteadoe 2025-08-29 13:39:59 -07:00 committed by Tim Flynn
parent d2b2d57387
commit 244f086709
Notes: github-actions[bot] 2025-10-28 23:13:21 +00:00

View file

@ -49,15 +49,15 @@ inline ErrorOr<void> encode(Encoder& encoder, Requests::RequestTimingInfo const&
template<>
inline ErrorOr<Requests::RequestTimingInfo> decode(Decoder& decoder)
{
auto domain_lookup_start_microseconds = TRY(decoder.decode<long>());
auto domain_lookup_end_microseconds = TRY(decoder.decode<long>());
auto connect_start_microseconds = TRY(decoder.decode<long>());
auto connect_end_microseconds = TRY(decoder.decode<long>());
auto secure_connect_start_microseconds = TRY(decoder.decode<long>());
auto request_start_microseconds = TRY(decoder.decode<long>());
auto response_start_microseconds = TRY(decoder.decode<long>());
auto response_end_microseconds = TRY(decoder.decode<long>());
auto encoded_body_size = TRY(decoder.decode<long>());
auto domain_lookup_start_microseconds = TRY(decoder.decode<i64>());
auto domain_lookup_end_microseconds = TRY(decoder.decode<i64>());
auto connect_start_microseconds = TRY(decoder.decode<i64>());
auto connect_end_microseconds = TRY(decoder.decode<i64>());
auto secure_connect_start_microseconds = TRY(decoder.decode<i64>());
auto request_start_microseconds = TRY(decoder.decode<i64>());
auto response_start_microseconds = TRY(decoder.decode<i64>());
auto response_end_microseconds = TRY(decoder.decode<i64>());
auto encoded_body_size = TRY(decoder.decode<i64>());
auto http_version_alpn_identifier = TRY(decoder.decode<Requests::ALPNHttpVersion>());
return Requests::RequestTimingInfo {