diff --git a/Libraries/LibRequests/CMakeLists.txt b/Libraries/LibRequests/CMakeLists.txt index 2006b42a64..a779f2d2fa 100644 --- a/Libraries/LibRequests/CMakeLists.txt +++ b/Libraries/LibRequests/CMakeLists.txt @@ -3,6 +3,7 @@ set(SOURCES NetworkError.h Request.cpp RequestClient.cpp + RequestTimingInfo.cpp WebSocket.cpp ) diff --git a/Libraries/LibRequests/RequestTimingInfo.cpp b/Libraries/LibRequests/RequestTimingInfo.cpp new file mode 100644 index 0000000000..fa6a7b0234 --- /dev/null +++ b/Libraries/LibRequests/RequestTimingInfo.cpp @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2025, Tim Flynn + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include + +namespace IPC { + +template<> +ErrorOr encode(Encoder& encoder, Requests::RequestTimingInfo const& timing_info) +{ + TRY(encoder.encode(timing_info.domain_lookup_start_microseconds)); + TRY(encoder.encode(timing_info.domain_lookup_end_microseconds)); + TRY(encoder.encode(timing_info.connect_start_microseconds)); + TRY(encoder.encode(timing_info.connect_end_microseconds)); + TRY(encoder.encode(timing_info.secure_connect_start_microseconds)); + TRY(encoder.encode(timing_info.request_start_microseconds)); + TRY(encoder.encode(timing_info.response_start_microseconds)); + TRY(encoder.encode(timing_info.response_end_microseconds)); + TRY(encoder.encode(timing_info.encoded_body_size)); + TRY(encoder.encode(timing_info.http_version_alpn_identifier)); + return {}; +} + +template<> +ErrorOr decode(Decoder& decoder) +{ + auto domain_lookup_start_microseconds = TRY(decoder.decode()); + auto domain_lookup_end_microseconds = TRY(decoder.decode()); + auto connect_start_microseconds = TRY(decoder.decode()); + auto connect_end_microseconds = TRY(decoder.decode()); + auto secure_connect_start_microseconds = TRY(decoder.decode()); + auto request_start_microseconds = TRY(decoder.decode()); + auto response_start_microseconds = TRY(decoder.decode()); + auto response_end_microseconds = TRY(decoder.decode()); + auto encoded_body_size = TRY(decoder.decode()); + auto http_version_alpn_identifier = TRY(decoder.decode()); + + return Requests::RequestTimingInfo { + .domain_lookup_start_microseconds = domain_lookup_start_microseconds, + .domain_lookup_end_microseconds = domain_lookup_end_microseconds, + .connect_start_microseconds = connect_start_microseconds, + .connect_end_microseconds = connect_end_microseconds, + .secure_connect_start_microseconds = secure_connect_start_microseconds, + .request_start_microseconds = request_start_microseconds, + .response_start_microseconds = response_start_microseconds, + .response_end_microseconds = response_end_microseconds, + .encoded_body_size = encoded_body_size, + .http_version_alpn_identifier = http_version_alpn_identifier, + }; +} + +} diff --git a/Libraries/LibRequests/RequestTimingInfo.h b/Libraries/LibRequests/RequestTimingInfo.h index 164dfae0ed..bb5bd8a370 100644 --- a/Libraries/LibRequests/RequestTimingInfo.h +++ b/Libraries/LibRequests/RequestTimingInfo.h @@ -6,9 +6,7 @@ #pragma once -#include -#include -#include +#include #include namespace Requests { @@ -31,47 +29,9 @@ struct RequestTimingInfo { namespace IPC { template<> -inline ErrorOr encode(Encoder& encoder, Requests::RequestTimingInfo const& timing_info) -{ - TRY(encoder.encode(timing_info.domain_lookup_start_microseconds)); - TRY(encoder.encode(timing_info.domain_lookup_end_microseconds)); - TRY(encoder.encode(timing_info.connect_start_microseconds)); - TRY(encoder.encode(timing_info.connect_end_microseconds)); - TRY(encoder.encode(timing_info.secure_connect_start_microseconds)); - TRY(encoder.encode(timing_info.request_start_microseconds)); - TRY(encoder.encode(timing_info.response_start_microseconds)); - TRY(encoder.encode(timing_info.response_end_microseconds)); - TRY(encoder.encode(timing_info.encoded_body_size)); - TRY(encoder.encode(timing_info.http_version_alpn_identifier)); - return {}; -} +ErrorOr encode(Encoder&, Requests::RequestTimingInfo const&); template<> -inline ErrorOr decode(Decoder& decoder) -{ - auto domain_lookup_start_microseconds = TRY(decoder.decode()); - auto domain_lookup_end_microseconds = TRY(decoder.decode()); - auto connect_start_microseconds = TRY(decoder.decode()); - auto connect_end_microseconds = TRY(decoder.decode()); - auto secure_connect_start_microseconds = TRY(decoder.decode()); - auto request_start_microseconds = TRY(decoder.decode()); - auto response_start_microseconds = TRY(decoder.decode()); - auto response_end_microseconds = TRY(decoder.decode()); - auto encoded_body_size = TRY(decoder.decode()); - auto http_version_alpn_identifier = TRY(decoder.decode()); - - return Requests::RequestTimingInfo { - .domain_lookup_start_microseconds = domain_lookup_start_microseconds, - .domain_lookup_end_microseconds = domain_lookup_end_microseconds, - .connect_start_microseconds = connect_start_microseconds, - .connect_end_microseconds = connect_end_microseconds, - .secure_connect_start_microseconds = secure_connect_start_microseconds, - .request_start_microseconds = request_start_microseconds, - .response_start_microseconds = response_start_microseconds, - .response_end_microseconds = response_end_microseconds, - .encoded_body_size = encoded_body_size, - .http_version_alpn_identifier = http_version_alpn_identifier, - }; -} +ErrorOr decode(Decoder&); } diff --git a/Libraries/LibWeb/DOM/Node.cpp b/Libraries/LibWeb/DOM/Node.cpp index c7929c5b2c..5b7cd8c8d7 100644 --- a/Libraries/LibWeb/DOM/Node.cpp +++ b/Libraries/LibWeb/DOM/Node.cpp @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/Libraries/LibWeb/Forward.h b/Libraries/LibWeb/Forward.h index c07cdc318c..4ca49c5942 100644 --- a/Libraries/LibWeb/Forward.h +++ b/Libraries/LibWeb/Forward.h @@ -768,6 +768,7 @@ class UserActivation; class ValidityState; class VideoTrack; class VideoTrackList; +class WebWorkerClient; class Window; class WindowEnvironmentSettingsObject; class WindowProxy; diff --git a/Libraries/LibWeb/HTML/WorkerAgentParent.h b/Libraries/LibWeb/HTML/WorkerAgentParent.h index 18376767eb..e753ef906a 100644 --- a/Libraries/LibWeb/HTML/WorkerAgentParent.h +++ b/Libraries/LibWeb/HTML/WorkerAgentParent.h @@ -10,7 +10,6 @@ #include #include #include -#include namespace Web::HTML { diff --git a/Libraries/LibWebView/Application.h b/Libraries/LibWebView/Application.h index b03cada3d5..cd3cbbec7e 100644 --- a/Libraries/LibWebView/Application.h +++ b/Libraries/LibWebView/Application.h @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/Tests/LibWeb/test-web/main.cpp b/Tests/LibWeb/test-web/main.cpp index fb0a5709d6..25102e2477 100644 --- a/Tests/LibWeb/test-web/main.cpp +++ b/Tests/LibWeb/test-web/main.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include