LibWeb: Use forward-declarations of structured serialized types

This reduces the rebuilt targets when touching StructuredSerialize.h
from ~1200 to ~400. The remaining are due to generated IPC headers.
This commit is contained in:
Timothy Flynn 2025-07-17 13:40:50 -04:00 committed by Tim Flynn
commit 7fad8c333d
Notes: github-actions[bot] 2025-07-18 14:10:51 +00:00
21 changed files with 23 additions and 9 deletions

View file

@ -8,7 +8,6 @@
#include <AK/Vector.h>
#include <LibIPC/Forward.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/WebIDL/ExceptionOr.h>
namespace Web::Bindings {

View file

@ -138,6 +138,7 @@
#include <LibWeb/HTML/SharedResourceRequest.h>
#include <LibWeb/HTML/Storage.h>
#include <LibWeb/HTML/StorageEvent.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/TraversableNavigable.h>
#include <LibWeb/HTML/Window.h>
#include <LibWeb/HTML/WindowProxy.h>

View file

@ -10,6 +10,7 @@
#include <LibWeb/Fetch/Infrastructure/FetchController.h>
#include <LibWeb/Fetch/Infrastructure/FetchParams.h>
#include <LibWeb/HTML/EventLoop/EventLoop.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/WebIDL/DOMException.h>
namespace Web::Fetch::Infrastructure {

View file

@ -16,7 +16,7 @@
#include <LibWeb/Fetch/Infrastructure/FetchTimingInfo.h>
#include <LibWeb/Forward.h>
#include <LibWeb/HTML/EventLoop/Task.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/StructuredSerializeTypes.h>
namespace Web::Fetch::Infrastructure {

View file

@ -694,6 +694,7 @@ enum class MediaSeekMode;
enum class SandboxingFlagSet;
struct Agent;
struct DeserializedTransferRecord;
struct EmbedderPolicy;
struct Environment;
struct EnvironmentSettingsObject;
@ -706,6 +707,7 @@ struct ScrollOptions;
struct ScrollToOptions;
struct SerializedFormData;
struct SerializedPolicyContainer;
struct SerializedTransferRecord;
struct StructuredSerializeOptions;
struct SyntheticRealmSettings;
struct ToggleTaskTracker;

View file

@ -11,6 +11,7 @@
#include <LibWeb/HTML/BroadcastChannel.h>
#include <LibWeb/HTML/EventNames.h>
#include <LibWeb/HTML/MessageEvent.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/Window.h>
#include <LibWeb/HTML/WorkerGlobalScope.h>
#include <LibWeb/StorageAPI/StorageKey.h>

View file

@ -22,6 +22,7 @@
#include <LibWeb/HTML/MessageEvent.h>
#include <LibWeb/HTML/MessagePort.h>
#include <LibWeb/HTML/Scripting/TemporaryExecutionContext.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/StructuredSerializeOptions.h>
#include <LibWeb/HTML/WorkerGlobalScope.h>
@ -273,7 +274,7 @@ WebIDL::ExceptionOr<void> MessagePort::message_port_post_message_steps(GC::Ptr<M
}
// 7. Add a task that runs the following steps to the port message queue of targetPort:
post_port_message(move(serialize_with_transfer_result));
post_port_message(serialize_with_transfer_result);
return {};
}
@ -288,7 +289,7 @@ ErrorOr<void> MessagePort::send_message_on_transport(SerializedTransferRecord co
return {};
}
void MessagePort::post_port_message(SerializedTransferRecord serialize_with_transfer_result)
void MessagePort::post_port_message(SerializedTransferRecord const& serialize_with_transfer_result)
{
if (!m_transport || !m_transport->is_open())
return;

View file

@ -77,7 +77,7 @@ private:
bool is_entangled() const;
void post_message_task_steps(SerializedTransferRecord&);
void post_port_message(SerializedTransferRecord);
void post_port_message(SerializedTransferRecord const&);
ErrorOr<void> send_message_on_transport(SerializedTransferRecord const&);
void read_from_transport();

View file

@ -20,7 +20,7 @@
#include <LibWeb/HTML/RenderingThread.h>
#include <LibWeb/HTML/SandboxingFlagSet.h>
#include <LibWeb/HTML/SourceSnapshotParams.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/StructuredSerializeTypes.h>
#include <LibWeb/HTML/TokenizedFeatures.h>
#include <LibWeb/InvalidateDisplayList.h>
#include <LibWeb/Page/EventHandler.h>

View file

@ -23,6 +23,7 @@
#include <LibWeb/HTML/NavigationTransition.h>
#include <LibWeb/HTML/Scripting/ExceptionReporter.h>
#include <LibWeb/HTML/Scripting/TemporaryExecutionContext.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/TraversableNavigable.h>
#include <LibWeb/HTML/Window.h>
#include <LibWeb/WebIDL/AbstractOperations.h>

View file

@ -12,7 +12,7 @@
#include <LibWeb/HTML/HistoryHandlingBehavior.h>
#include <LibWeb/HTML/Navigable.h>
#include <LibWeb/HTML/NavigationType.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/StructuredSerializeTypes.h>
namespace Web::HTML {

View file

@ -10,6 +10,7 @@
#include <LibWeb/Bindings/NavigationDestinationPrototype.h>
#include <LibWeb/HTML/NavigationDestination.h>
#include <LibWeb/HTML/NavigationHistoryEntry.h>
#include <LibWeb/HTML/StructuredSerialize.h>
namespace Web::HTML {

View file

@ -8,7 +8,7 @@
#include <LibURL/URL.h>
#include <LibWeb/Bindings/PlatformObject.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/StructuredSerializeTypes.h>
namespace Web::HTML {

View file

@ -12,6 +12,7 @@
#include <LibWeb/HTML/DocumentState.h>
#include <LibWeb/HTML/Navigation.h>
#include <LibWeb/HTML/NavigationHistoryEntry.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/Window.h>
namespace Web::HTML {

View file

@ -8,6 +8,7 @@
#include <LibWeb/HTML/BrowsingContext.h>
#include <LibWeb/HTML/DocumentState.h>
#include <LibWeb/HTML/SessionHistoryEntry.h>
#include <LibWeb/HTML/StructuredSerialize.h>
namespace Web::HTML {

View file

@ -12,7 +12,7 @@
#include <LibURL/URL.h>
#include <LibWeb/Forward.h>
#include <LibWeb/HTML/PolicyContainers.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/StructuredSerializeTypes.h>
namespace Web::HTML {

View file

@ -17,6 +17,7 @@
#include <LibWeb/HTML/NavigationParams.h>
#include <LibWeb/HTML/Parser/HTMLParser.h>
#include <LibWeb/HTML/SessionHistoryEntry.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/TraversableNavigable.h>
#include <LibWeb/HTML/Window.h>
#include <LibWeb/Layout/Viewport.h>

View file

@ -53,6 +53,7 @@
#include <LibWeb/HTML/Scripting/ExceptionReporter.h>
#include <LibWeb/HTML/Scripting/TemporaryExecutionContext.h>
#include <LibWeb/HTML/Storage.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/HTML/TokenizedFeatures.h>
#include <LibWeb/HTML/TraversableNavigable.h>
#include <LibWeb/HTML/Window.h>

View file

@ -13,6 +13,7 @@
#include <LibWeb/DOM/AbortSignal.h>
#include <LibWeb/HTML/MessagePort.h>
#include <LibWeb/HTML/Scripting/TemporaryExecutionContext.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/Streams/AbstractOperations.h>
#include <LibWeb/Streams/ReadableByteStreamController.h>
#include <LibWeb/Streams/ReadableStream.h>

View file

@ -7,6 +7,7 @@
#include <LibIPC/File.h>
#include <LibWeb/Bindings/Intrinsics.h>
#include <LibWeb/Bindings/TransformStreamPrototype.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/Streams/AbstractOperations.h>
#include <LibWeb/Streams/ReadableStream.h>
#include <LibWeb/Streams/ReadableStreamOperations.h>

View file

@ -9,6 +9,7 @@
#include <LibWeb/Bindings/WritableStreamPrototype.h>
#include <LibWeb/HTML/MessagePort.h>
#include <LibWeb/HTML/Scripting/TemporaryExecutionContext.h>
#include <LibWeb/HTML/StructuredSerialize.h>
#include <LibWeb/Streams/AbstractOperations.h>
#include <LibWeb/Streams/ReadableStream.h>
#include <LibWeb/Streams/ReadableStreamOperations.h>